0

I currently am working on a URDF file that has multiple long cylinders that are placed in parallel. Each cylinder rotates on a different shaft, but I would like the cylinders to move together.

My problem is, drake does not recognize multiple joints on a single transmission parameter. It only moves the first joint that was specified under the transmission parameter in the URDF file. (There is no warning or seg-faults)

Is there a specific way to control all the cylinders using one transmission?

   <transmission name="cylinder_transmission">
    <robotNamespace>/robot</robotNamespace>
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="cylinder_joint_1">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <joint name="cylinder_joint_2">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <joint name="cylinder_joint_3">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <joint name="cylinder_joint_4">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="motor_3">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>

Thank you

Yuki
  • 139
  • 6
  • Can you please post the urdf, or at least the part that defines the transmission and cylinders? I would like to see how urdf specifies that they are to be coordinated. – Sherm Jun 06 '20 at 00:03
  • I have updated my post. – Yuki Jun 08 '20 at 19:28
  • Thanks! So is the interpretation that there is a single actuator "motor_3" that drives "PositionJointInterface" and then each cylinder joint is in turn driven by that interface? – Sherm Jun 09 '20 at 00:28

1 Answers1

0

I would think that you want to have a single joint (with your single transmission), but then would attach multiple geometries to the single child link?

Russ Tedrake
  • 4,703
  • 1
  • 7
  • 10
  • That would be okay. But in my case, the cylinder links would have to revolve around their own individual centers instead of a single axis specified by a single joint. In essence, I want each cylinder to rotate around their own axis. Is there a way to do so while specifying only a single joint? – Yuki Jun 08 '20 at 19:36