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

Moveit path planning with constraints fails

asked 2016-06-09 08:35:06 -0600

Lex van Dommelen gravatar image


I'm trying to move an object with the kinova mico arm, using ROS and moveit, while keeping the end effector horizontal. Relocating an object proved successful, however when I add some path constraints the planning time shoots up to over 120 seconds, where 10 seconds sufficed before, and the success ratio has dropped to 1 out of 10. I tried to fine-tune the range variable between 0.05 and 3.0 at both the RRT and the RRTConnect libraries which didn't change anything in the results. The constraints are defined like shown below.

moveit_msgs::Constraints PC;
moveit_msgs::OrientationConstraint OC;    
OC.header.frame_id = "mico_link_base";
OC.link_name = "mico_link_7";       
OC.orientation = target_pose1.orientation;
OC.absolute_x_axis_tolerance = 0.2;
OC.absolute_y_axis_tolerance = 2*PI;
OC.absolute_z_axis_tolerance = 0.2;
OC.weight = 1.0;        

The most common error from moveit is that the orientation constraints are being violated with some steps.

[ERROR] [1465478261.387712988]: Computed path is not valid. Invalid states at index locations: [ 76 78 80 81 82 83 84 85 92 93 94 ] out of 128. Explanations follow in command line. Contacts are published on /move_group/display_contacts
[ INFO] [1465478261.390961441]: Orientation constraint violated for link 'mico_link_7'. Quaternion desired: -0.653281 0.270598 -0.270598 0.653281, quaternion actual: 0.335662 0.155673 0.900074 0.230140, error: x=0.908021, y=0.399568, z=0.423861, tolerance: x=0.200000, y=6.283185, z=0.200000


[ INFO] [1465478261.434939990]: Orientation constraint violated for link 'mico_link_7'. Quaternion desired: -0.653281 0.270598 -0.270598 0.653281, quaternion actual: -0.573032 0.355789 -0.231741 0.700960, error: x=0.090580, y=0.089167, z=0.228256, tolerance: x=0.200000, y=6.283185, z=0.200000
[ERROR] [1465478261.437059768]: Completed listing of explanations for invalid states.

I really want to bring down its planning time and bring its success ratio to at least 50%.

Are there some variables I can add in the ompl_planning.yaml file?

Or is there a better way to set its path constraints?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-06-10 07:27:13 -0600

kramer gravatar image

Although this is not directly an answer to your question, you might want to look into using the trac_ik package.

edit flag offensive delete link more


Thanks for your answer! it works with a 4 out of 6 success rate with 60 seconds planning time. The ompl_planning.yaml file is restored to its default and maybe even a better performance can be realized after fine-tuning the variables. Thanks a lot!

Lex van Dommelen gravatar image Lex van Dommelen  ( 2016-06-13 04:50:53 -0600 )edit

Yes, for future reference for anyone reading this, when MoveIt! fails often for your particular manipulator, it usually the fault of the default (KDL) IK solver, not necessarily the fault of the MoveIt! framework or OMPL.

pbeeson gravatar image pbeeson  ( 2016-06-15 09:41:31 -0600 )edit

Additionally, for Indigo, and Jade, TRAC-IK (including the moveit plugin) has recently been released into the ROS Debian repo, so any day now, apt-get install ros-indigo-trac-ik-kinematics-plugin will get you the MoveIt! plugin quickly.

pbeeson gravatar image pbeeson  ( 2016-06-15 09:43:38 -0600 )edit

Question Tools



Asked: 2016-06-09 08:35:06 -0600

Seen: 2,778 times

Last updated: Jun 10 '16