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.