Unitree Quadruped Movement Issues in Isaac Sim

Isaac Sim Version

4.2.0
4.1.0
4.0.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA RTX 3080 Ti
  • Driver Version: (Please specify your driver version)

ROS Version

  • ROS 2 Humble

Topic Description

Detailed Description

I am trying to simulate one of the Unitree quadruped robots (e.g., Go1 or A1) in Isaac Sim using the classical control-based robot templates. Specifically, I loaded the robots using the following classes:

# Classical control-based robot template classes
from omni.isaac.quadruped.robots.unitree import Unitree
from omni.isaac.quadruped.robots.unitree_direct import UnitreeDirect
from omni.isaac.quadruped.robots.unitree_vision import UnitreeVision

The issue is that the robots’ movement behavior is unsatisfactory. Whether I use ROS commands or keyboard control, the movement response is very limited. The commands I used (e.g., robot.advance(step_size, base_command)) produce slow robot motion, and the robots appear almost stationary in their positions, even though their leg movements are fast and rendered correctly.

I also tested the examples provided in the directory standalone_examples/api/omni.isaac.quadruped, specifically:

  • a1_vision_ros2_standalone.py
  • a1_standalone.py

Both examples show the same problem: the robots’ overall movement is extremely slow, even though the leg motion appears normal.

However, when I tested RL-based robot templates, such as:

# RL-based robot template classes
from omni.isaac.quadruped.robots.anymal import AnymalFlatTerrainPolicy
from omni.isaac.quadruped.robots.spot import SpotFlatTerrainPolicy

They worked perfectly in examples like spot_standalone.py and anymal_standalone.py. Their motion is fluid and behaves as expected (albeit slightly non-deterministic, which is acceptable). Unfortunately, these RL-based classes are specific to Spot and Anymal robots, which do not fit my use case of working with Unitree robots like Go1 or A1.

Given that there is no official documentation for the quadruped API (the only page I could find is Quadruped Robots [omni.isaac.quadruped] — isaac_sim 4.2.0-rc.17 documentation, which lacks sufficient details), I am uncertain if this is a configuration issue or something else.

I have already tried increasing cmd_vel values, but it had no effect.

Steps to Reproduce

  1. Try the standalone examples for Unitree robots in the directory standalone_examples/api/omni.isaac.quadruped.

I would greatly appreciate any advice or suggestions on resolving this issue, whether it involves modifying configurations or other steps. If this cannot be solved directly, I assume re-training the Go1 or A1 robots with Isaac Gym is the ultimate solution. Please let me know if this assumption is correct.

Thank you in advance for your help!

Please stay tuned, Isaac Sim 4.5 which is coming out end of Jan, will have more info and example on this for you