Improbable-AI / walk-these-ways

Sim-to-real RL training and deployment tools for the Unitree Go1 robot.
https://gmargo11.github.io/walk-these-ways/
Other
488 stars 129 forks source link

why deploy with python? #61

Closed shitoujie closed 5 months ago

shitoujie commented 6 months ago

May i ask why you deploy this model with python rather than c++? It seems like deploying with c++ is more suitable for realtime control.

gmargo11 commented 5 months ago

Hi @shitoujie ,

The decision to use Python is mostly for convenience since we want to be able to modify the sensor data preprocessing, joystick mapping, logging, etc easily, and it's a bit easier to make such changes in Python.

Regardless, the real-time considerations don't make too much difference in our controller since the policy evaluation frequency is quite low (50Hz) and the policy is trained with a lag model that makes it robust to some delays.

One paper has shown that quadruped locomotion policies can even be stable at much lower control frequencies: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10160357

However, another paper has shown that for high-speed running, reducing the lag can be critical to maintaining stability: https://www.nature.com/articles/s42256-022-00576-3

So, it depends on the task and the intended purpose of the code! In a production system, I would use C++, but for a research controller with this architecture, I think Python works fine

Gabe