ros / xacro

Xacro is an XML macro language. With xacro, you can construct shorter and more readable XML files by using macros that expand to larger XML expressions.

Home Page:http://www.ros.org/wiki/xacro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

limit combined angle

eberhardt62 opened this issue · comments

Hello I have a kuka robot and i wish to limit the rotation of the endeffector. There is two continuous joints, joint 4 and joint 6.

The sum of rotations of joint 4 and joint 6 should be limited to -180 +180 degrees but since joint 4 and joint 6 rotations can negate each other the joints should stay continuous.

How do I express that? My current solution is not nice, since i will constantly run into the limits:

<joint name="${prefix}joint_a4" type="revolute">
      <origin xyz="0.055 0 0" rpy="0 0 0"/>
      <parent link="${prefix}link_3"/>
      <child link="${prefix}link_4"/>
      <axis xyz="0 0 -1"/>
      <limit lower="${radians(-180)}" upper="${radians(180)}" effort="0" velocity="${radians(100)}"/>
    </joint>
    <joint name="${prefix}joint_a5" type="revolute">
      <origin xyz="0 0 1.5" rpy="0 0 0"/>
      <parent link="${prefix}link_4"/>
      <child link="${prefix}link_5"/>
      <axis xyz="0 1 0"/>
      <limit lower="${radians(-125)}" upper="${radians(125)}" effort="0" velocity="${radians(110)}"/>
    </joint>
    <joint name="${prefix}joint_a6" type="revolute">
      <origin xyz="0 0 0.23" rpy="0 0 0"/>
      <parent link="${prefix}link_5"/>
      <child link="${prefix}link_6"/>
      <axis xyz="0 0 -1"/>
      <limit lower="${radians(-180)}" upper="${radians(180)}" effort="0" velocity="${radians(184)}"/>
    </joint>

is there some way to have a4 and a6 rotate continuously but under the constraint that a4+a6 stays within -180 +180 ?

There is no way to specify that in the URDF. Continuous joints are always unlimited. I guess the limits are not even considered.
If at all, you need to implement this constraint in your motion generator and/or controller.

Thanks for the quick reply.