Implementation:Haosulab ManiSkill UnitreeGo2
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Locomotion |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the Unitree Go2 quadruped robot in ManiSkill environments.
Description
The UnitreeGo2 is a 12-DOF quadruped robot with 4 legs, each having 3 joints (hip, thigh, calf). The robot has a free root link (fix_root_link=False). Foot links (FR_foot, RR_foot, RL_foot, FL_foot) use high-friction materials (static=2.0, dynamic=2.0). The delta position controller uses stiffness=1000, damping=100, with action range [-0.7, 0.7] and normalized actions. Gravity compensation is disabled (balance_passive_force=False). Provides is_fallen method that checks base contact forces. Also defines UnitreeGo2Simplified variant with simplified collision meshes for faster simulation.
uid: unitree_go2
URDF path: {ASSET_DIR}/robots/unitree_go2/urdf/go2_description.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos
Usage
Use UnitreeGo2 for quadruped locomotion tasks including walking, trotting, and agile movement. The compact design and simplified variant enable fast simulation for locomotion policy training. Suitable for sim-to-real transfer to the real Unitree Go2 hardware.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/unitree_go/unitree_go2.py
Signature
@register_agent(asset_download_ids=["unitree_go2"])
class UnitreeGo2(BaseAgent):
uid = "unitree_go2"
urdf_path = f"{ASSET_DIR}/robots/unitree_go2/urdf/go2_description.urdf"
fix_root_link = False
keyframes = dict(standing=Keyframe(pose=sapien.Pose(p=[0, 0, 0.29]), qpos=np.array([...])))
@register_agent(asset_download_ids=["unitree_go2"])
class UnitreeGo2Simplified(UnitreeGo2):
uid = "unitree_go2_simplified_locomotion"
Import
from mani_skill.agents.robots.unitree_go.unitree_go2 import UnitreeGo2
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | UnitreeGo2 | Configured 12-DOF quadruped with PD joint controllers |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("UnitreeGo2Walk-v1", robot_uids="unitree_go2")
obs, info = env.reset()