0
$\begingroup$

Rosanswers logo

Hello,

I am using MoveIt! for a simulated UR10 in Gazebo. When I try to tell the MoveGroup to move the end effector to a position (x,y,z,w), MoveIt! ignores the joint limits which are set in the launch file (-pi/2, pi/2, etc.). This leads frequently to a collision between the shoulder_link and the ground plane. Does anybody know why MoveIt! ignores these limits? If so, how can I resolve this problem? I am using ROS Indigo and Gazebo 2. If you will need more information, please advise :)

Thank you very much in advance! Kind regards, Hannes

Update1: I am referring to this xacro file, the ur10_joint_limited_robot.urdf.xacro...

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro"
       name="ur10" >

  <!-- common stuff -->
  <xacro:include filename="$(find ur_description)/urdf/common.gazebo.xacro" />

  <!-- ur10 -->
  <xacro:include filename="$(find ur_description)/urdf/ur10.urdf.xacro" />

  <!-- arm -->
  <xacro:ur10_robot prefix="" joint_limited="true"
         shoulder_pan_lower_limit="${-pi}" shoulder_pan_upper_limit="${pi}"
         shoulder_lift_lower_limit="${-pi/2}" shoulder_lift_upper_limit="${pi/2}"
         elbow_joint_lower_limit="${-pi}" elbow_joint_upper_limit="${pi}"
         wrist_1_lower_limit="${-pi}" wrist_1_upper_limit="${pi}"
         wrist_2_lower_limit="${-pi}" wrist_2_upper_limit="${pi}"
         wrist_3_lower_limit="${-pi}" wrist_3_upper_limit="${pi}"
/>

  <link name="world" />

  <joint name="world_joint" type="fixed">
    <parent link="world" />
    <child link = "base_link" />
    <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
  </joint>

</robot>

Originally posted by HannesIII on ROS Answers with karma: 27 on 2017-01-21

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Have you updated the limits in the ur10_moveit_config/config/joint_limits.yaml? Those take precedence over what is in the URDF.

Edit: also: which "joint limits which are set in the launch file" are you referring to?


Originally posted by gvdhoorn with karma: 86574 on 2017-01-21

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by HannesIII on 2017-01-21:
I did not update the .yaml file. I think the joint limits are set by the xacro file above, aren't they? Thank you for your response!

Comment by gvdhoorn on 2017-01-21:
Ah, the xacro. Yes, but again: the joint_limits.yaml in the MoveIt configuration package overrides these.

Comment by gvdhoorn on 2017-01-21:
It's good to also update them in the xacro though, as only MoveIt uses the values in joint_limits.yaml. Other utilities / nodes parsing the URDF will use those in the URDF itself (as they know nothing about MoveIt, or its parameters).

Comment by danjo on 2018-10-03:
it seems the .yaml file is only vel and accelerations, not positions?? or am i missing something?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.