Tbai project - 4 SOTA quadrupedal robot walking controllers


I’ve been working on a project dealing with the implementation of several state-of-the-art walking controllers for quadrupedal machines for the last couple of months. The project was released just a few days ago and I though it would be nice to share it with the ROS community, as the entire codebase is built on top of ROS noetic.

So far, we have implemented four walking controllers for the Anymal D quadrupedal robot, built and developed by Anybotics, but the methods are general enough and porting them to be applicable on different robots (e.g. A1 from Unitree or Spot from Boston Dynamics) should be fairly straightforward.

Enough talk. What are the controllers?

  1. Nonlinear Model Predictive Controller with a Whole Body tracking controller (NMPC with WBC)
    • For this controller, we used an open-source MPC implementation by Robotic Systems Lab called ocs2. We then used a whole-body tracking controller to track the optimized trajectories generated by the MPC controller. The methods are described in [1] and [2].
  2. Bob controller - a simple neural network trained in Isaac Sim
    • This is an implementation of the controller introduced in [3]. It uses a simple neural network that generates actions (joint angles) based on current observations and partially based on past observations (there is a recurrent neural network inside).
  3. Dtc controller - a neural network trained in Isaac Sim
    • The Dtc controller is a combination of the first two, being ~ 50% the NMPC controller and 50% the Bob controller. It combines the robustness of the Bob controller while also taking the NMPC controller’s optimized trajectories into account. This controller was implemented based on [4].
  4. Joe controller - a controller similar in nature to the Dtc controller but a bit closer to the NMPC controller

[1] Perceptive Locomotion through Nonlinear Model Predictive Control
[2] Perception-less terrain adaptation through whole body control and hierarchical optimization
[3] Learning robust perceptive locomotion for quadrupedal robots in the wild
[4] DTC: Deep Tracking Control

Below, I’ve included an image showing a sort of a controller spectrum, giving an idea of how the controllers are related to each other.

The first three controllers were first devised and described by the RSL research group at ETH, Zürich, so full credit goes to them.
Please, check out our github repository (videos included) if you want to know more and just let me know here in the comments if you have futher questions.:hugs:
Lastly, I would love to thank to my supervisor, @peci1, for his guidance, for helping me with anything ROS related and finally for giving me an access to literally a supercomputer, allowing me to conduct many deep learning experiments while trying to train the walking policies.