ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>

Hi @aarsh_t, I took this example from NAO URDF description as an example of a shoulder with 2 revolute joints for one possible solution: https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

Notice there are 2 joints of type revolute: RShoulderPitch and RShoulderRoll for the right shoulder.

  • RShoulderPitch joint with parent torso and child RShoulder

  • RShoulderRoll joint with parent RShoulder and child RBicep

    <joint name="RShoulderPitch" type="revolute"> <parent link="torso"/> <child link="RShoulder"/> <origin rpy="0 0 0" xyz="0 -0.098 0.1"/> <axis xyz="0 1.0 0"/> <limit effort="1.329" lower="-2.08567" upper="2.08567" velocity="8.26797"/> </joint> <link name="RShoulder"> <inertial> <mass value="0.09304"/> <inertia ixx="1.83025e-05" ixy="-2.06011e-06" ixz="1.88776e-09" iyy="1.39005e-05" iyz="3.66592e-07" izz="2.01862e-05"/> <origin rpy="0 0 0" xyz="-0.00165 0.02663 0.00014"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderPitch_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link> <joint name="RShoulderRoll" type="revolute"> <parent link="RShoulder"/> <child link="RBicep"/> <origin rpy="0 0 0" xyz="0 0 0"/> <axis xyz="0 0 1.0"/> <limit effort="1.783" lower="-1.32645" upper="0.314159" velocity="7.19407"/> </joint> <link name="RBicep"> <inertial> <mass value="0.15777"/> <inertia ixx="0.000103401" ixy="5.48849e-05" ixz="-1.32643e-05" iyy="0.00027077" iyz="9.16707e-06" izz="0.000254529"/> <origin rpy="0 0 0" xyz="0.02455 -0.00563 0.0033"/> </inertial> <visual> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll.dae" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://nao_meshes/meshes/V40/RShoulderRoll_0.10.stl" scale="0.1 0.1 0.1"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> </collision> </link>