sophia_controller/public/robots/LittleSophia/urdf/LittleSophia.urdf

851 lines
29 KiB
XML

<robot name="robot">
<link name="base_footprint" />
<!-- <joint name="base_joint" type="fixed">
<parent link="base_footprint" />
<child link="base_link" />
<origin xyz="0 0 0.11" rpy="0 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> -->
<link name="base_link">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Torso_.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="base_link-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.1 0.05 0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial>
</link>
<joint name="base_link_to_upper_arm_right" type="revolute">
<parent link="base_link" />
<child link="upper_arm_right" />
<origin xyz="0.04 0 0.048" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="upper_arm_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_arm_right-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0.03" rpy="0 0 0" />
<geometry>
<box size="0.03 0.03 0.06" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 0.03" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial>
</link>
<!-- Left Upper Arm -->
<joint name="base_link_to_upper_arm_left" type="revolute">
<parent link="base_link" />
<child link="upper_arm_left" />
<origin xyz="-0.04 0 0.048" rpy="0 0 0" />
<axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="upper_arm_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_arm_left-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0.03" rpy="0 0 0" />
<geometry>
<box size="0.03 0.03 0.06" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 0.03" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial>
</link>
<joint name="base_link_to_hip_right" type="revolute">
<parent link="base_link" />
<child link="hip_right" />
<origin xyz="0.024 0.005 -0.023" rpy="0 0 0" />
<axis xyz="0 0 -1" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="hip_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<joint name="hip_right_to_upper_leg_right" type="revolute">
<parent link="hip_right" />
<child link="upper_leg_right" />
<origin xyz="0.009 0.0 -0.023" rpy="-0.5 0 0" />
<axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="upper_leg_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<!-- Upper leg to lower leg roll link (pivot at upper gear center) -->
<joint name="upper_leg_right_to_lower_leg_right_roll" type="revolute">
<parent link="upper_leg_right" />
<child link="lower_leg_right_roll_link" />
<origin xyz="0.0 0.007 -0.028" rpy="0 0 0" /> <!-- upper gear center -->
<axis xyz="-1 0 0" /> <!-- rolling axis -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="lower_leg_right_roll_link" />
<!-- Lower leg roll link to actual lower leg (pivot at lower gear center) -->
<joint name="lower_leg_roll_to_lower_leg_right" type="revolute">
<parent link="lower_leg_right_roll_link" />
<child link="lower_leg_right" />
<origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0" />
<axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
<mimic joint="upper_leg_right_to_lower_leg_right_roll" multiplier="1.1" offset="0" />
</joint>
<link name="lower_leg_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="lower_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<joint name="lower_leg_right_to_foot_right" type="revolute">
<parent link="lower_leg_right" />
<child link="foot_right" />
<origin xyz="0 0 -0.043" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="foot_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="foot_right-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<geometry>
<box size="0.04 0.08 0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<!-- Left Upper Leg -->
<joint name="base_link_to_hip_left" type="revolute">
<parent link="base_link" />
<child link="hip_left" />
<origin xyz="-0.024 0.005 -0.023" rpy="0 0 0" />
<axis xyz="0 0 -1" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="hip_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_leg_left-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<joint name="hip_left_to_upper_leg_left" type="revolute">
<parent link="hip_left" />
<child link="upper_leg_left" />
<origin xyz="-0.009 0.0 -0.023" rpy="-0.6 0 0" />
<axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="upper_leg_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="upper_leg_left-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<!-- Upper leg to lower leg roll link (pivot at upper gear center) -->
<joint name="upper_leg_left_to_lower_leg_left_roll" type="revolute">
<parent link="upper_leg_left" />
<child link="lower_leg_left_roll_link" />
<origin xyz="0.0 0.007 -0.028" rpy="0 0 0" /> <!-- upper gear center -->
<axis xyz="1 0 0" /> <!-- rolling axis -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="lower_leg_left_roll_link" />
<!-- Lower leg roll link to actual lower leg (pivot at lower gear center) -->
<joint name="lower_leg_roll_to_lower_leg_left" type="revolute">
<parent link="lower_leg_left_roll_link" />
<child link="lower_leg_left" />
<origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0" />
<axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
<mimic joint="upper_leg_left_to_lower_leg_left_roll" multiplier="1.1" offset="0" />
</joint>
<link name="lower_leg_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="lower_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry>
<box size="0.04 0.04 0.07" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<joint name="lower_leg_left_to_foot_left" type="revolute">
<parent link="lower_leg_left" />
<child link="foot_left" />
<origin xyz="0 0 -0.043" rpy="0 0 0" />
<axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="foot_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="foot_left-material">
<color rgba="0.0021 0.0497 0.4851 1" />
</material>
</visual>
<collision>
<origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<geometry>
<box size="0.04 0.08 0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial>
</link>
<!-- Spine to yaw joint -->
<joint name="base_link_to_neck_yaw" type="revolute">
<parent link="base_link" />
<child link="neck_yaw_link" />
<origin xyz="0 0 0.065" rpy="0 0 0" />
<axis xyz="0 0 1" /> <!-- yaw/pan around Z -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="neck_yaw_link" />
<!-- Pitch joint -->
<joint name="neck_pitch" type="revolute">
<parent link="neck_yaw_link" />
<child link="neck_pitch_link" />
<origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="-1 0 0" /> <!-- pitch around X -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<link name="neck_pitch_link" />
<!-- Roll joint -->
<joint name="neck_roll" type="revolute">
<parent link="neck_pitch_link" />
<child link="head" />
<origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="0 1 0" /> <!-- roll around Y -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint>
<!-- Head (includes fused neck geometry) -->
<link name="head">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Face.glb"
scale="0.001 0.001 0.001" />
</geometry>
<material name="head-material">
<color rgba="0.002 0.05 0.48 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.06 0.06 0.06" />
</geometry>
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="1" />
<inertia ixx="0.16" ixy="0" ixz="0" iyy="0.16" iyz="0" izz="0.16" />
</inertial>
</link>
<!-- Left eye joint -->
<joint name="eye_left_yaw" type="revolute">
<parent link="head" />
<child link="eye_left" />
<!-- Position the eye relative to the head -->
<origin xyz="-0.0198 0.024 0.065" rpy="0 0 0" />
<!-- yaw axis: adjust depending on your coordinate system -->
<axis xyz="0 0 1" />
<limit effort="10.0" lower="-1.0" upper="1.0" velocity="1.0" />
</joint>
<link name="eye_left">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Eye_Left.glb"
scale="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<sphere radius="0.01" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<inertia ixx="1e-5" iyy="1e-5" izz="1e-5" ixy="0" ixz="0" iyz="0" />
</inertial>
</link>
<!-- Right eye joint -->
<joint name="eye_right_yaw" type="revolute">
<parent link="head" />
<child link="eye_right" />
<origin xyz="0.0193 0.024 0.065" rpy="0 0 0" />
<axis xyz="0 0 1" />
<limit effort="10.0" lower="-1.0" upper="1.0" velocity="1.0" />
</joint>
<link name="eye_right">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Eye_Right.glb"
scale="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<sphere radius="0.01" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<inertia ixx="1e-5" iyy="1e-5" izz="1e-5" ixy="0" ixz="0" iyz="0" />
</inertial>
</link>
<joint name="eyelid_upper_pitch" type="revolute">
<parent link="head" />
<child link="eyelid_upper" />
<origin xyz="-0.0005 0.024 0.056" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit effort="10.0" lower="-1.0" upper="1.0" velocity="1.0" />
</joint>
<link name="eyelid_upper">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Eyelid_Upper.glb"
scale="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<sphere radius="0.01" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<inertia ixx="1e-5" iyy="1e-5" izz="1e-5" ixy="0" ixz="0" iyz="0" />
</inertial>
</link>
<joint name="eyelid_lower_pitch" type="revolute">
<parent link="head" />
<child link="eyelid_lower" />
<origin xyz="-0.0005 0.024 0.056" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit effort="10.0" lower="-1.0" upper="1.0" velocity="1.0" />
</joint>
<link name="eyelid_lower">
<visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Eyelid_Lower.glb"
scale="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<sphere radius="0.01" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<inertia ixx="1e-5" iyy="1e-5" izz="1e-5" ixy="0" ixz="0" iyz="0" />
</inertial>
</link>
<transmission name="upper_arm_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="base_link_to_upper_arm_left">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="upper_arm_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>23</motorID>
</actuator>
</transmission>
<transmission name="hand_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="lower_arm_left_to_hand_left">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="hand_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
</actuator>
</transmission>
<transmission name="upper_arm_right">
<type>transmission_interface/SimpleTransmission</type>
<joint name="base_link_to_upper_arm_right">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="upper_arm_right">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>25</motorID>
</actuator>
</transmission>
<transmission name="hip_right">
<type>transmission_interface/SimpleTransmission</type>
<joint name="base_link_to_hip_right">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="hip_right">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>34</motorID>
</actuator>
</transmission>
<transmission name="upper_leg_right">
<type>transmission_interface/SimpleTransmission</type>
<joint name="hip_right_to_upper_leg_right">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="upper_leg_right">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>33</motorID>
</actuator>
</transmission>
<transmission name="lower_leg_right">
<type>transmission_interface/SimpleTransmission</type>
<joint name="upper_leg_right_to_lower_leg_right_roll">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="lower_leg_right">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>32</motorID>
</actuator>
</transmission>
<transmission name="foot_right">
<type>transmission_interface/SimpleTransmission</type>
<joint name="lower_leg_right_to_foot_right">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="foot_right">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>30</motorID>
</actuator>
</transmission>
<transmission name="hip_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="base_link_to_hip_left">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="hip_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>39</motorID>
</actuator>
</transmission>
<transmission name="upper_leg_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="hip_left_to_upper_leg_left">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="upper_leg_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>38</motorID>
</actuator>
</transmission>
<transmission name="lower_leg_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="upper_leg_left_to_lower_leg_left_roll">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="lower_leg_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>37</motorID>
</actuator>
</transmission>
<transmission name="foot_left">
<type>transmission_interface/SimpleTransmission</type>
<joint name="lower_leg_left_to_foot_left">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="foot_left">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>35</motorID>
</actuator>
</transmission>
<!-- Yaw (pan) transmission -->
<transmission name="neck_yaw_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="base_link_to_neck_yaw">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="neck_yaw">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>27</motorID>
</actuator>
</transmission>
<!-- Pitch transmission -->
<transmission name="neck_pitch_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="neck_pitch">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="neck_pitch">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4096</encoderTicks>
<encoderValidMin>500</encoderValidMin>
<encoderValidMax>4095</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>41</motorID>
</actuator>
</transmission>
<!-- Roll transmission -->
<transmission name="neck_roll_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="neck_roll">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="neck_roll">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4095</encoderTicks>
<encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>42</motorID>
</actuator>
</transmission>
<transmission name="eye_left_yaw">
<type>transmission_interface/SimpleTransmission</type>
<joint name="eye_left_yaw">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="eye_left_yaw">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4095</encoderTicks>
<encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>99</motorID>
</actuator>
</transmission>
<transmission name="eye_right_yaw">
<type>transmission_interface/SimpleTransmission</type>
<joint name="eye_right_yaw">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="eye_right_yaw">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4095</encoderTicks>
<encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>98</motorID>
</actuator>
</transmission>
<transmission name="eyelid_upper_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="eyelid_upper_pitch">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="eyelid_upper_pitch">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4095</encoderTicks>
<encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>98</motorID>
</actuator>
</transmission>
<transmission name="eyelid_lower_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="eyelid_lower_pitch">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="eyelid_lower_pitch">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>PositionJointInterface</hardwareInterface>
<encoderTicks>4095</encoderTicks>
<encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange>
<motorID>98</motorID>
</actuator>
</transmission>
</robot>