Isaacgym-Gazebo Sim2Sim for RL Quadruped Robot
November 20, 2025 ยท View on GitHub
Deploying quadruped robot policies trained in Isaac Gym to ROS2 Gazebo for Sim-to-Sim verification.
Overview
This repository provides an easy-to-use Sim2Sim pipeline for testing and validating reinforcement learning (RL) policies of quadruped robots within the ROS2 Gazebo environment.
Currently, three pretrained policies are supported:
[Walk-These-Ways]
Margolis, Gabriel B., and Pulkit Agrawal.
"Walk these ways: Tuning robot control for generalization with multiplicity of behavior."
Conference on Robot Learning, PMLR, 2023.
๐ Project Website
[DreamWaQ]
Nahrendra, I. Made Aswin, Byeongho Yu, and Hyun Myung.
"DreamWaQ: Learning robust quadrupedal locomotion with implicit terrain imagination via deep reinforcement learning."
ICRA 2023, IEEE.
๐ Project Website
[HIMLoco]
Long, J., Wang, Z., Li, Q., Cao, L., Gao, J., & Pang, J.
"Hybrid internal model: Learning agile legged locomotion with simulated robot response."
ICLR. 2024
๐ Project Website
Installation
Tested on ROS2 Humble and Ubuntu 22.04.
1. Install Required ROS2 Packages
sudo apt install ros-humble-gazebo-ros2-control ros-humble-gazebo-ros2-control-demos
sudo apt install ros-humble-ros2-control ros-humble-controller-manager
sudo apt install ros-humble-gazebo-ros ros-humble-joint-state-publisher
sudo apt install ros-humble-gazebo-ros-pkgs
2. Install PyTorch (CUDA 11.7)
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2+cu117 \
--index-url https://download.pytorch.org/whl/cu117
3. Clone and Build the Repository
git clone https://github.com/evronix/quadruped_sim2sim.git
cd quadruped_sim2sim
colcon build --symlink-install
source install/setup.bash
Running the Controller
1. Launch the Gazebo Simulation
ros2 launch robot_gazebo go1_gazebo.launch.py
2. Run the Policy Controller
- Walk-These-Ways
ros2 run robot_controller run_wtw_policy
- DreamWaQ
ros2 run robot_controller run_dreamwaq_policy
- HIMLoco
ros2 run robot_controller run_him_policy
3.Launch the UI
ros2 run robot_UI run_ui
With the UI, you can control the robot's command_velocity interactively:
Real Robot Integration
Coming soon...