Ask Your Question
0

moveit planning collision avoidance

asked 2017-06-27 14:32:56 -0600

David_111 gravatar image

Hello there,

I am trying to create a ROS based application in which i use a Joystick to control the robot, then save the robot state and later create plans from those saved positions.

However i am encountering several bugs when planning Trajectories with moveit. One of which is shown in the following Screenshot. It shows the start State (not touching the frame), the state which is somewhere in the Trajectory and touches the frame, and the goal state. As you can see, there must clearly be a valid path!
Or am i mistaken and the obvious path is only obvious to humans, but not to a IK-Solver? Robot touching the Frame

Other times, i try to make a path from let's say the robot being in some configuration under the table to somewhere above the table (without moving the robots base_link), but the plan is invalid and the robot dances around... which is fun to watch, but unacceptable for the application.

The Trajectory is of course not excecutet, and moveit points out, that the path might just not be valid due to postprocessing. So might that be the cause of my problem?

So much to my problem... now to my "long-story-short-question":
Is it possible to configure moveit in such a way that it is aware of objects in the Scene and gives me a valid path for over 90% of the requests?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-06-28 05:52:33 -0600

v4hn gravatar image

It's hard for me to see anything from your description in your screenshot.

the robot dances around... which is fun to watch, but unacceptable for the application.

This sounds like a plan produced by the default planner configuration in indigo - we changed it in kinetic. Try to choose RRTConnect as your planner, if you didn't do that already..

One of which is shown in the following Screenshot. It shows the start State (not touching the frame), the state which is somewhere in the Trajectory and touches the frame, and the goal state. As you can see, there must clearly be a valid path!

MoveIt uses the FCL library for collision testing and until now only tests discrete states for collisions. If you have thin collision structures, it might miss collisions if the arm can move through them between collision checks.

Try to increase the amount of checks. You can do that by reducing longest_valid_segment_fraction in the group section of your ompl_planning.yaml. We currently advise a value of 0.005 which should be good enough for your setup.

edit flag offensive delete link more

Comments

does moveit_commander.set_planner_id("RRTConnectkConfigDefault") do the job for choosing that planner? because after doing so, the robot is still "dancing" when a plan involves collision avoidance. I dont think that the structures i use are so thin that it causes problems

David_111 gravatar imageDavid_111 ( 2017-07-07 04:22:58 -0600 )edit

to clarify(your first citation of me): the path, i took a screenshot of, is invalid due to the collision, which you can see in the screenshot. But in my opinion, there has to be another path.

David_111 gravatar imageDavid_111 ( 2017-07-07 08:30:39 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2017-06-27 14:32:56 -0600

Seen: 826 times

Last updated: Jun 28 '17