【免费下载链接】trlc-dk1
TRLC's Developer Kit 1
TRLC-DK1 是 The Robot Learning Company 开源的 6 自由度遥操作机械臂开发套件。本指南将带你使用仓库中自带的 TRLC-DK1-Follower.urdf 在仿真器中加载网格模型,并借助 MuJoCo 逆动力学构建一套可以直接驱动真机的重力补偿模型——从 CAD 网格、URDF 结构到 250 Hz 实时控制闭环,一次讲清楚。
1️⃣ 快速认识 TRLC-DK1:Leader + Follower 双机架构
TRLC-DK1 采用经典的"主臂 + 从臂"遥操作架构:
- Leader(主臂):人手持操作,只读取位置,输出指令;
- Follower(从臂):被执行器驱动,复现主臂姿态,是本文 URDF 建模的对象;
- 两者均基于 GELLO 设计理念,关节使用 DAMIAO(大毛)DM4310 / DM4340 力矩电机,可直接运行 MIT 阻抗控制。
Follower 从臂的 CAD 渲染(对应 hardware/ 中的 STEP 源文件)
从臂结构透明视图:可看到各关节的谐波减速器布局
仓库中与本指南最相关的目录:
| 目录 / 文件 | 作用 |
|---|---|
| urdf/follower/ | Follower 的 URDF 描述 + GLB 视觉网格 + STL 碰撞网格 |
| trlc_dk1_control/ | 独立控制栈:电机链、重力补偿、安全看门狗 |
| lerobot_robot_trlc_dk1/ | LeRobot 插件封装,可被 LeRobot 自动发现 |
| examples/ | 遥操作、读数等示例脚本 |
2️⃣ URDF 模型解析:一个 URDF 文件 + 双套网格
URDF 是 ROS 生态中描述机器人运动学结构的标准 XML 格式。TRLC-DK1 的 Follower 模型放在 urdf/follower/TRLC-DK1-Follower.urdf 中,网格资源按用途分成两套:
- 视觉网格(urdf/follower/meshes/visual/):
.glb格式,用于仿真器里的高保真渲染; - 碰撞网格(urdf/follower/meshes/collision/):
.stl格式,用于碰撞检测。
在仿真器中加载 URDF 后渲染的 TRLC-DK1 Follower 机械臂模型
连杆(link)组织方式是"两段合并一个 link"的紧凑风格,整条运动学链如下:
base_link —joint1→ link1-2 —joint2→ link2-3 —joint3→ link3-4 —joint4→ link4-5 —joint5→ link5-6 —joint6→ link6-7 link6-7 —gripper_left/right→ finger_left / finger_right(prismatic 夹爪) link6-7 —fixed→ tool0(工具坐标系)、camera(腕部相机,下倾 15°)每个 link 都已写好<inertial>(质心、质量、惯性张量),这意味着该 URDF 不只是"能显示"的可视化文件,而是可直接用于动力学计算的完整模型。
3️⃣ 关节限位表:URDF 与控制器必须保持一致
URDF 头部注释和每个<joint>的<limit>标签共同定义了 6 个旋转关节 + 2 个平移夹爪关节的运动范围,与电机规格一一对应:
| 关节 | 限位(弧度) | 电机 | 备注 |
|---|---|---|---|
| joint1 | ±120° | DM4340 | 肩部偏航 |
| joint2 | -5° ~ 180° | DM4340 | 上抬 |
| joint3 | -5° ~ 270° | DM4340 | 肘部 |
| joint4 | -111.7° ~ +90° | DM4310 | 腕部 |
| joint5 | ±90° | DM4310 | 腕部 |
| joint6 | ±120° | DM4310 | 腕部旋转 |
| gripper | -0.045 ~ 0.001 m | DM4310 | 直线夹爪,齿轮半径 0.00875 m |
⚠️ 一个容易被忽视的工程细节:trlc_dk1_control/config.py 中的joint_pos_limits特意与 URDF 的<limit>标签逐项保持同步。原因写在源码注释里:一旦两者不一致,服务端可能向 MuJoCo 下发超出其限位的姿态,模型会把这当成"限位违规"并注入虚假的约束力,污染重力补偿的前馈项。
4️⃣ MuJoCo 加载 URDF 的隐藏坑:网格路径问题
如果你直接mujoco.MjModel.from_xml_path("xxx.urdf")加载,很可能发现网格加载失败。根源在 trlc_dk1_control/gravity_comp.py 的_urdf_strip_meshes函数注释中:
MuJoCo 的 URDF 解析器会剥掉网格文件名中的目录前缀,当网格存放在子目录(如
meshes/visual/、meshes/collision/)中时,相对路径就会失效。
TRLC-DK1 的解法很巧妙:做逆动力学(inverse dynamics)时根本不需要几何,只需要质量、惯性和关节数据。因此代码在内存中解析 URDF XML,把所有<mesh>元素替换成一个半径 1 mm 的<sphere>,再交给 MuJoCo 解析——既绕开了路径问题,又不污染仓库中的原始 URDF 文件。
5️⃣ 重力补偿模型:GravityCompensator 工作原理
GravityCompensator位于 trlc_dk1_control/gravity_comp.py,核心逻辑只有三步:
- 加载模型:支持
.urdf(先剥网格)和 MuJoCo 原生.xml两种输入; - 设置状态:把当前 6 个关节位置写入
qpos,速度与加速度清零(即"静止悬停"假设); - 逆动力学求解:调用
mujoco.mj_inverse(),从qfrc_inverse中取出使机械臂保持该姿态所需的关节力矩——这就是重力补偿的前馈量。
几个设计取舍值得了解:
- 只算前 6 个关节:夹爪走独立的力-位(EMIT)模式,且其重力贡献很小,直接排除,省算力;
num_dofs校验:若模型自由度不足会直接抛错,避免静默算错;- 优雅降级:
NoGravityComp是零力矩替身,配置里不填mjcf_path时自动禁用补偿,接口不变。
6️⃣ 补偿模型接入 250 Hz 实时控制闭环
trlc_dk1_control/robot.py 中的DK1Robot把仿真模型用在了真机上。服务端线程约 300 Hz 循环执行:
读取关节状态 → 看门狗(保持最后指令) → 计算重力补偿(MuJoCo) → 位置限幅(带 0.05 rad 缓冲) → 力矩限幅 → 推送到电机链关键配置项(trlc_dk1_control/config.py):
| 参数 | 默认值 | 含义 |
|---|---|---|
mjcf_path | 仓库自带 URDF | 置空即关闭重力补偿 |
gravity_comp_scale | 1.0 | 补偿系数,可凭手感微调(装夹重物后尤其有用) |
joint_torque_limits | [28, 28, 28, 10, 10, 10] Nm | 与 DM4340/DM4310 的 T_MAX 对齐 |
command_timeout_s | 0.5 s | 指令超时后保持最后目标位而非软塌 |
这套"URDF 即物理模型"的闭环,让从臂在推理间隙(例如扩散策略的 denoising 阶段)也不会因未建模负载而垂臂。
7️⃣ 快速上手:三步完成安装与验证
① 克隆并安装(Python ≥ 3.12,依赖声明见 pyproject.toml,已包含mujoco>=3.0.0):
git clone https://gitcode.com/gh_mirrors/tr/trlc-dk1.git cd trlc-dk1 uv venv uv pip install -e .② 验证 URDF 可加载:在任意仿真器(MuJoCo / Gazebo / RViz)中指向 urdf/follower/TRLC-DK1-Follower.urdf,应能看到带夹爪与腕部相机的完整从臂(即上图渲染效果)。
③ 验证重力补偿效果:运行 examples/teleop.py 遥操作,把从臂摆到水平伸展姿态后停止操作——若从臂稳稳悬停不垂落,说明 MuJoCo 前馈生效;配合 examples/follower_read_position.py 可实时观察关节反馈。
8️⃣ 常见问题排查
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| MuJoCo 报网格加载错误 | 目录前缀被解析器剥掉 | 参考_urdf_strip_meshes的替换方案 |
| 某姿态下垂 / 过冲 | 负载未被模型覆盖 | 微调gravity_comp_scale |
| 补偿力出现奇异跳变 | 控制器限位与 URDF 限位不一致 | 同步更新joint_pos_limits |
ImportError: mujoco | 依赖未安装 | pip install mujoco |
配套的 Leader 主臂 CAD 渲染(v0.2.0)
小结:TRLC-DK1 的 URDF 是一套"仿真级 + 动力学级"双合格的模型——网格分 visual/collision 双套保证仿真渲染与碰撞检测各司其职,完整惯量参数与严格同步的关节限位让 MuJoCo 逆动力学的输出可以直接作为真机前馈。掌握这套"网格 → URDF → 逆动力学 → 实时前馈"的链路,你也就掌握了低成本机械臂接入仿真与力控的完整方法论。🤖
【免费下载链接】trlc-dk1
TRLC's Developer Kit 1
相关推荐
如何快速掌握Genesis中URDF加载与网格优化:从模型到仿真的完整指南
如何快速掌握Genesis中URDF加载与网格优化:从模型到仿真的完整指南 Genesis是一个用于通用机器人和具身AI学习的生成式世界平台,它提供了强大的UR
机器人具身智能物理引擎3D渲染SO-ARM100 仿真模型解析:SO101 的 URDF 与 MuJoCo(MJCF)描述文件完全指南
SO ARM100 仿真模型解析:SO101 的 URDF 与 MuJoCo(MJCF)描述文件完全指南 本指南以 Simulation/SO101/READM
硬件开发机器人智能硬件嵌入式玩转机器人仿真:从URDF模型到可视化实战
玩转机器人仿真:从URDF模型到可视化实战 还在为机器人仿真开发头疼吗?今天我们就来一起探索Standard Open Arm 100(SO100)的仿真世界,
硬件开发机器人智能硬件嵌入式
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考