Mujoco XML配置教程:为so-arm100机械臂更换panda夹爪
2026-03-27 来源:EEWorld 论坛
本文将介绍如何为so-arm100机械臂更换panda夹爪,重点讲解Mujoco XML文件的配置修改。通过修改mesh路径、调整joint旋转轴和运动范围、更换body以及添加执行器等步骤,实现夹爪的更换。注意,文章省略了原帖中的视频和图片,仅以文字和代码示例说明关键流程。
首先,需要将panda夹爪的mesh文件(如hand.stl、hand_0.obj等)添加到so-arm100模型的assets目录下。然后,在XML文件的<asset>部分添加这些mesh和相应的材料描述,例如灰白色材质。
<asset>
<material name="off_white" rgba="0.901961 0.921569 0.929412 1"/>
<mesh name="hand_c" file="hand.stl"/>
<mesh file="hand_0.obj"/>
<mesh file="hand_1.obj"/>
<mesh file="hand_2.obj"/>
<mesh file="hand_3.obj"/>
<mesh file="hand_4.obj"/>
<mesh file="finger_0.obj"/>
<mesh file="finger_1.obj"/>
</asset>接着,在<default>部分修改joint描述。添加finger关节类,定义滑动类型和范围;同时修改Jaw关节的旋转轴为Y轴,并调整运动范围。
<default class="finger">
<joint axis="0 1 0" type="slide" range="0 0.04"/>
</default>
<default class="Jaw">
<joint axis="0 1 0" range="-0.2 2.0"/>
</default>然后,更换body部分。将原来的Move Jaw替换为panda的hand身体,并调整安装位置和姿态(绕X轴旋转90度),以确保夹爪方向正确。
<body name="hand" pos="-0.0202 -0.0244 0" quat="2.5973612402897724e-06 -2.597342159154704e-06 0.7071041838348479 -0.7071093785382472">
<inertial mass="0.73" pos="-0.01 0 0.03" diaginertia="0.001 0.0025 0.0017"/>
<joint name="Jaw" class="Jaw"/>
<geom mesh="hand_0" material="off_white" class="visual"/>
<!-- 其他geom和子body(如left_finger、right_finger)省略 -->
</body>此外,需要添加肌腱(tendon)描述和执行器(actuator),以实现两个手指关节的同步运动,并分配驱动力。
<tendon>
<fixed name="split">
<joint joint="finger_joint1" coef="0.5"/>
<joint joint="finger_joint2" coef="0.5"/>
</fixed>
</tendon>
<actuator>
<general name="actuator8" tendon="split" forcerange="-35 35" ctrlrange="-30 30" gainprm="0.01568627451 0 0" biasprm="0 -100 -10"/>
</actuator>最后,更新home点的qpos值,增加一个关节位置以适配新夹爪。
<key name="home" qpos="0 -1.57079 1.57079 1.57079 -1.57079 -0.7853 0.04 0.04" ctrl="0 -1.57079 1.57079 1.57079 -1.57079 -1.57079 0"/>完成这些修改后,即可在Mujoco仿真中控制新的panda夹爪。本文概述了关键步骤,更多详细代码、碰撞设置和完整XML配置,请参考原帖子:教你如何给 so-arm100 机械臂 “换爪子”!Mujoco XML 配置介绍。
原帖子内容来源:https://bbs.eeworld.com.cn/thread-1311263-1-1.html
相关文章




