Skip to content

Latest commit

 

History

History
224 lines (151 loc) · 7.53 KB

isaac-sim.md

File metadata and controls

224 lines (151 loc) · 7.53 KB
title Isaac Sim
description Simulation and Control with OM1
icon robot

System Requirements

Component Minimum Good Ideal
OS Ubuntu 20.04 / 22.04 Ubuntu 20.04 / 22.04 Ubuntu 20.04 / 22.04
CPU Intel Core i7 (7th Gen)
AMD Ryzen 5
Intel Core i7 (9th Gen)
AMD Ryzen 7
Intel Core i9, X-series or higher
AMD Ryzen 9, Threadripper or higher
Cores 4 8 16
RAM 32 GB 64 GB 64 GB
Storage 50 GB SSD 500 GB SSD 1 TB NVMe SSD
GPU GeForce RTX 3070 GeForce RTX 4080 RTX Ada 6000
VRAM 8 GB 16 GB 48 GB

Features

  • Isaac Sim: Realistic physics simulation of the Unitree Go2.
  • Navigation Stack: Fully configured navigation stack for autonomous movement.
  • SLAM: Mapping capabilities using slam_toolbox.
  • LiDAR Support: Simulation of Velodyne VLP-16 and Unitree 4D LiDAR.

Simulation Instructions

To get started with Isaac Sim and Unitree SDK, please install cyclonedds and ROS2 Humble first. You can find the installation steps here.

To install compilers and other tools to build ROS packages, run

sudo apt install ros-dev-tools

Install the following additional dependencies

sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ros-humble-rosidl-generator-dds-idl

Set up your environment by sourcing the following file.

source /opt/ros/humble/setup.bash

If you don't have uv installed, use the following command to install it on your system.

curl -LsSf https://astral.sh/uv/install.sh | sh

Check if you have rosdep installed by running rosdep or rosdep --version. If it is not installed, run the following:

sudo apt-get update
sudo apt-get install python3-rosdep

Once you've successfully completed above steps, follow the following steps to start the Isaac Sim simulation with OM1.

Step 1: Clone the OM1-ros2-sdk repository:

git clone https://github.com/OpenMind/OM1-ros2-sdk.git

Step 2: Initialize rosdep by setting up the source list (this is only needed once per machine)

Note: Run 'sudo rosdep init' only if rosdep has not been initialized on this machine before. If it has, skip this line and start from 'rosdep update'.

cd OM1-ros2-sdk
sudo rosdep init
rosdep update
rosdep install --from-paths . --ignore-src -r -y

It automatically installs all system dependencies needed by the ROS packages in your current directory.

Step 3: Build all the packages:

colcon build

Once the build is successful, create a virtual environment and install the dependencies

uv venv --python 3.10
source .venv/bin/activate
uv pip install .

Step 4: Install Isaac Sim

Open a new terminal window and switch to unitree/isaac_sim directory within OM1-ros2-sdk

cd OM1-ros2-sdk/unitree/isaac_sim

uv venv --python 3.11 --seed env_isaacsim

source env_isaacsim/bin/activate

# note that here we are installing IsaacSim 5.1
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com

# install the following or another CUDA-enabled PyTorch build that matches your system architecture

pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128

# after installation, run the following to test successful installation
isaacsim

If the previous command ran with no issues, Isaac Sim was installed successfully.

Step 5: Now, let's get our system ready to run OM1 with Isaac Sim. Open a terminal and run the following commands.

To run the script, export the following

Note: a trained policy is required, which should contain the policy.pt, env.yaml, and deploy.yaml files

export ROS_DISTRO=humble
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:PATH_TO_VENV/env_isaaclab/lib/python3.11/site-packages/isaacsim/exts/isaacsim.ros2.bridge/humble/lib

Note: Make sure to replace PATH_TO_VENV with the actual path to your virtual environment. We use env_isaacsim (Python 3.11) for Isaac Sim and .venv (Python 3.10) for other services like orchestrator due to compatibility requirements.

We support Isaac Sim for Unitree Go2 and G1. To run the simulation for Go2, run

source env_isaacsim/bin/activate
python3 run.py # using default policy
python3 run.py --policy_dir YOUR_POLICY_DIR # using your own policy

To run the simulation for G1, run

source env_isaacsim/bin/activate
python3 run.py --robot_type g1 # using default policy
python3 run.py --robot_type g1 --policy_dir YOUR_POLICY_DIR # using your own policy

You'll now be able to see Isaac Sim running on your system.

Note: You can skio Step 6 to Step 8 if you don't have Enterprise Plan Subscription. SLAM and Navigation are only supported as Premium features.

Step 6: Open a new terminal , switch to base directory OM1-ros2-sdk and run:

source install/setup.bash
ros2 launch go2_sdk sensor_launch.py use_sim:=true

This will bring up the om/path topic, enabling OM1 to understand the surrounding environment.

Step 7: Open a new terminal and run:

export PYTHONPATH=$PYTHONPATH:$(pwd)/.venv/lib/python3.10/site-packages
source install/setup.bash
ros2 launch orchestrator orchestrator_launch.py use_sim:=true

This will bring up the orchestrator, to consume data collected by om1_sensor for SLAM and Navigation.

Step 8: Run Zenoh Ros2 Bridge

To run the Zenoh bridge for the Unitree Go2, you need to have the Zenoh ROS 2 bridge installed. You can find the installation instructions here.

After installing the Zenoh ROS 2 bridge, you can run it with the following command:

zenoh-bridge-ros2dds -c ./zenoh/zenoh_bridge_config.json5

Step 9: Start OM1

Refer to the Installation Guide for detailed instructions.

Setup your API key in .bashrc file and run your simulation agent:

Get your API key from the portal, and add it to bashrc

vi ~/.bashrc
export OM_API_KEY="<your_api_key>"

Now, run the simulation agent

CONFIG=unitree_go2_autonomy USE_SIM=true make dev

Note: Update your agent name depending on robot type.

Congratulations! You have launched Isaac Sim with OM1 successfully.

Control Methods

When keyboard control is enabled (default), use the following keys:

Key Action
↑ or Numpad 8 Move forward
↓ or Numpad 2 Move backward
← or Numpad 4 Strafe left
→ or Numpad 6 Strafe right
N or Numpad 7 Rotate left
M or Numpad 9 Rotate right

Note: We don't have auto charging feature supported with Isaac Sim but it will be launched soon. Stay tuned!