We are thrilled to announce that the Unitree Go2/G1 robot has now been integrated with the Nvidia Isaac Sim (Orbit), 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!
If you're as enthusiastic about this project as we are, please consider giving it a :star: 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!
If your system is not sufficient for Isaac Sim or Isaac Lab etc., this is where Robolaunch offers you a new service. You can do real-time work by simply connecting to the computer on the remote server via a web browser.
If you would like to get more detailed information about Robolaunch web platform payments or anything else, contact us!
Whether you're running locally or in the cloud, you'll need to install:
Full instruction:
After installation of Nvidia Isaac Sim 2023.1.1 and Ros2 Humble:
1. Clone this specific IsaacLab repo version: https://github.com/isaac-sim/IsaacLab/releases/tag/v0.3.1
2. Execute in ubuntu terminal:
export ISAACSIM_PATH="${HOME}/.local/share/ov/pkg/isaac-sim-2023.1.1"
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
and also put it inside .bashrc file
3. Inside the root folder of Orbit repo (https://github.com/isaac-sim/IsaacLab/releases/tag/v0.3.1) execute ln -s ${ISAACSIM_PATH} _isaac_sim
4. Execute ./orbit.sh --conda
5. Execute conda activate orbit
6. Execute sudo apt install cmake build-essential
7. Execute ./orbit.sh --install
8. Execute ./orbit.sh --extra rsl_rl
9. Verify the installation using "python source/standalone/tutorials/00_sim/create_empty.py" You should be inside conda env.
10. You need to check that you have "Isaac Sim Python 2023.1.1 - New Stage*" on the top of the window.
11. Clone this repo with git clone https://github.com/abizovnuralem/go2_omniverse/ --recurse-submodules -j8 --depth=1
12. Copy the config file Unitree_L1.json (located in go2_omniverse/Isaac_sim/Unitree/Unitree_L1.json) for the Unitree L1 LiDAR to the folder IsaacLab-0.3.1/source/data/sensors/lidar/Unitree_L1.json (if the path doesnt exists, create it)
13. Copy all material files in the isaac-sim-2023.1.1/data/material_files folder to IsaacLab_v0.3.1/source/data/material_files (if the path doesnt exists, create it)
14. Execute ./run_sim.sh (without activated conda orbit env)
Some suggestions:
https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_ros.html#isaac-sim-app-install-ros
The current project was tested on Ubuntu 22.04, IsaacSim 2023.1.1 with Orbit 0.3.0 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 modifying run_sim.sh script with --custom_env=office and --terrain flat commands. 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:
docker pull nvcr.io/nvidia/isaac-sim:2023.1.1
docker run --name isaac-sim --entrypoint bash -it --runtime=nvidia --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
-e "PRIVACY_CONSENT=Y" \
-v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
-v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
-v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
-v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
-v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
nvcr.io/nvidia/isaac-sim:2023.1.1
bash docker ps
to find the container's ID.docker cp <id_container>:isaac-sim/. <your_local_machine_folder> # absolute path
.local/share/ov/pkg/
If running ./run_sim.sh
results in the error "Could not import 'rosidl_typesupport_c' for package", refer to this thread.
Special thanks to
This project is licensed under the BSD 2-clause License - see the LICENSE file for details.