CmvrControlStation/models/demo_arm.urdf

182 lines
6.6 KiB
Plaintext
Raw Permalink Normal View History

2026-09-18 16:22:20 +08:00
<?xml version="1.0"?>
<robot name="cmvr_demo_arm">
<material name="base_gray"><color rgba="0.27 0.31 0.36 1"/></material>
<material name="joint_dark"><color rgba="0.12 0.15 0.18 1"/></material>
<material name="arm_white"><color rgba="0.78 0.82 0.86 1"/></material>
<material name="accent"><color rgba="0.10 0.55 0.82 1"/></material>
<link name="base_link">
<visual>
<origin xyz="0 0 0.08" rpy="0 0 0"/>
<geometry><cylinder radius="0.24" length="0.16"/></geometry>
<material name="base_gray"/>
</visual>
</link>
<joint name="R_SHOULDER_P" type="revolute">
<parent link="base_link"/><child link="shoulder_pitch_link"/>
<origin xyz="0 -0.24 0.24" rpy="0 0 0"/><axis xyz="0 1 0"/>
<limit lower="-2.8" upper="2.8" effort="120" velocity="2"/>
</joint>
<link name="shoulder_pitch_link">
<visual><geometry><sphere radius="0.13"/></geometry><material name="joint_dark"/></visual>
</link>
<joint name="R_SHOULDER_R" type="revolute">
<parent link="shoulder_pitch_link"/><child link="shoulder_roll_link"/>
<origin xyz="0 0 0" rpy="0 0 0"/><axis xyz="1 0 0"/>
<limit lower="-2.8" upper="2.8" effort="120" velocity="2"/>
</joint>
<link name="shoulder_roll_link">
<visual>
<origin xyz="0 0 0.12" rpy="0 0 0"/>
<geometry><cylinder radius="0.10" length="0.24"/></geometry>
<material name="accent"/>
</visual>
</link>
<joint name="R_SHOULDER_Y" type="revolute">
<parent link="shoulder_roll_link"/><child link="upper_arm_link"/>
<origin xyz="0 0 0.24" rpy="0 0 0"/><axis xyz="0 0 1"/>
<limit lower="-2.8" upper="2.8" effort="100" velocity="2"/>
</joint>
<link name="upper_arm_link">
<visual>
<origin xyz="0 0 0.25" rpy="0 0 0"/>
<geometry><box size="0.14 0.16 0.50"/></geometry>
<material name="arm_white"/>
</visual>
</link>
<joint name="R_ELBOW_R" type="revolute">
<parent link="upper_arm_link"/><child link="forearm_link"/>
<origin xyz="0 0 0.52" rpy="0 0 0"/><axis xyz="1 0 0"/>
<limit lower="-2.6" upper="2.6" effort="80" velocity="2.5"/>
</joint>
<link name="forearm_link">
<visual><geometry><sphere radius="0.12"/></geometry><material name="joint_dark"/></visual>
<visual>
<origin xyz="0 0 0.22" rpy="0 0 0"/>
<geometry><box size="0.12 0.14 0.44"/></geometry>
<material name="arm_white"/>
</visual>
</link>
<joint name="R_WRIST_P" type="revolute">
<parent link="forearm_link"/><child link="wrist_pitch_link"/>
<origin xyz="0 0 0.46" rpy="0 0 0"/><axis xyz="0 1 0"/>
<limit lower="-2.8" upper="2.8" effort="35" velocity="3"/>
</joint>
<link name="wrist_pitch_link">
<visual><geometry><sphere radius="0.09"/></geometry><material name="accent"/></visual>
</link>
<joint name="R_WRIST_Y" type="revolute">
<parent link="wrist_pitch_link"/><child link="wrist_yaw_link"/>
<origin xyz="0 0 0.10" rpy="0 0 0"/><axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="25" velocity="3"/>
</joint>
<link name="wrist_yaw_link">
<visual>
<origin xyz="0 0 0.07" rpy="0 0 0"/>
<geometry><cylinder radius="0.075" length="0.14"/></geometry>
<material name="joint_dark"/>
</visual>
</link>
<joint name="R_WRIST_R" type="continuous">
<parent link="wrist_yaw_link"/><child link="R_FINGER_TIP"/>
<origin xyz="0 0 0.14" rpy="0 0 0"/><axis xyz="1 0 0"/>
</joint>
<link name="R_FINGER_TIP">
<visual>
<origin xyz="0 0 0.06" rpy="0 0 0"/>
<geometry><box size="0.18 0.08 0.12"/></geometry>
<material name="accent"/>
</visual>
</link>
<joint name="L_SHOULDER_P" type="revolute">
<parent link="base_link"/><child link="l_shoulder_pitch_link"/>
<origin xyz="0 0.24 0.24" rpy="0 0 0"/><axis xyz="0 1 0"/>
<limit lower="-2.8" upper="2.8" effort="120" velocity="2"/>
</joint>
<link name="l_shoulder_pitch_link">
<visual><geometry><sphere radius="0.13"/></geometry><material name="joint_dark"/></visual>
</link>
<joint name="L_SHOULDER_R" type="revolute">
<parent link="l_shoulder_pitch_link"/><child link="l_shoulder_roll_link"/>
<origin xyz="0 0 0" rpy="0 0 0"/><axis xyz="1 0 0"/>
<limit lower="-2.8" upper="2.8" effort="120" velocity="2"/>
</joint>
<link name="l_shoulder_roll_link">
<visual>
<origin xyz="0 0 0.12" rpy="0 0 0"/>
<geometry><cylinder radius="0.10" length="0.24"/></geometry>
<material name="accent"/>
</visual>
</link>
<joint name="L_SHOULDER_Y" type="revolute">
<parent link="l_shoulder_roll_link"/><child link="l_upper_arm_link"/>
<origin xyz="0 0 0.24" rpy="0 0 0"/><axis xyz="0 0 1"/>
<limit lower="-2.8" upper="2.8" effort="100" velocity="2"/>
</joint>
<link name="l_upper_arm_link">
<visual>
<origin xyz="0 0 0.25" rpy="0 0 0"/>
<geometry><box size="0.14 0.16 0.50"/></geometry>
<material name="arm_white"/>
</visual>
</link>
<joint name="L_ELBOW_R" type="revolute">
<parent link="l_upper_arm_link"/><child link="l_forearm_link"/>
<origin xyz="0 0 0.52" rpy="0 0 0"/><axis xyz="1 0 0"/>
<limit lower="-2.6" upper="2.6" effort="80" velocity="2.5"/>
</joint>
<link name="l_forearm_link">
<visual><geometry><sphere radius="0.12"/></geometry><material name="joint_dark"/></visual>
<visual>
<origin xyz="0 0 0.22" rpy="0 0 0"/>
<geometry><box size="0.12 0.14 0.44"/></geometry>
<material name="arm_white"/>
</visual>
</link>
<joint name="L_WRIST_P" type="revolute">
<parent link="l_forearm_link"/><child link="l_wrist_pitch_link"/>
<origin xyz="0 0 0.46" rpy="0 0 0"/><axis xyz="0 1 0"/>
<limit lower="-2.8" upper="2.8" effort="35" velocity="3"/>
</joint>
<link name="l_wrist_pitch_link">
<visual><geometry><sphere radius="0.09"/></geometry><material name="accent"/></visual>
</link>
<joint name="L_WRIST_Y" type="revolute">
<parent link="l_wrist_pitch_link"/><child link="l_wrist_yaw_link"/>
<origin xyz="0 0 0.10" rpy="0 0 0"/><axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="25" velocity="3"/>
</joint>
<link name="l_wrist_yaw_link">
<visual>
<origin xyz="0 0 0.07" rpy="0 0 0"/>
<geometry><cylinder radius="0.075" length="0.14"/></geometry>
<material name="joint_dark"/>
</visual>
</link>
<joint name="L_WRIST_R" type="continuous">
<parent link="l_wrist_yaw_link"/><child link="L_FINGER_TIP"/>
<origin xyz="0 0 0.14" rpy="0 0 0"/><axis xyz="1 0 0"/>
</joint>
<link name="L_FINGER_TIP">
<visual>
<origin xyz="0 0 0.06" rpy="0 0 0"/>
<geometry><box size="0.18 0.08 0.12"/></geometry>
<material name="accent"/>
</visual>
</link>
</robot>