处理运动学闭环
本文翻译自 onshape-to-robot 文档:Handling kinematic loops。
引言
某些机器人具有运动学闭环(kinematic loop),即运动链不是树(tree)而是图(graph)。
下文展示了一个带有运动学闭环的二维平面机器人,假设前两个关节是驱动的(actuated),其余关节为被动的(passive)。
机器人描述通常是树结构。处理闭环的方法是将闭环拆解为树,在树上附加坐标系(frame),然后在运行时施加约束。

指定闭合约束
除了手动添加坐标系之外,onshape-to-robot 还提供了配合连接器(mate connector)作为处理运动学闭环的便捷方式。方法如下:添加一个名为 closing_something 的配合(mate)。

另请参阅:自定义坐标系文档
MuJoCo 中的 <equality> 约束支持
导出为 MuJoCo 格式时,onshape-to-robot 会自动添加 <equality> 约束来强制执行运动学闭环。
另请参阅:MuJoCo 导出器文档
示例 config.json:
{
// 文档 URL,输出为 MuJoCo 格式
"url": "https://cad.onshape.com/documents/04b05c47de7576f35c0e99b3/w/68041f3f5c827a258b40039c/e/db543f501b01adf8144064e3",
"output_format": "mujoco",
// 禁用自由关节以固定机器人
"freejoint": false,
// 不为被动关节创建执行器
"joint_properties": {
"passive1": {"actuated": false},
"passive2": {"actuated": false}
}
}
参考资料
以下是在其他软件工具中处理运动学闭环的外部参考资源:
- Onshape 装配体 — 上述示例所使用的机器人。
- MuJoCo equality 约束
- pyBullet — 使用
createConstraint方法添加相应约束。 - PlaCo 求解器 — 创建
RelativePositionTask,其中包含关于闭环闭合的专门章节,以及展示使用 onshape-to-robot 创建的机器人示例画廊。