added eyes and eyelids to main urdf file

master
Jake Wilkinson 2025-11-25 16:37:24 +08:00
parent a6d901d3f0
commit 0905db8d77
8 changed files with 400 additions and 193 deletions

View File

@ -1,5 +1,5 @@
<robot name="robot"> <robot name="robot">
<link name="base_footprint"/> <link name="base_footprint" />
<!-- <joint name="base_joint" type="fixed"> <!-- <joint name="base_joint" type="fixed">
<parent link="base_footprint" /> <parent link="base_footprint" />
<child link="base_link" /> <child link="base_link" />
@ -8,420 +8,551 @@
</joint> --> </joint> -->
<link name="base_link"> <link name="base_link">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Torso_.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Torso_.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="base_link-material"> <material name="base_link-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1"/> <color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.1 0.05 0.05"/> <box size="0.1 0.05 0.05" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666"/> <inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial> </inertial>
</link> </link>
<joint name="base_link_to_upper_arm_right" type="revolute"> <joint name="base_link_to_upper_arm_right" type="revolute">
<parent link="base_link"/> <parent link="base_link" />
<child link="upper_arm_right"/> <child link="upper_arm_right" />
<origin xyz="0.04 0 0.048" rpy="0 0 0"/> <origin xyz="0.04 0 0.048" rpy="0 0 0" />
<axis xyz="1 0 0"/> <axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="upper_arm_right"> <link name="upper_arm_right">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Right.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Right.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_arm_right-material"> <material name="upper_arm_right-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1"/> <color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 0.03" rpy="0 0 0"/> <origin xyz="0 0 0.03" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.03 0.03 0.06"/> <box size="0.03 0.03 0.06" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 0.03" rpy="0 0 0"/> <origin xyz="0 0 0.03" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666"/> <inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial> </inertial>
</link> </link>
<!-- Left Upper Arm --> <!-- Left Upper Arm -->
<joint name="base_link_to_upper_arm_left" type="revolute"> <joint name="base_link_to_upper_arm_left" type="revolute">
<parent link="base_link"/> <parent link="base_link" />
<child link="upper_arm_left"/> <child link="upper_arm_left" />
<origin xyz="-0.04 0 0.048" rpy="0 0 0"/> <origin xyz="-0.04 0 0.048" rpy="0 0 0" />
<axis xyz="-1 0 0"/> <axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="upper_arm_left"> <link name="upper_arm_left">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Left.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Arm_Left.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_arm_left-material"> <material name="upper_arm_left-material">
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1"/> <color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 0.03" rpy="0 0 0"/> <origin xyz="0 0 0.03" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.03 0.03 0.06"/> <box size="0.03 0.03 0.06" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 0.03" rpy="0 0 0"/> <origin xyz="0 0 0.03" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666"/> <inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0"
izz="0.16666666666666666" />
</inertial> </inertial>
</link> </link>
<joint name="base_link_to_hip_right" type="revolute"> <joint name="base_link_to_hip_right" type="revolute">
<parent link="base_link"/> <parent link="base_link" />
<child link="hip_right"/> <child link="hip_right" />
<origin xyz="0.024 0.005 -0.023" rpy="0 0 0"/> <origin xyz="0.024 0.005 -0.023" rpy="0 0 0" />
<axis xyz="0 0 -1"/> <axis xyz="0 0 -1" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="hip_right"> <link name="hip_right">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Right.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Right.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_leg_right-material"> <material name="upper_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<joint name="hip_right_to_upper_leg_right" type="revolute"> <joint name="hip_right_to_upper_leg_right" type="revolute">
<parent link="hip_right"/> <parent link="hip_right" />
<child link="upper_leg_right"/> <child link="upper_leg_right" />
<origin xyz="0.009 0.0 -0.023" rpy="-0.5 0 0"/> <origin xyz="0.009 0.0 -0.023" rpy="-0.5 0 0" />
<axis xyz="-1 0 0"/> <axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="upper_leg_right"> <link name="upper_leg_right">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Right.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Right.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_leg_right-material"> <material name="upper_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<!-- Upper leg to lower leg roll link (pivot at upper gear center) --> <!-- Upper leg to lower leg roll link (pivot at upper gear center) -->
<joint name="upper_leg_right_to_lower_leg_right_roll" type="revolute"> <joint name="upper_leg_right_to_lower_leg_right_roll" type="revolute">
<parent link="upper_leg_right"/> <parent link="upper_leg_right" />
<child link="lower_leg_right_roll_link"/> <child link="lower_leg_right_roll_link" />
<origin xyz="0.0 0.007 -0.028" rpy="0 0 0"/> <!-- upper gear center --> <origin xyz="0.0 0.007 -0.028" rpy="0 0 0" /> <!-- upper gear center -->
<axis xyz="-1 0 0"/> <!-- rolling axis --> <axis xyz="-1 0 0" /> <!-- rolling axis -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="lower_leg_right_roll_link"/> <link name="lower_leg_right_roll_link" />
<!-- Lower leg roll link to actual lower leg (pivot at lower gear center) --> <!-- Lower leg roll link to actual lower leg (pivot at lower gear center) -->
<joint name="lower_leg_roll_to_lower_leg_right" type="revolute"> <joint name="lower_leg_roll_to_lower_leg_right" type="revolute">
<parent link="lower_leg_right_roll_link"/> <parent link="lower_leg_right_roll_link" />
<child link="lower_leg_right"/> <child link="lower_leg_right" />
<origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0"/> <origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0" />
<axis xyz="-1 0 0"/> <axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <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"/> <mimic joint="upper_leg_right_to_lower_leg_right_roll" multiplier="1.1" offset="0" />
</joint> </joint>
<link name="lower_leg_right"> <link name="lower_leg_right">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Right.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Right.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="lower_leg_right-material"> <material name="lower_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<joint name="lower_leg_right_to_foot_right" type="revolute"> <joint name="lower_leg_right_to_foot_right" type="revolute">
<parent link="lower_leg_right"/> <parent link="lower_leg_right" />
<child link="foot_right"/> <child link="foot_right" />
<origin xyz="0 0 -0.043" rpy="0 0 0"/> <origin xyz="0 0 -0.043" rpy="0 0 0" />
<axis xyz="1 0 0"/> <axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="foot_right"> <link name="foot_right">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Right.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Right.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="foot_right-material"> <material name="foot_right-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0.02 -0.01" rpy="0 0 0"/> <origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.08 0.02"/> <box size="0.04 0.08 0.02" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0.02 -0.01" rpy="0 0 0"/> <origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<!-- Left Upper Leg --> <!-- Left Upper Leg -->
<joint name="base_link_to_hip_left" type="revolute"> <joint name="base_link_to_hip_left" type="revolute">
<parent link="base_link"/> <parent link="base_link" />
<child link="hip_left"/> <child link="hip_left" />
<origin xyz="-0.024 0.005 -0.023" rpy="0 0 0"/> <origin xyz="-0.024 0.005 -0.023" rpy="0 0 0" />
<axis xyz="0 0 -1"/> <axis xyz="0 0 -1" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="hip_left"> <link name="hip_left">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Left.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Hip_Left.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_leg_left-material"> <material name="upper_leg_left-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<joint name="hip_left_to_upper_leg_left" type="revolute"> <joint name="hip_left_to_upper_leg_left" type="revolute">
<parent link="hip_left"/> <parent link="hip_left" />
<child link="upper_leg_left"/> <child link="upper_leg_left" />
<origin xyz="-0.009 0.0 -0.023" rpy="-0.6 0 0"/> <origin xyz="-0.009 0.0 -0.023" rpy="-0.6 0 0" />
<axis xyz="1 0 0"/> <axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="upper_leg_left"> <link name="upper_leg_left">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Left.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Upper_Leg_Left.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="upper_leg_left-material"> <material name="upper_leg_left-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<!-- Upper leg to lower leg roll link (pivot at upper gear center) --> <!-- Upper leg to lower leg roll link (pivot at upper gear center) -->
<joint name="upper_leg_left_to_lower_leg_left_roll" type="revolute"> <joint name="upper_leg_left_to_lower_leg_left_roll" type="revolute">
<parent link="upper_leg_left"/> <parent link="upper_leg_left" />
<child link="lower_leg_left_roll_link"/> <child link="lower_leg_left_roll_link" />
<origin xyz="0.0 0.007 -0.028" rpy="0 0 0"/> <!-- upper gear center --> <origin xyz="0.0 0.007 -0.028" rpy="0 0 0" /> <!-- upper gear center -->
<axis xyz="1 0 0"/> <!-- rolling axis --> <axis xyz="1 0 0" /> <!-- rolling axis -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="lower_leg_left_roll_link"/> <link name="lower_leg_left_roll_link" />
<!-- Lower leg roll link to actual lower leg (pivot at lower gear center) --> <!-- Lower leg roll link to actual lower leg (pivot at lower gear center) -->
<joint name="lower_leg_roll_to_lower_leg_left" type="revolute"> <joint name="lower_leg_roll_to_lower_leg_left" type="revolute">
<parent link="lower_leg_left_roll_link"/> <parent link="lower_leg_left_roll_link" />
<child link="lower_leg_left"/> <child link="lower_leg_left" />
<origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0"/> <origin xyz="-0.001 -0.0025 -0.029" rpy="-0.35 0 0" />
<axis xyz="1 0 0"/> <axis xyz="1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <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"/> <mimic joint="upper_leg_left_to_lower_leg_left_roll" multiplier="1.1" offset="0" />
</joint> </joint>
<link name="lower_leg_left"> <link name="lower_leg_left">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Left.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Lower_Leg_Left.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="lower_leg_right-material"> <material name="lower_leg_right-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.04 0.07"/> <box size="0.04 0.04 0.07" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 -0.035" rpy="0 0 0"/> <origin xyz="0 0 -0.035" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<joint name="lower_leg_left_to_foot_left" type="revolute"> <joint name="lower_leg_left_to_foot_left" type="revolute">
<parent link="lower_leg_left"/> <parent link="lower_leg_left" />
<child link="foot_left"/> <child link="foot_left" />
<origin xyz="0 0 -0.043" rpy="0 0 0"/> <origin xyz="0 0 -0.043" rpy="0 0 0" />
<axis xyz="-1 0 0"/> <axis xyz="-1 0 0" />
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="foot_left"> <link name="foot_left">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Left.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Foot_Left.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="foot_left-material"> <material name="foot_left-material">
<color rgba="0.0021 0.0497 0.4851 1"/> <color rgba="0.0021 0.0497 0.4851 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0.02 -0.01" rpy="0 0 0"/> <origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.04 0.08 0.02"/> <box size="0.04 0.08 0.02" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0.02 -0.01" rpy="0 0 0"/> <origin xyz="0 0.02 -0.01" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667"/> <inertia ixx="0.1667" ixy="0" ixz="0" iyy="0.1667" iyz="0" izz="0.1667" />
</inertial> </inertial>
</link> </link>
<!-- Spine to yaw joint --> <!-- Spine to yaw joint -->
<joint name="base_link_to_neck_yaw" type="revolute"> <joint name="base_link_to_neck_yaw" type="revolute">
<parent link="base_link"/> <parent link="base_link" />
<child link="neck_yaw_link"/> <child link="neck_yaw_link" />
<origin xyz="0 0 0.065" rpy="0 0 0"/> <origin xyz="0 0 0.065" rpy="0 0 0" />
<axis xyz="0 0 1"/> <!-- yaw/pan around Z --> <axis xyz="0 0 1" /> <!-- yaw/pan around Z -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="neck_yaw_link"/> <link name="neck_yaw_link" />
<!-- Pitch joint --> <!-- Pitch joint -->
<joint name="neck_pitch" type="revolute"> <joint name="neck_pitch" type="revolute">
<parent link="neck_yaw_link"/> <parent link="neck_yaw_link" />
<child link="neck_pitch_link"/> <child link="neck_pitch_link" />
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="-1 0 0"/> <!-- pitch around X --> <axis xyz="-1 0 0" /> <!-- pitch around X -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<link name="neck_pitch_link"/> <link name="neck_pitch_link" />
<!-- Roll joint --> <!-- Roll joint -->
<joint name="neck_roll" type="revolute"> <joint name="neck_roll" type="revolute">
<parent link="neck_pitch_link"/> <parent link="neck_pitch_link" />
<child link="head"/> <child link="head" />
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="0 1 0"/> <!-- roll around Y --> <axis xyz="0 1 0" /> <!-- roll around Y -->
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5"/> <limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
</joint> </joint>
<!-- Head (includes fused neck geometry) --> <!-- Head (includes fused neck geometry) -->
<link name="head"> <link name="head">
<visual> <visual>
<origin xyz="0 0 0" rpy="-1.5745 3.149 0"/> <origin xyz="0 0 0" rpy="-1.5745 3.149 0" />
<geometry> <geometry>
<mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Face.glb" scale="0.001 0.001 0.001"/> <mesh filename="package://Little_Sophia_Face/meshes/Little_Sophia_Face.glb"
scale="0.001 0.001 0.001" />
</geometry> </geometry>
<material name="head-material"> <material name="head-material">
<color rgba="0.002 0.05 0.48 1"/> <color rgba="0.002 0.05 0.48 1" />
</material> </material>
</visual> </visual>
<collision> <collision>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<geometry> <geometry>
<box size="0.06 0.06 0.06"/> <box size="0.06 0.06 0.06" />
</geometry> </geometry>
</collision> </collision>
<inertial> <inertial>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="0 0 0" rpy="0 0 0" />
<mass value="1"/> <mass value="1" />
<inertia ixx="0.16" ixy="0" ixz="0" iyy="0.16" iyz="0" izz="0.16"/> <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> </inertial>
</link> </link>
@ -438,7 +569,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>23</motorID></actuator> <motorID>23</motorID>
</actuator>
</transmission> </transmission>
<transmission name="hand_left"> <transmission name="hand_left">
<type>transmission_interface/SimpleTransmission</type> <type>transmission_interface/SimpleTransmission</type>
@ -467,7 +599,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>25</motorID></actuator> <motorID>25</motorID>
</actuator>
</transmission> </transmission>
@ -483,7 +616,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>34</motorID></actuator> <motorID>34</motorID>
</actuator>
</transmission> </transmission>
<transmission name="upper_leg_right"> <transmission name="upper_leg_right">
@ -498,7 +632,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>33</motorID></actuator> <motorID>33</motorID>
</actuator>
</transmission> </transmission>
<transmission name="lower_leg_right"> <transmission name="lower_leg_right">
@ -513,7 +648,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>32</motorID></actuator> <motorID>32</motorID>
</actuator>
</transmission> </transmission>
<transmission name="foot_right"> <transmission name="foot_right">
@ -528,7 +664,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>30</motorID></actuator> <motorID>30</motorID>
</actuator>
</transmission> </transmission>
<transmission name="hip_left"> <transmission name="hip_left">
@ -543,7 +680,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>39</motorID></actuator> <motorID>39</motorID>
</actuator>
</transmission> </transmission>
<transmission name="upper_leg_left"> <transmission name="upper_leg_left">
@ -558,7 +696,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>38</motorID></actuator> <motorID>38</motorID>
</actuator>
</transmission> </transmission>
<transmission name="lower_leg_left"> <transmission name="lower_leg_left">
@ -573,10 +712,11 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>37</motorID></actuator> <motorID>37</motorID>
</actuator>
</transmission> </transmission>
<transmission name="foot_left"> <transmission name="foot_left">
<type>transmission_interface/SimpleTransmission</type> <type>transmission_interface/SimpleTransmission</type>
<joint name="lower_leg_left_to_foot_left"> <joint name="lower_leg_left_to_foot_left">
@ -589,7 +729,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>35</motorID></actuator> <motorID>35</motorID>
</actuator>
</transmission> </transmission>
<!-- Yaw (pan) transmission --> <!-- Yaw (pan) transmission -->
@ -605,7 +746,8 @@
<encoderValidMin>200</encoderValidMin> <encoderValidMin>200</encoderValidMin>
<encoderValidMax>3500</encoderValidMax> <encoderValidMax>3500</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>27</motorID></actuator> <motorID>27</motorID>
</actuator>
</transmission> </transmission>
<!-- Pitch transmission --> <!-- Pitch transmission -->
@ -621,7 +763,8 @@
<encoderValidMin>500</encoderValidMin> <encoderValidMin>500</encoderValidMin>
<encoderValidMax>4095</encoderValidMax> <encoderValidMax>4095</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>41</motorID></actuator> <motorID>41</motorID>
</actuator>
</transmission> </transmission>
<!-- Roll transmission --> <!-- Roll transmission -->
@ -637,8 +780,72 @@
<encoderValidMin>100</encoderValidMin> <encoderValidMin>100</encoderValidMin>
<encoderValidMax>3900</encoderValidMax> <encoderValidMax>3900</encoderValidMax>
<encoderRange>300</encoderRange> <encoderRange>300</encoderRange>
<motorID>42</motorID></actuator> <motorID>42</motorID>
</actuator>
</transmission> </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> </robot>

View File

@ -74,7 +74,7 @@ export class URDFEditor {
this.setupScene(); this.setupScene();
//this.loadURDF(); this.loadURDF();
//this.loadURDFFromIndexedDB(); //this.loadURDFFromIndexedDB();
this.setupEvents(); this.setupEvents();