**English** | [中文](README_zh-CN.md)
[](LICENSE)
[](https://github.com/limxdynamics/tron2-robot-description/actions/workflows/ci.yml)
[](#ros-packages)
[](https://mujoco.org/)
[](https://developer.nvidia.com/isaac/sim)
| `DA_TRON2A` | Dual-arm manipulators with grippers; torso-mounted IMU frame. | 14 | URDF · Xacro · MJCF · USD |
|
| `DACH_TRON2A` | Dual-arm configuration **with a 2-DoF head** (yaw / pitch). | 16 | URDF · Xacro · MJCF · USD |
|
| `WF_TRON2A` | **Wheeled** leg design (knee + wheel); torso IMU. | 10 | URDF · Xacro · MJCF · USD |
|
| `SF_TRON2A` | **Sole Ankle** leg design (no wheel); torso IMU. | 10 | URDF · Xacro · MJCF · USD |
|
| `WFYG_TRON2A` | WF base plus **upper-body peripherals** (arms, grippers, mast-mounted structures). | 18 | URDF · Xacro · MJCF · USD |
|
| `SFYG_TRON2A` | SF base plus the same **upper-body peripheral** stack as `WFYG_TRON2A`. | 18 | URDF · Xacro · MJCF · USD |
|
| `DASF_TRON2A` | **Top-bottom combined humanoid** — `SF` ankle-pitch legs joined to a `DACH` dual-arm + 2-DoF head upper body via `transition_upper_Link`. | 26 | URDF · Xacro · MJCF · USD |
|
| `DASF2_TRON2A` | **Centaur-style** variant — two `SF`-style leg pairs (front `_F` and back `_B`) under a `DACH` dual-arm + head upper body. | 36 | URDF · MJCF · USD |
The suffix **YG** denotes the richer upper-body / mast peripheral layout (arms, hands, and accessory links—see [External sensors by variant](#external-sensors-by-variant)). The **DASF** / **DASF2** variants combine previously separate lower-body (`SF`) and upper-body (`DACH`) descriptions into a single stacked (“上下拼接”) humanoid, each with its own IMU per body segment.
### TRON2A vs TRON2B
The table above shows the **TRON2A** family under `tron2a/`. `tron2b/` holds the **TRON2B** hardware revision of the same eight configurations, with the same assemblies and file layout.
| | TRON2A (`tron2a/`) | TRON2B (`tron2b/`) |
|---|---|---|
| Variants | 8 | 8 — same list |
| Formats shipped | URDF · Xacro · MJCF · USD (`DASF2` has no xacro) | URDF · MJCF · USD — **no xacro**; URDF/MJCF are authored directly |
| STL meshes | 253 | 251 |
| USD files | 40 | 40 |
| URDF zero | real robot's factory-calibrated zero | knees-forward pose (see [Joint zero convention](#joint-zero-convention)) |
| Model mass | see [Model mass](#model-mass) | see [Model mass](#model-mass) |
The renders under `docs/images/` cover TRON2A only; use them as the layout reference for TRON2B as well (the **YG** variants carry an updated sensor kit on TRON2B). The per-file manifest in [`ASSETS.md`](ASSETS.md) enumerates every asset of both trees.
**Which tree to use:** `tron2a/` when the model has to line up with an as-shipped TRON2A robot or with the TRON2A policies trained in `tron2_rl_lab`; `tron2b/` for TRON2B hardware, or when a knees-forward rest pose is preferable for training and inspection without a 180° hip-yaw offset.
## Quick start
Preview any variant in MuJoCo, no ROS needed:
```bash
git clone https://github.com/limxdynamics/tron2-robot-description.git
cd tron2-robot-description
pip install "mujoco>=2.3"
python -m mujoco.viewer --mjcf=tron2a/DACH_TRON2A/xml/robot.xml
```
Replace `DACH_TRON2A` with any folder under `tron2a/` or `tron2b/` (for example `tron2b/DACH_TRON2B`). For `DASF2_TRON2A`, load `xml/default_pose.xml` to start from the standing keyframe.
## Repository layout
Each variant lives under `tron2a/
|
|
Both renders add the same small hip / knee / ankle bend so the knee direction is visible; the only difference between them is the 180° hip-yaw offset.
## External sensors by variant
Summary of **torso-mounted and mast-mounted peripherals** as represented in this repository. In every variant the IMU appears as a URDF link fixed to the root and as a MuJoCo site with quaternion / gyro / accelerometer sensors. **Gazebo** entries refer to plugins in the shipped URDF where present. Real hardware may include devices not modeled here. For **YG** variants, **Mast & auxiliary URDF (YG)** lists both model link names and on-robot hardware (all LiDAR / RTK / compute / arm-side payloads are mounted on the **arm transition bracket**, URDF link **`transition_Link`**).
| Variant | Torso IMU | RGB-D / depth (chest, D435-class) | Mast & auxiliary URDF (YG) | Notes |
|--------|-----------|-------------------------------------|------------------------------|--------|
| `DA_TRON2A` | Yes — link `base_imu` | Yes — `d435_Link` + `d435_optical_frame` (geometry only; no Gazebo depth plugin) | — | MuJoCo: quaternion / gyro / accelerometer at site `base_imu`. |
| `DACH_TRON2A` | Yes — link `base_imu` | Yes — `d435_Link` + `d435_optical_frame`; Gazebo depth camera plugin | — | Full URDF/xacro/XML/USD in this tree; 2-DoF head (`head_yaw` / `head_pitch`). MuJoCo IMU at site `base_imu`. |
| `WF_TRON2A` | Yes — link `base_imu`; Gazebo `base_imu_sensor` | Yes — `d435_Link` + `d435_optical_frame`; Gazebo depth camera plugin | — | |
| `SF_TRON2A` | Yes — same pattern as WF | Yes — same D435 Gazebo block as WF | — | |
| `WFYG_TRON2A` | Yes | Yes — same chest D435 as WF | **URDF (meshes / kinematics):** `transition_Link` (转接件), `camera_mount_Link`, `radar_Link`, `antenna_L_Link`, `antenna_R_Link`. **Physical hardware** (on `transition_Link`): LiDAR **RoboSense Fairy96** (速腾 Fairy96); dual arms **AgileX Piper X** (松灵 PiperX); RTK **Huace M722** (华测 M722); compute **NVIDIA Jetson Orin NX**. **Simulation note:** URDF provides geometry/collision only; **no** Gazebo radar/RF sensor plugins in this package. | |
| `SFYG_TRON2A` | Yes | Yes | **Same YG stack as `WFYG_TRON2A`** — same URDF link set, same hardware (Fairy96, Piper X, M722, Orin NX on `transition_Link`) and the same simulation caveats. | |
| `DASF_TRON2A` | Two — lower body `base_imu`, upper body `upper_base_imu` | Yes — `d435_U_Link` + `d435_optical_frame_U` on the upper body | — | Stacked `SF` legs + `DACH` arms/head joined at `transition_upper_Link`; MuJoCo IMU sensors on both `base_imu` and `upper_base_imu` sites. |
| `DASF2_TRON2A` | Three — `limx_F_imu` (front legs), `limx_B_imu` (back legs), `limx_H_imu` (head/upper body) | Yes — `d435_F_Link`, `d435_B_Link`, `d435_H_Link` (front / back / head cameras) | — | Centaur-style: two `SF`-style leg pairs (`transition_middle_Link` to front legs, direct to back legs) plus `DACH` upper body via `transition_upper_Link`. |
**Legend:** “RGB-D / depth” follows the Intel RealSense **D435**-style optical frame and Gazebo `depth` sensor naming (`d435_camera_sensor`) where present. Add your own drivers or Gazebo plugins if you need simulated radar or extra cameras.
## Model mass
Total mass of the robot body in each MuJoCo model (`xml/robot.xml`), i.e. the sum of all `