ROS wrapper around tbai, for now the most mature tbai wrapper implementation.
📦tbai
┣ 📂tbai_ros_static # Static (high gain PD) controller
┣ 📂tbai_ros_mpc # NMPC controller (both perceptive and blind versions) [1]
┣ 📂tbai_ros_bob # RL walking controller, based on the wild-Anymal paper (both perceptive and blind versions) [2]
┣ 📂tbai_ros_dtc # DTC controller (perceptive) [3]
┣ 📂tbai_ros_joe # Perceptive NMPC controller with NN-based tracking controller [1], [3]
┣ ... (many more, this list is to be updated)
[1] Perceptive Locomotion through Nonlinear Model Predictive Control
https://arxiv.org/abs/2208.08373
[2] Learning robust perceptive locomotion for quadrupedal robots in the wild
https://arxiv.org/abs/2201.08117
[3] DTC: Deep Tracking Control
https://arxiv.org/abs/2309.15462
To install tbai_ros, we recommend using pixi, though tbai_ros is a full-fledged ROS package and it can be integrated into your projects in using conventional tools and methods. We use pixi for reproducibility. Don't worry that ROS is past its end of life, pixi (or micromamba) will install everything for you (even on the newest Ubuntu release) 😮
# Install micromamba
"${SHELL}" <(curl -L micro.mamba.pm/install.sh) # You might have to source your config again
# Clone tbai_ros
mkdir -p ros/src && cd ros/src
git clone https://github.com/tbai-lab/tbai_ros.git --recursive && cd tbai_ros
# Create conda environment
micromamba env create -f .conda/all-gpu-free.yaml
micromamba activate all-gpu-free
# Install tbai_ros
just fresh-install-all-gpu-freeOnce the installation is complete, you can run one of our many examples, for instance:
# Activate pixi environment
micromamba activate all-gpu-free
# Run `just help` to see many available demos (subset of all)
$ just help
[2. demos]
anymal_b_mpc_gazebo # ANYmal B blind MPC in Gazebo
anymal_c_mpc_gazebo # ANYmal C blind MPC in Gazebo
g1_mujoco # G1 humanoid in MuJoCo (with countless controllers available)
go2w_drive_mujoco # Go2W (wheeled) drive in MuJoCo
....
# Try out other examples located under tbai_ros_mpc, tbai_ros_bob, tbai_ros_dtc, tbai_ros_joe and tbai_ros_np3o# Install pixi
curl -fsSL https://pixi.sh/install.sh | sh # You might have to source your config again
# Install tbai_ros
mkdir -p ros/src && cd ros/src
git clone https://github.com/tbai-lab/tbai_ros.git --recursive && cd tbai_ros
pixi install && pixi shell --environment all-gpu-free
just fresh-install-all-gpu-freeOnce the installation is complete, you can run one of our many examples, for instance:
# Activate pixi environment
pixi shell --environment all-gpu-free
# Run `just help` to see many available demos (subset of all)
$ just help
[2. demos]
anymal_b_mpc_gazebo # ANYmal B blind MPC in Gazebo
anymal_c_mpc_gazebo # ANYmal C blind MPC in Gazebo
g1_mujoco # G1 humanoid in MuJoCo
go2w_drive_mujoco # Go2W (wheeled) drive in MuJoCo
....
# Try out other examples located under tbai_ros_mpc, tbai_ros_bob, tbai_ros_dtc, tbai_ros_joe and tbai_ros_np3ogo2_deploymen.1.mp4
Check out the tbai_ros_deploy_go2_rl folder for deployment-related documentation, pictures and videos 🤗
g1_dance.mp4
gow2_handstand.mp4
gow2_drive.mp4
mpc_perceptive_f.mp4
mpc_go2_blind.webm
rl_perceptive_fe.mp4
dtc_f.mp4
This project stands on the shoulders of giants. None of this would have been possible were it not for many amazing open-source projects. Here are a couple that most inspiration was drawn from and that were instrumental during the development:
- https://github.com/leggedrobotics/ocs2
- https://github.com/qiayuanl/legged_control
- https://github.com/leggedrobotics/legged_gym
- https://github.com/leggedrobotics/rsl_rl
- https://github.com/ANYbotics/elevation_mapping
- https://github.com/leggedrobotics/elevation_mapping_cupy
- https://github.com/bernhardpg/quadruped_locomotion
- https://github.com/stack-of-tasks/pinocchio
- https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/
- https://github.com/mayataka/robotoc
- https://github.com/mayataka/legged_state_estimator
- https://github.com/RossHartley/invariant-ekf
- https://github.com/dfki-ric-underactuated-lab/dfki-quad
- https://github.com/iit-DLSLab/muse
- https://github.com/zeonsunlightyu/LocomotionWithNP3O
- https://github.com/letaicodeit/DreamWaQ_Go2W
- https://cmp.felk.cvut.cz/~peckama2/ (supervision, access to a DGX station)
- http://www.michaelsebek.cz/cs
- hundreds of others ...
Thank you all 🤗





