This repository is dedicated to the deployment of planning, control, and estimation algorithms for a wide range of robotic platforms, including manipulators, quadrupeds, and humanoids systems.
It provides modular and extensible tools to facilitate the integration and deployment of advanced robotics algorithms including both model-based and learning-based methods in sim2sim and sim2real scenarios, enabling seamless and rapid transitions from simulation to real-world applications.
This pipeline is built on ROS2 Jazzy. Two recommended methods are available for installing ROS2 Jazzy:
This method is ideal for pure C++ users, where the control pipeline does not require specific Python packages that should be excluded from the base environment (such as PyTorch, JAX, etc.). Since policies are inferred through ONNX Runtime, pure policy-based approaches are also supported in this pipeline.
To install using this method, please refer to the official ROS2 Jazzy installation guide. Minimal installation requires ros2_control, Eigen3, onnxruntime and pinocchio.
This method is recommended for Python users who need to implement modules that depend on specific Python packages. Typical use cases include continual learning, where learning libraries are required, and sampling-based predictive control algorithms, where simulation environments are parallelized on the GPU.
To install using this method, checkout the installation guideline of RoboStack.
Because host-environment dependencies are difficult to maintain, Docker is recommended for full installation and hardware interfacing. To simplify installation, here we provide a ROS2 workspace template for easy setting up the environments. See ROS2 Jazzy Workspace for details.
To install this project, use the template workspace or set up a standard ROS2 workspace:
mkdir -p ~/<workspace_name>_ws/srcThen clone the project and initialize only the required submodules:
cd ~/<workspace_name>_ws/src
git clone https://github.com/Hyh2001/deployment_code_base.git
cd deployment_code_base
git submodule update --init --recursive descriptions command/keyboard_joy <other_submodules>
cd ../../Install the project dependencies using rosdep:
rosdep install --from-paths src --ignore-src -r -yNote: If ROS2 is installed through RoboStack, make sure to activate the virtual environment before installation.
Then build the necessary packages:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelwithDebInfo \
interfaces common_msgs base_controllers scene_description base_estimators base_planners base_hardware_interfaces mujoco_sim loggers fsm keyboard_joy recorder rl_utils