mishig's picture
download
raw
15 kB
<!-- Modified for this SO-101 block-sorting package: portable mesh paths,
fingertip collision pads, grasp and vision markers, contact friction,
and gripper force limit.
Derived from TheRobotStudio/SO-ARM100, Simulation/SO101/so101_new_calib.xml,
commit eecbe3e0a9ebb23e25ad7b2759b03884c6660903. Apache-2.0.
Upstream generated using onshape-to-robot.
Onshape https://cad.onshape.com/documents/7715cc284bb430fe6dab4ffd/w/4fd0791b683777b02f8d975a/e/826c553ede3b7592eb9ca800
See THIRD_PARTY_NOTICES.md for license and source attribution. -->
<mujoco model="so101_new_calib">
<compiler angle="radian" meshdir="../assets/so101/assets" autolimits="true" />
<default>
<default class="so101_new_calib">
<joint damping="1" frictionloss="0.1" armature="0.005" />
<position kp="50" />
<default class="visual">
<geom type="mesh" contype="0" conaffinity="0" group="2" />
</default>
<default class="collision">
<geom group="3" />
</default>
</default>
</default>
<!-- Additional joints_properties.xml -->
<default>
<default class="sts3215">
<geom contype="0" conaffinity="0" />
<joint damping="0.60" frictionloss="0.052" armature="0.028" />
<!-- These gains are not a 1-to-1 mapping of the servo gains used in
Lerobot. These position gains and forces were calculated according to
https://github.com/Gregory119/RBE501-RL-arm-project/blob/main/gymnasium_env/README.md,
assuming that the servo proportional gain is set to 16. -->
<position kp="998.22" kv="2.731" forcerange="-2.94 2.94" />
</default>
<default class="backlash">
<!-- +/- 0.5° of backlash -->
<joint damping="0.01" frictionloss="0" armature="0.01" limited="true" range="-0.008726646259971648 0.008726646259971648" />
</default>
</default>
<worldbody>
<!-- Link base -->
<body name="base" pos="0 0 0" quat="1 0 0 0" childclass="so101_new_calib">
<inertial pos="0.0137179 -5.19711e-05 0.0334843" mass="0.147" fullinertia="0.000114686 0.000136117 0.000130364 -4.59787e-07 4.97151e-06 9.75275e-08" />
<!-- Part base_motor_holder_so101_v1 -->
<geom type="mesh" class="visual" pos="-0.00636471 -9.94414e-05 -0.0024" quat="0.5 0.5 0.5 0.5" mesh="base_motor_holder_so101_v1" material="base_motor_holder_so101_v1_material" />
<!-- Part base_so101_v2 -->
<geom type="mesh" class="visual" pos="-0.00636471 -8.97657e-09 -0.0024" quat="0.5 0.5 0.5 0.5" mesh="base_so101_v2" material="base_so101_v2_material" />
<!-- Part sts3215_03a_v1 -->
<geom type="mesh" class="visual" pos="0.0263353 -8.97657e-09 0.0437" quat="1 -2.85511e-16 -9.64433e-17 6.12908e-16" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" />
<!-- Part waveshare_mounting_plate_so101_v2 -->
<geom type="mesh" class="visual" pos="-0.0309827 -0.000199441 0.0474" quat="0.5 0.5 0.5 0.5" mesh="waveshare_mounting_plate_so101_v2" material="waveshare_mounting_plate_so101_v2_material" />
<!-- Frame baseframe -->
<site group="3" name="baseframe" pos="8.67362e-19 9.55596e-18 3.46945e-18" quat="1 -8.17396e-19 3.78392e-17 2.22045e-16" />
<!-- Link shoulder -->
<body name="shoulder" pos="0.0388353 -8.97657e-09 0.0624" quat="3.56167e-16 1.22818e-15 -1 -4.14635e-16">
<!-- Joint from base to shoulder -->
<joint axis="0 0 1" name="shoulder_pan" type="hinge" range="-1.9198621771937616 1.9198621771937634" class="sts3215" />
<inertial pos="-0.0307604 -1.66727e-05 -0.0252713" mass="0.100006" fullinertia="8.3759e-05 8.10403e-05 2.39783e-05 7.55525e-08 -1.16342e-06 1.54663e-07" />
<!-- Part sts3215_03a_v1_2 -->
<geom type="mesh" class="visual" pos="-0.0303992 0.000422241 -0.0417" quat="0.5 0.5 0.5 -0.5" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" />
<geom type="mesh" class="collision" pos="-0.0303992 0.000422241 -0.0417" quat="0.5 0.5 0.5 -0.5" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part motor_holder_so101_base_v1 -->
<geom type="mesh" class="visual" pos="-0.0675992 -0.000177759 0.0158499" quat="0.5 0.5 -0.5 0.5" mesh="motor_holder_so101_base_v1" material="motor_holder_so101_base_v1_material" />
<geom type="mesh" class="collision" pos="-0.0675992 -0.000177759 0.0158499" quat="0.5 0.5 -0.5 0.5" mesh="motor_holder_so101_base_v1" material="motor_holder_so101_base_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part rotation_pitch_so101_v1 -->
<geom type="mesh" class="visual" pos="0.0122008 2.22413e-05 0.0464" quat="0.707107 -0.707107 -0 8.3163e-34" mesh="rotation_pitch_so101_v1" material="rotation_pitch_so101_v1_material" />
<geom type="mesh" class="collision" pos="0.0122008 2.22413e-05 0.0464" quat="0.707107 -0.707107 -0 8.3163e-34" mesh="rotation_pitch_so101_v1" material="rotation_pitch_so101_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Link upper_arm -->
<body name="upper_arm" pos="-0.0303992 -0.0182778 -0.0542" quat="0.5 -0.5 -0.5 -0.5">
<!-- Joint from shoulder to upper_arm -->
<joint axis="0 0 1" name="shoulder_lift" type="hinge" range="-1.7453292519943224 1.7453292519943366" class="sts3215" />
<inertial pos="-0.0898471 -0.00838224 0.0184089" mass="0.103" fullinertia="4.08002e-05 0.000147318 0.000142487 -1.97819e-05 -4.03016e-08 8.97326e-09" />
<!-- Part sts3215_03a_v1_3 -->
<geom type="mesh" class="visual" pos="-0.11257 -0.0155 0.0187" quat="4.56308e-16 -0.707107 0.707107 -1.37383e-16" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" />
<geom type="mesh" class="collision" pos="-0.11257 -0.0155 0.0187" quat="4.56308e-16 -0.707107 0.707107 -1.37383e-16" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part upper_arm_so101_v1 -->
<geom type="mesh" class="visual" pos="-0.065085 0.012 0.0182" quat="0 1 0 0" mesh="upper_arm_so101_v1" material="upper_arm_so101_v1_material" />
<geom type="mesh" class="collision" pos="-0.065085 0.012 0.0182" quat="0 1 0 0" mesh="upper_arm_so101_v1" material="upper_arm_so101_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Link lower_arm -->
<body name="lower_arm" pos="-0.11257 -0.028 1.73763e-16" quat="0.707107 -5.98613e-17 -2.58051e-17 0.707107">
<!-- Joint from upper_arm to lower_arm -->
<!-- Note: 5-degree calibration offset applied to joint range -->
<joint axis="0 0 1" name="elbow_flex" type="hinge" range="-1.69 1.69" class="sts3215" />
<inertial pos="-0.0980701 0.00324376 0.0182831" mass="0.104" fullinertia="2.87438e-05 0.000159844 0.00014529 7.41152e-06 1.26409e-06 -4.90188e-08" />
<!-- Part under_arm_so101_v1 -->
<geom type="mesh" class="visual" pos="-0.0648499 -0.032 0.0182" quat="0 1 0 0" mesh="under_arm_so101_v1" material="under_arm_so101_v1_material" />
<geom type="mesh" class="collision" pos="-0.0648499 -0.032 0.0182" quat="0 1 0 0" mesh="under_arm_so101_v1" material="under_arm_so101_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part motor_holder_so101_wrist_v1 -->
<geom type="mesh" class="visual" pos="-0.0648499 -0.032 0.018" quat="3.92687e-16 -1 -1.9186e-15 -6.38378e-16" mesh="motor_holder_so101_wrist_v1" material="motor_holder_so101_wrist_v1_material" />
<geom type="mesh" class="collision" pos="-0.0648499 -0.032 0.018" quat="3.92687e-16 -1 -1.9186e-15 -6.38378e-16" mesh="motor_holder_so101_wrist_v1" material="motor_holder_so101_wrist_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part sts3215_03a_v1_4 -->
<geom type="mesh" class="visual" pos="-0.1224 0.0052 0.0187" quat="7.21645e-16 1.56949e-15 1 -3.33067e-16" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" />
<geom type="mesh" class="collision" pos="-0.1224 0.0052 0.0187" quat="7.21645e-16 1.56949e-15 1 -3.33067e-16" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Link wrist -->
<body name="wrist" pos="-0.1349 0.0052 3.62355e-17" quat="0.707107 9.58722e-16 -7.51313e-16 -0.707107">
<!-- Joint from lower_arm to wrist -->
<joint axis="0 0 1" name="wrist_flex" type="hinge" range="-1.6580628494556928 1.6580627293335335" class="sts3215" />
<inertial pos="-0.000103312 -0.0386143 0.0281156" mass="0.079" fullinertia="3.68263e-05 2.5391e-05 2.1e-05 1.7893e-08 -5.28128e-08 3.6412e-06" />
<!-- Part sts3215_03a_no_horn_v1 -->
<geom type="mesh" class="visual" pos="8.32667e-17 -0.0424 0.0306" quat="0.5 0.5 0.5 -0.5" mesh="sts3215_03a_no_horn_v1" material="sts3215_03a_no_horn_v1_material" />
<geom type="mesh" class="collision" pos="8.32667e-17 -0.0424 0.0306" quat="0.5 0.5 0.5 -0.5" mesh="sts3215_03a_no_horn_v1" material="sts3215_03a_no_horn_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part wrist_roll_pitch_so101_v2 -->
<geom type="mesh" class="visual" pos="0 -0.028 0.0181" quat="0.5 -0.5 -0.5 -0.5" mesh="wrist_roll_pitch_so101_v2" material="wrist_roll_pitch_so101_v2_material" />
<geom type="mesh" class="collision" pos="0 -0.028 0.0181" quat="0.5 -0.5 -0.5 -0.5" mesh="wrist_roll_pitch_so101_v2" material="wrist_roll_pitch_so101_v2_material" friction="1.3 .02 .002" condim="4" />
<!-- Link gripper -->
<body name="gripper" pos="5.55112e-17 -0.0611 0.0181" quat="0.0172091 -0.0172091 0.706897 0.706897">
<!-- Joint from wrist to gripper -->
<joint axis="0 0 1" name="wrist_roll" type="hinge" range="-2.7438472969992493 2.841206309382605" class="sts3215" />
<inertial pos="0.000213627 0.000245138 -0.025187" mass="0.087" fullinertia="2.75087e-05 4.33657e-05 3.45059e-05 -3.35241e-07 -5.7352e-06 -5.17847e-08" />
<!-- Part sts3215_03a_v1_5 -->
<geom type="mesh" class="visual" pos="0.0077 0.0001 -0.0234" quat="0.707107 -0.707107 1.66015e-15 6.45094e-15" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" />
<geom type="mesh" class="collision" pos="0.0077 0.0001 -0.0234" quat="0.707107 -0.707107 1.66015e-15 6.45094e-15" mesh="sts3215_03a_v1" material="sts3215_03a_v1_material" friction="1.3 .02 .002" condim="4" />
<!-- Part wrist_roll_follower_so101_v1 -->
<geom type="mesh" class="visual" pos="8.32667e-17 -0.000218214 0.000949706" quat="0 1 0 0" mesh="wrist_roll_follower_so101_v1" material="wrist_roll_follower_so101_v1_material" />
<!-- Frame gripperframe -->
<site group="3" name="gripperframe" pos="-0.0079 -0.000218121 -0.0981274" quat="0.707107 -0 0.707107 -2.37788e-17" />
<!-- Link moving_jaw_so101_v1 -->
<body name="moving_jaw_so101_v1" pos="0.0202 0.0188 -0.0234" quat="0.707107 0.707107 -1.85362e-08 1.85362e-08">
<!-- Joint from gripper to moving_jaw_so101_v1 -->
<joint axis="0 0 1" name="gripper" type="hinge" range="-0.17453297762778586 1.7453291995659765" class="sts3215" />
<inertial pos="-0.00157495 -0.0300244 0.0192755" mass="0.012" fullinertia="6.61427e-06 1.89032e-06 5.28738e-06 -3.19807e-07 -5.90717e-09 -1.09945e-07" />
<!-- Part moving_jaw_so101_v1 -->
<geom type="mesh" class="visual" pos="-5.55112e-17 -5.55112e-17 0.0189" quat="1 -0 3.00524e-16 -2.00834e-17" mesh="moving_jaw_so101_v1" material="moving_jaw_so101_v1_material" />
<geom name="moving_finger_pad" type="box" pos="-.0077 -.0676 .019" size=".0046 .0135 .008" rgba=".10 .11 .12 1" friction="1.5 .03 .003" condim="4" solref=".004 1" mass="0" /></body>
<geom name="fixed_finger_pad" type="box" pos="-.0125 -.0002 -.091" size=".0046 .008 .0135" rgba=".10 .11 .12 1" friction="1.5 .03 .003" condim="4" solref=".004 1" mass="0" /><site name="grasp_center" pos=".0041 -.0002 -.093" size=".003" rgba="1 0 1 1" group="4" /><geom name="vision_marker" type="sphere" pos=".0041 -.0002 -.078" size=".004" rgba="1 0 1 1" contype="0" conaffinity="0" mass="0" /></body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<asset>
<mesh file="waveshare_mounting_plate_so101_v2.stl" />
<mesh file="sts3215_03a_v1.stl" />
<mesh file="motor_holder_so101_base_v1.stl" />
<mesh file="wrist_roll_follower_so101_v1.stl" />
<mesh file="moving_jaw_so101_v1.stl" />
<mesh file="base_motor_holder_so101_v1.stl" />
<mesh file="upper_arm_so101_v1.stl" />
<mesh file="wrist_roll_pitch_so101_v2.stl" />
<mesh file="under_arm_so101_v1.stl" />
<mesh file="rotation_pitch_so101_v1.stl" />
<mesh file="motor_holder_so101_wrist_v1.stl" />
<mesh file="sts3215_03a_no_horn_v1.stl" />
<mesh file="base_so101_v2.stl" />
<material name="base_motor_holder_so101_v1_material" rgba="1 0.82 0.12 1" />
<material name="base_so101_v2_material" rgba="1 0.82 0.12 1" />
<material name="sts3215_03a_v1_material" rgba="0.1 0.1 0.1 1" />
<material name="waveshare_mounting_plate_so101_v2_material" rgba="1 0.82 0.12 1" />
<material name="motor_holder_so101_base_v1_material" rgba="1 0.82 0.12 1" />
<material name="rotation_pitch_so101_v1_material" rgba="1 0.82 0.12 1" />
<material name="upper_arm_so101_v1_material" rgba="1 0.82 0.12 1" />
<material name="under_arm_so101_v1_material" rgba="1 0.82 0.12 1" />
<material name="motor_holder_so101_wrist_v1_material" rgba="1 0.82 0.12 1" />
<material name="sts3215_03a_no_horn_v1_material" rgba="0.1 0.1 0.1 1.0" />
<material name="wrist_roll_pitch_so101_v2_material" rgba="1 0.82 0.12 1" />
<material name="wrist_roll_follower_so101_v1_material" rgba="1 0.82 0.12 1" />
<material name="moving_jaw_so101_v1_material" rgba="1 0.82 0.12 1" />
</asset>
<actuator>
<position class="sts3215" name="shoulder_pan" joint="shoulder_pan" forcerange="-3.35 3.35" ctrlrange="-1.91986 1.91986" />
<position class="sts3215" name="shoulder_lift" joint="shoulder_lift" forcerange="-3.35 3.35" ctrlrange="-1.74533 1.74533" />
<position class="sts3215" name="elbow_flex" joint="elbow_flex" forcerange="-3.35 3.35" ctrlrange="-1.69 1.69" />
<position class="sts3215" name="wrist_flex" joint="wrist_flex" forcerange="-3.35 3.35" ctrlrange="-1.65806 1.65806" />
<position class="sts3215" name="wrist_roll" joint="wrist_roll" forcerange="-3.35 3.35" ctrlrange="-2.74385 2.84121" />
<position class="sts3215" name="gripper" joint="gripper" forcerange="-.4 .4" ctrlrange="-0.17453 1.74533" />
</actuator>
<equality />
</mujoco>

Xet Storage Details

Size:
15 kB
·
Xet hash:
2469f7e79285b9144b56539d842ebd3859ca3b53c2f067e7e245450efbb8de95

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.