<?xml version='1.0' encoding='utf-8'?>
<robot name="piper">
  <link name="dummy_link" />
  <joint name="base_to_dummy" type="fixed">
    <parent link="dummy_link" />
    <child link="base_link" />
    <origin xyz="0 0 0" rpy="0 0 0" />
  </joint>

  <link name="base_link">
    <inertial>
      <origin xyz="-0.00473641164191482 2.56829134630247E-05 0.041451518036016" rpy="0 0 0" />
      <mass value="1.02" />
      <inertia ixx="0.00267433" ixy="-0.00000073" ixz="-0.00017389" iyy="0.00282612" iyz="0.0000004" izz="0.00089624" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/base_link.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>
  
  <link name="link1">
    <inertial>
      <origin xyz="0.000121504734057468 0.000104632162460536 -0.00438597309559853" rpy="0 0 0" />
      <mass value="0.71" />
      <inertia ixx="0.00048916" ixy="-0.00000036" ixz="-0.00000224" iyy="0.00040472" iyz="-0.00000242" izz="0.00043982" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/link1.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link1.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint1" type="revolute">
    <origin xyz="0 0 0.123" rpy="0 0 -1.5708" />
    <parent link="base_link" />
    <child link="link1" />
    <axis xyz="0 0 1" />
    <limit lower="-2.618" upper="2.618" effort="100" velocity="5" />
  </joint>
  <link name="link2">
    <inertial>
      <origin xyz="0.198666145229743 -0.010926924140076 0.00142121714502687" rpy="0 0 0" />
      <mass value="1.17" />
      <inertia ixx="0.00116918" ixy="-0.00180037" ixz="0.00025146" iyy="0.06785384" iyz="-0.00000455" izz="0.06774489" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/link2.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link2.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint2" type="revolute">
    <origin xyz="0 0 0" rpy="1.5708 -0.034907 -1.5708" />
      
    <parent link="link1" />
    <child link="link2" />
    <axis xyz="0 0 1" />
    <limit lower="0" upper="3.14" effort="100" velocity="5" />
  </joint>
  <link name="link3">
    <inertial>
      <origin xyz="-0.0202737662122021 -0.133914995944595 -0.000458682652737356" rpy="0 0 0" />
      <mass value="0.5" />
      <inertia ixx="0.01361711" ixy="0.00165794" ixz="-0.00000048" iyy="0.00045024" iyz="-0.00000045" izz="0.01380322" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/link3.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link3.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint3" type="revolute">
    <origin xyz="0.28358 0.028726 0" rpy="0 0 0.06604341" />
      
    <parent link="link2" />
    <child link="link3" />
    <axis xyz="0 0 1" />
    <limit lower="-2.967" upper="0" effort="100" velocity="5" />
  </joint>
  <link name="link4">
    <inertial>
      <origin xyz="-9.66635791618542E-05 0.000876064475651083 -0.00496880904640868" rpy="0 0 0" />
      <mass value="0.38" />
      <inertia ixx="0.00018501" ixy="0.00000054" ixz="0.00000120" iyy="0.00018965" iyz="-0.00000841" izz="0.00015484" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/link4.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link4.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint4" type="revolute">
    <origin xyz="-0.24221 0.068514 0" rpy="-1.5708 0 1.3826" />
    <parent link="link3" />
    <child link="link4" />
    <axis xyz="0 0 1" />
    <limit lower="-1.745" upper="1.745" effort="100" velocity="5" />
  </joint>
  <link name="link5">
    <inertial>
      <origin xyz="-4.10554118924211E-05 -0.0566486692356075 -0.0037205791677906" rpy="0 0 0" />
      <mass value="0.383" />
      <inertia ixx="0.00166169" ixy="0.00000006" ixz="-0.00000007" iyy="0.00018510" iyz="0.00001026" izz="0.00164321" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/dae/link5.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link5.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint5" type="revolute">
    <origin xyz="0 0 0" rpy="1.5708 0 0" />
    <parent link="link4" />
    <child link="link5" />
    <axis xyz="0 0 1" />
    <limit lower="-1.22" upper="1.22" effort="100" velocity="5" />
  </joint>
  <link name="link6">
    <inertial>
      <origin xyz="-8.82590762930069E-05 9.0598378529832E-06 -0.002" rpy="0 0 0" />
      <mass value="0.007" />
      <inertia ixx="5.73015540542155E-07" ixy="-1.98305403089247E-22" ixz="-7.2791893904596E-23" iyy="5.73015540542155E-07" iyz="-3.4146026640245E-24" izz="1.06738869138926E-06" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 1.5708" />
      <geometry>
        <mesh filename="meshes/link6.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link6.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint6" type="revolute">
    <origin xyz="0 0.091 0.0014165" rpy="-1.5708 -3.1415926 0" />
    <parent link="link5" />
    <child link="link6" />
    <axis xyz="0 0 1" />
    <!-- BBHD source/Piper SDK IK 使用 wrist roll ±pi；CuRobo 规划资产必须与源 action 关节语义一致。 -->
    <limit lower="-3.14" upper="3.14" effort="100" velocity="3" />
  </joint>
  <link name="link7">
    <inertial>
      <origin xyz="0.00065123185041968 -0.0491929869131989 0.00972258769184025" rpy="0 0 0" />
      <mass value="0.025" />
      <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link7.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link7.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint7" type="prismatic">
    <origin xyz="0 0 0.13503" rpy="1.5708 0 3.1415926" />
    <parent link="link6" />
    <child link="link7" />
    <axis xyz="0 0 -1" />
    <limit lower="0" upper="0.04" effort="10" velocity="1" />
  </joint>
  <link name="link8">
    <inertial>
      <origin xyz="0.000651231850419722 -0.0491929869131991 0.00972258769184024" rpy="0 0 0" />
      <mass value="0.025" />
      <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link8.dae" />
      </geometry>
      <material name="black">
        <color rgba="0.1 0.1 0.1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="meshes/link8.STL" />
      </geometry>
    </collision>
  </link>
  <joint name="joint8" type="prismatic">
    <origin xyz="0 0 0.13503" rpy="-1.5708 0 3.1415926" />
    <parent link="link6" />
    <child link="link8" />
    <axis xyz="0 0 1" />
    <limit lower="-0.04" upper="0" effort="10" velocity="1" />
  </joint>
</robot>