No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

go2_isaac_ros2 package from go2_isaac_ros2 repo

go2_isaac_ros2

Package Summary

Tags No category tags.
Version 0.1.0
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Simulation of a Unitree Go2 in Isaac Sim using ROS2 for low-level joint control.
Checkout URI https://github.com/clearoboticslab/go2_isaac_ros2.git
VCS Type git
VCS Version main
Last Updated 2025-02-26
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Low level simulation of a Unitree Go2 in Isaac Sim using ROS2 for control.

Additional Links

No additional links.

Maintainers

  • Jacob Levy

Authors

No additional authors.

go2_isaac_ros2

animation

This package allows low-level (or joint-level), ROS2 control of a Unitree Go2 quadruped robot being simulated in Isaac Sim. This package is built on top of IsaacLab. This package is meant to emulate the low-level control mode of the Go2. Here, the robot is controlled by specifying joint position targets and gains to the topic /lowcmd. In low-level control mode, sports mode is disabled, so only low-level readings (like joint angles, joint velocities, IMU, and the raw lidar cloud) are available on the /lowstate and /utlidar/cloud topics.

Tested With Version
Ubuntu 22.04
ROS2 Humble
Isaac Sim 4.5.0

TODO:

  Feature
Joint position targets
Joint velocity targets
Joint-level specification of Kp and Kd (proportional and derivative gain)
Joint torque control
Joint state and IMU
Head LiDAR
Front camera
Terrain selection

Installation

First, ensure ROS2 Humble is installed.

It is recommended to install Isaac Lab within a conda / miniconda environment. Create an environment:

conda create -n go2_isaac_ros2 python=3.10
conda activate go2_isaac_ros2

Then install IsaacLab per the their instructions.

Next, create a ROS2 workspace and clone this repository into the src directory:

mkdir -p ~/go2_isaac_ros2_ws/src
cd ~/go2_isaac_ros2_ws/src
git clone https://github.com/CLeARoboticsLab/go2_isaac_ros2.git

You will also need to clone the Unitree ROS2 SDK into the src directory:

cd ~/go2_isaac_ros2_ws/src
git clone https://github.com/unitreerobotics/unitree_ros2.git

Then build the workspace:

cd ~/go2_isaac_ros2_ws
source /opt/ros/humble/setup.bash
colcon build

⚠️ You may have to build the workspace multiple times to resolve all dependencies.

⚠️ This PR is required to use the IMU sensor in Isaac Sim. Ensure this PR has been merged into your clone of Isaac Lab.

Usage

First, start the simulator:

source ~/go2_isaac_ros2_ws/install/setup.bash
conda activate go2_isaac_ros2
ros2 launch go2_isaac_ros2 launch_sim.py

Controlling the robot within Isaac Sim is the same as with hardware. To control the robot, publish unitree_go.msg.LowCmd messages to the /lowcmd topic.

Similarly, to receive observations from the robot, subscribe to the /lowstate and /utlidar/cloud topics.

Note: /clock is also published by this package to allow for time synchronization with the simulator. To synchronize ROS2 with the simulator, be sure to set the use_sim_time: true parameter when launching all nodes.

Acknowledgements

This package was inspired by the go2_omniverse package by @abizovnuralem.

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

Deps Name
ament_cmake
ament_python

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged go2_isaac_ros2 at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.