We are thrilled to announce that the Unitree Go2/G1 robot has now been integrated with the Nvidia Isaac Sim 4.0 (Isaac Lab), marking a major step forward in robotics research and development. The combination of these two cutting-edge technologies opens up a world of possibilities for creating and testing algorithms in a variety of simulated environments.
Get ready to take your research to the next level with this powerful new resource at your fingertips!
- PPO balancing algorithm ✅
- Keyboard real time control ✅
- Camera stream to ROS2 ✅
- RTX Lidar stream to ROS2 ✅
- IMU data stream to ROS2 ✅
- URDF real-time joints sync ✅
- Foot force data stream ✅
- Real-time control from ROS2 ✅
- Nav2 with Slam_toolbox ✅
- Bunch of RL-envs for custom dog training ✅
- Custom numbers of robots ✅
- Added G1 Unitree support ✅
If you're as enthusiastic about this project as we are, please consider giving it a ⭐ star on our GitHub repository.
Your encouragement fuels our passion and helps us develop our RoadMap further. We welcome any help or suggestions you can offer!
Together, let's push the boundaries of what's possible with the Unitree Go2/G1 and ROS2!
You need to install:
- Ubuntu 22.04
- Nvidia Isaac Sim 4.0
- Nvidia Isaac Lab
- Ros2 Humble
Full instruction:
https://isaac-sim.github.io/IsaacLab/source/setup/installation/binaries_installation.html
Some suggestions:
- You need to check nvidia-smi, it should work, before installing Isaac Sim 4.0
- You need to install Miniconda and execute: conda config --set auto_activate_base false
- Install Omniverse launcher and then install Isaac Sim 4.0.
- Create conda env then activate it, also execute ./isaaclab.sh --install Also, you need to install ROS2 on your system and configure it:
https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_ros.html#isaac-sim-app-install-ros
To start with the local development environment, clone this repo:
git clone https://github.com/abizovnuralem/go2_omniverse/ --recurse-submodules -j8 --depth=1
First, you need to copy files from Isaac Sim folder to your local Isaac Sim installation in order to use Unitree L1 lidar inside Orbit.
1. You need to replace original file that located in ~/.local/share/ov/pkg/isaac-sim-4.0.0/exts/omni.isaac.sensor/config/extrensiom.toml
with Isaac_sim/extension.toml in this repo.
2. You need to add Unitree_L1.json to IsaacLab repo folder, where IsaacLab/source/exts/omni.isaac.sensor/data/lidar_configs/Unitree/Unitree_L1.json will be the final path (If it doesnt exists, create it)
The current project was tested on Ubuntu 22.04, IsaacSim 4.0 with Isaac Lab and Nvidia Driver Version: 545. To start the project with Unitree GO2, execute:
./run_sim.sh
To start the project with Unitree G1, execute:
./run_sim_g1.sh
You can control the dog using "WASD" keyboard commands
You can use https://github.com/abizovnuralem/go2_ros2_sdk as a basement for your ROS2 setup.
To use predifined custom envs, you need to download files from https://drive.google.com/drive/folders/1vVGuO1KIX1K6mD6mBHDZGm9nk2vaRyj3?usp=sharing and place them to /envs folder. Then you can execute it via python main.py --custom_env=office or python main.py --custom_env=warehouse commands (The whole cmd you can read from run_sim script). If you are doing it first time, it will take 2-3 minutes to configure the env. Please, wait.
To contribute or modify the project, refer to these resources for implementing additional features or improving the existing codebase. PRs are welcome!
To enable VR support on linux will take some time, but it works! I have tested it on:
- Ubuntu 22.04
- Nvidia drivers are 545.29.06
- SteamVR 2.4.4 (IMPORTANT! It should be 2.4.4) and you need to go to Compatibility tab (Inside Steam app) and "Force the use of a specific Steam Play compatibility tool" and switch to "Steam-Play-None", additional info you can find in ALVR github issues tab.
- ALVR streamer 20.8.1 + Oculus Quest 2 (client ALVR you can install via SideQuest app) (How to install it: https://github.com/alvr-org/ALVR)
- Execute IsaacSim, Go to Window -> Extensions, find STEAMVR INPUT/OUTPUT then enable it and enable AutoLoad. Reopen IsaacSim. Use OpenXR mode.
- Enjoy Omniverse in VR mode!
Special thanks to Leul Tesfaye for his expertise in Orbit lidars and Tamas @tfoldi for contributing to this project.
This project is licensed under the BSD 2-clause License - see the LICENSE file for details.