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

ompl_planning with no obstacles crashing

asked 2011-02-23 05:24:54 -0500

updated 2011-02-23 08:57:02 -0500

mmwise gravatar image


I am composing a planning stack for a SCHUNK arm (wiki entry is to come soon hopefully). I managed to get all the pieces in place, but I want to avoid using obstacles right now. I've already told the planning_environment . But ompl_planning is quite stubborn.

It expects an Environment Representation and if it can't find it (line 217 in RequestHandler.cpp) it returns a nasty and program-crashing NULL.

How can I tell ompl not to use the the collision space?

P.S. This whole crashing sounds like a good candidate for a ticket..

edit retag flag offensive close merge delete


I managed to track down the error to the file ModelBase.cpp in the ompl_ros package. The planner is trying to get the KinematicModel from the CollisionSpace, which obviously doesn't have it. This returned NULL pointer sits there waiting for somebody to step on it... So, how do I use a fake/empty collision model?
Lorenzo Riano gravatar image Lorenzo Riano  ( 2011-02-23 07:42:25 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2011-02-23 09:19:26 -0500

egiljones gravatar image


Setting the use_collision_map parameter doesn't disable collision checking - our names are a bit hard to understand, but the collision map is a voxelized occupancy grid that comes from sensors, while the collision space is the underlying collision checking infrastructure. How exactly else have you gone about trying to disable collision checking? If ompl planning can't initialize an environment representation it can't do anything - it can't check whether goal constraints are met in certain states, check for joint limits, or do any of the things that actually let it plan. It is probably the case that something should happen instead of a crash - for instance, a message saying "Cannot instantiate environment representation. Exiting."

If you think that the planning environment is successfully initializing and you want to disable collision checking for particular planning queries, that's easy to do. But starting ompl without a valid planning environment description isn't something the code is designed to do. If you can attach the output of ompl_planning as it's starting up I can maybe help more.

We're in the process of a major redesign with a primary design goal making it easier to get everything working on other robots, and there will eventually be a set of tutorials and tools that will make this easier.


edit flag offensive delete link more


I think the planning environment is correctly initialised. The output from rxconsole is a bit too long to post here, but the only warning I am receiving is "No default collision operation specified". Is this bad? What gives the ompl_planner the right CollisionSpace object?
Lorenzo Riano gravatar image Lorenzo Riano  ( 2011-02-23 20:08:00 -0500 )edit

answered 2011-02-24 02:52:20 -0500

Ok, I managed to track down the problem. OMPL (and planning environment I guess) requires the default_collision_operations parameter to be set. It simply gives a warning when it doesn't find it, but a huge chunk a code doesn't get run and it triggers a SEGFAULT a long time later!

edit flag offensive delete link more

Question Tools


Asked: 2011-02-23 05:24:54 -0500

Seen: 305 times

Last updated: Feb 24 '11