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

Checking robot footprint for collision with the environment

asked 2011-08-21 19:25:38 -0500


I would like to evaluate if a larger set of robot base poses (maybe 200-300) is in collision. More specifically, I would like to know if the robot footprint is in collision with the environment. I do not need to make a motion plan.

Has anyone done that before? I have been reading through the tutorials, especially those of the navigation stack but have not found anything suitable.

Right now, my best guess of how that could be accomplished is through adding a service to the move_base node in the navigation stack, as all required information is available there. However, I think this would mean changing a lot of the code (the move_base node, the base_global_planner interface in nav_core, etc.)

So if anyone has a suggestion for another or easier solution, please let me know.



edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2011-08-22 06:05:16 -0500

eitan gravatar image

The base_local_planner::CostmapModel will help you do these footprint checks pretty easily. You can check out the documentation here. Basically, you'll create the CostmapModel object by passing it a reference to a costmap_2d::Costmap2D object, and then call footprintCost on it. If the cost is negative, that footprint position is in collision with an object. I should also mention that this is the internal API of the navigation stack, so stability isn't guaranteed, but things haven't changed with that code in awhile so you should probably be OK.

edit flag offensive delete link more

Question Tools


Asked: 2011-08-21 19:25:38 -0500

Seen: 1,095 times

Last updated: Aug 22 '11