中文说明:TRON 1 双足机器人(点足 PF / 双足 SF / 轮足 WF 各版本)的机器人描述文件,包含 URDF / Xacro / MuJoCo MJCF 模型与网格,支持 ROS 1/2 与 MuJoCo 仿真。本仓库镜像自 GitHub limxdynamics/tron1-robot-description。问题与合作请联系 opensource@limxdynamics.com。
Mirrored as-is from limxdynamics/tron1-robot-description. Download:
hf download limxdynamics/tron1-robot-description
English | 中文
TRON1 Robot Description
Open, simulation-ready robot models for the LimX Dynamics TRON1 biped — point-foot, sole-foot and wheel-foot — plus a wheel-legged quadruped.
URDF · Xacro · MuJoCo MJCF · ROS 1 · ROS 2 · Gazebo
For partnership and procurement inquiries, contact opensource@limxdynamics.com
Rendered directly from the MJCF / URDF files in this repository.
Part of the TRON1 open-source ecosystem. Where to start and the other TRON1 repositories: TRON1 quick start.
Why this repo
- One TRON1, three feet. Swap between point-foot, sole-foot (with ankle) and wheel-foot by changing one model name.
- Load it in 30 seconds. Every biped variant ships a MuJoCo MJCF —
pip install mujocois all you need, no ROS required. - Same models, every toolchain. URDF, Xacro and MJCF from one source, working with ROS 1 Noetic, ROS 2 Iron, Gazebo and MuJoCo.
- Built for sim-to-real. These are the models used across the official TRON1 training (Isaac Lab / Isaac Gym), simulation and deployment stack.
- Gazebo and ros2_control wiring included. Transmissions and the Gazebo IMU sensor plugin are
emitted by default; the
ros2_controlhardware block and thegazebo_ros2_controlplugin come withuse_gazebo:=true.
Try it in 30 seconds (no ROS)
git clone https://github.com/limxdynamics/tron1-robot-description.git
pip install mujoco
python -m mujoco.viewer --mjcf=tron1-robot-description/pointfoot/WF_TRON1A/xml/robot.xml
Swap WF_TRON1A for any biped model in the table below — all ten ship an MJCF. The wheel-legged
quadruped (WL_P311D / WL_P311E) ships URDF and SRDF only, so it has no xml/robot.xml. Or load
it from Python:
import mujoco
model = mujoco.MjModel.from_xml_path("tron1-robot-description/pointfoot/SF_TRON1A/xml/robot.xml")
data = mujoco.MjData(model)
mujoco.mj_step(model, data)
Robot models
| Type | Models | Actuated DoF | Formats | |
|---|---|---|---|---|
![]() |
Point-foot biped | PF_TRON1A PF_TRON1BPF_P441A PF_P441B PF_P441C PF_P441C2 |
6 | URDF · Xacro · MJCF |
![]() |
Sole-foot biped (with ankle) | SF_TRON1A SF_TRON1B |
8 | URDF · Xacro · MJCF |
![]() |
Wheel-foot biped | WF_TRON1A WF_TRON1B |
8 | URDF · Xacro · MJCF |
![]() |
Wheel-legged quadruped | WL_P311D WL_P311E |
16 | URDF · SRDF |
Repository layout
tron1-robot-description/
├── pointfoot/ # TRON1 biped family
│ ├── <MODEL>/
│ │ ├── urdf/robot.urdf # flattened URDF
│ │ ├── xacro/ # robot.xacro + gazebo / transmission / ros2_control
│ │ ├── xml/robot.xml # MuJoCo MJCF
│ │ └── meshes/ # STL meshes
│ └── meshes_camera/ # optional Intel RealSense D435 mesh (referenced from a commented-out
│ # block in every *_TRON1A / *_TRON1B model)
├── wheellegged/
│ └── <MODEL>/{urdf,srdf,meshes}
├── CMakeLists.txt # builds as package `robot_description` on ROS 1 and ROS 2
└── package.xml
Use with ROS
The repo builds as a single ROS package named robot_description on both ROS 1 and ROS 2. The workspace and the clone are the same for both, so run this once and then open the block for your ROS version:
mkdir -p ~/limx_ws/src && cd ~/limx_ws/src
git clone https://github.com/limxdynamics/tron1-robot-description.git
cd ~/limx_ws
ROS 1 (Noetic)
source /opt/ros/noetic/setup.bash
catkin_make install
source devel/setup.bash
# Choose your robot, e.g. SF_TRON1A
export ROBOT_TYPE=SF_TRON1A
# Generate the URDF from Xacro
rosrun xacro xacro $(rospack find robot_description)/pointfoot/$ROBOT_TYPE/xacro/robot.xacro
ROS 2 (Iron)
source /opt/ros/iron/setup.bash
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash
export ROBOT_TYPE=SF_TRON1A
xacro $(ros2 pkg prefix robot_description)/share/robot_description/pointfoot/$ROBOT_TYPE/xacro/robot.xacro
Xacro arguments (biped models):
| Argument | Default | Effect |
|---|---|---|
use_gazebo |
false |
Adds the Gazebo ros2_control hardware block (PointFootHWSim) with joint and IMU interfaces |
use_support |
false |
Fixes the base to the world 0.3 m above ground — handy for debugging joints in the air |
xacro .../pointfoot/$ROBOT_TYPE/xacro/robot.xacro use_gazebo:=true
Note:
use_gazebo:=trueexpands$(find pointfoot_gazebo)to locate the controller config, andpointfoot_gazebois not part of this repository — without it installed,xacrostops at that line with a package-not-found error. Everything else in this table needs only the files here.
Tip: the flattened URDFs reference meshes as
package://robot_description/.... Outside ROS (e.g. Isaac Sim, PyBullet, Pinocchio), point your loader's package path at this repo's parent folder, or use the MJCF files directly.
TRON1 ecosystem
tron1-robot-description ──► tron1-rl-isaaclab / tron1-rl-isaacgym ──► tron1-mujoco-sim ──► tron1-rl-deploy-* ──► real TRON1
(you are here) (train) (sim-to-sim) (deploy)
| Stage | Repository |
|---|---|
| Train | tron1-rl-isaaclab (recommended) · tron1-rl-isaacgym |
| Simulate | tron1-mujoco-sim · tron1-gazebo-ros · tron1-gazebo-ros2 |
| Deploy | tron1-rl-deploy-python · tron1-rl-deploy-ros · tron1-rl-deploy-ros2 |
No robot yet? Run the pre-trained policies from tron1-rl-deploy-python inside tron1-mujoco-sim — nothing to train.
License
Apache License 2.0 © LimX Dynamics



