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

Where are the screw joints in Indigo?

asked 2015-03-11 19:05:35 -0500

hal9000 gravatar image

updated 2015-03-12 02:52:36 -0500

gvdhoorn gravatar image

Hi,

I'm trying to use screw joints in indigo, but i'm getting an error saying that 'screw' is an unknown joint type.

Thanks

edit retag flag offensive close merge delete

Comments

Looking for something like this in gazebo/ros:

https://www.youtube.com/watch?v=FUz-v...

hal9000 gravatar image hal9000  ( 2015-03-11 22:47:31 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2015-03-12 02:40:14 -0500

gvdhoorn gravatar image

updated 2015-03-12 02:42:04 -0500

The joint types supported by URDF are (from wiki/urdf/XML/joint - Attributes):

  • revolute
  • continuous
  • prismatic
  • fixed
  • floating
  • planar

It would appear that SDF (Gazebo's modelling format) does support them (and they are used in ROS (see this answer by John Hsu for example), but this has not been mirrored in / ported to URDF.

edit flag offensive delete link more

Comments

Thanks! So is there any way to connect to a gazebo screw joint? Either with some <gazebo> </gazebo> tags or some plugin?

hal9000 gravatar image hal9000  ( 2015-03-12 15:36:57 -0500 )edit

Seems torso.gazebo.urdf uses screw type joints. It places them inside gazebo tags, so that would probably work.

gvdhoorn gravatar image gvdhoorn  ( 2015-03-12 15:46:44 -0500 )edit
0

answered 2020-03-29 10:09:33 -0500

Riss69 gravatar image

updated 2020-03-30 12:39:25 -0500

<robot name="pr2"> <link name="base_link"> <inertial> <mass value="116.0"/> <origin xyz="-0.061 0.0 0.1465"/> <inertia ixx="5.652232699207" ixy="-0.009719934438" ixz="1.293988226423" iyy="5.669473158652" iyz="-0.007379583694" izz="3.683196351726"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> <geometry> <mesh filename="package://pr2_description/meshes/base_v0/base.dae"/> </geometry> </visual> <collision> <origin rpy="0 0 0" xyz="0 0 0"/> <geometry> <mesh filename="package://pr2_description/meshes/base_v0/base_L.stl"/> </geometry> </collision> </link> <joint name="torso_lift_joint" type="prismatic"> <axis xyz="0 0 1"/> <limit effort="10000" lower="0.0" upper="0.33" velocity="0.013"/> <safety_controller k_position="100" k_velocity="2000000" soft_lower_limit="0.0115" soft_upper_limit="0.325"/> <calibration falling="0.00475"/> <dynamics damping="20000.0"/> <origin rpy="0 0 0" xyz="-0.05 0 0.739675"/> <parent link="base_link"/> <child link="torso_lift_link"/> </joint>

 <link name="torso_lift_link">
<inertial>
  <mass value="36.248046"/>
  <origin xyz="-0.1 0 -0.0885"/>
  <inertia ixx="2.771653750257" ixy="0.004284522609" ixz="-0.160418504506" iyy="2.510019507959" iyz="0.029664468704" izz="0.526432355569"/>
</inertial>
<visual>
  <origin rpy="0 0 0" xyz="0 0 0"/>
  <geometry>
    <mesh filename="package://pr2_description/meshes/torso_v0/torso_lift.dae"/>
  </geometry>
 </visual>
<collision name="torso_lift_collision">
  <origin rpy="0 0 0" xyz="0 0 0"/>
  <geometry>
    <mesh filename="package://pr2_description/meshes/torso_v0/torso_lift_L.stl"/>
  </geometry>
</collision>
</link>

  <!-- actuated motor screw joint -->
<link name="torso_lift_motor_screw_link">
  <inertial>
    <mass value="1.0"/>
    <origin rpy="0 0 0" xyz="0 0 0"/>
    <inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
  </inertial>
 <visual>
    <origin xyz="0 0 0" rpy="0 0 0" />
    <geometry>
      <box size="0.5 0.7 0.01" />
    </geometry>
  </visual>
  <collision>
    <origin xyz="0 0 0" rpy="0 0 0" />
    <geometry>
      <box size="0.5 0.7 0.01" />
    </geometry>
   </collision>
   </link>


      <joint name="torso_lift_motor_screw_joint" type="continuous">
      <origin xyz="-0.15 0.0 0.7"/>
      <axis xyz="0 0 1"/>
      <parent link="base_link"/>
      <child link="torso_lift_motor_screw_link"/>
      <dynamics damping="0.0001"/>
    </joint>


       <gazebo>
     <joint name="torso_lift_screw_torso_lift_joint" type="screw">
        <parent>torso_lift_link</parent>
       <child>torso_lift_motor_screw_link</child>
       <axis>
       <xyz>0 0 1</xyz>
       </axis>
         <thread_pitch>3141.6</thread_pitch>
        </joint>
      </gazebo>

       <transmission name="torso_lift_trans" type="pr2_mechanism_model/SimpleTransmission">
         <actuator name="torso_lift_motor"/>
          <joint name="torso_lift_joint"/>
          <mechanicalReduction>-47641.53</mechanicalReduction>
            <simulated_actuated_joint name="torso_lift_motor_screw_joint" simulated_reduction="3141.6"/>
        </transmission>
      </robot>

This is the filtered out code from pr2.urdf for realising the usage of screw joint in torso. This screw joint lifts the torso from the base_link , visual for the screw is a cuboid.

Hope this helps in understanding the implementation of screw joint.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-03-11 19:05:35 -0500

Seen: 513 times

Last updated: Mar 30 '20