ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
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>
2 | No.2 Revision |
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>
3 | No.3 Revision |
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>
4 | No.4 Revision |
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>
5 | No.5 Revision |
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>
6 | No.6 Revision |
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>