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

collision map ignored in planning components visualizer

asked 2012-05-13 11:29:12 -0600

jwrobbo gravatar image

I have used the planning description configuration wizard to set up arm_navigation for a simple robot with a custom urdf. I have then edited one of the files created to set "use collision map" to true and I have a collision map from octomap_server that I have remapped to collision_map_occ. However in planning components visualiser, the collision map is ignored and the path goes straight through the objects. If I add a pole though, it is properly avoided. As far as I can see there is a proper tf between map and base_link, the coordinate frames of the octomap and robot respectively. Any ideas how I can get the planner to recognise the collision map as an obstacle and plan around it? Thanks a lot.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-10-10 21:14:15 -0600

updated 2012-10-25 14:31:42 -0600

Although a late answer, i just find that you must set both use_collision_map and use_monitor to true. otherwise environment_server will not subscribe to collision_map. that's why the collision map is ignored.


to pedro: a good question. the reason is, when planning components visualizer starts, it will publish joint state. once environment server receive the joint state, it will start the service "register_planning_scene". but planning components visualizer need the service "register_planning_scene" to start itself. so they two fall into a dead lock. so the solution is, before planning components visualizer starts, run another node to publish the joint state to let environment server starts correctly. and when the param use_monitor is false, the start of environment server doesn't depend on the joint state. that's why there is no such a problem when use_monitor is false. hope that helps.

edit flag offensive delete link more


thanks, it works like a charm! I'm just disappointed that the environment_server doesn't update its collision map, even though the collision_map coming from octomap_server is changing. It appears that it just reads the first CollisionMap message and keeps it.

Pedro gravatar image Pedro  ( 2012-10-30 06:39:56 -0600 )edit

answered 2012-10-25 04:24:36 -0600

Pedro gravatar image

updated 2012-10-25 04:28:06 -0600

yangyangcv, I have the same problem as jwrobbo, but if I do as you say (set use_monitor=true), I get these messages and Planning Components Visualizer doesn't start:

[ INFO] [1351174361.245739218]: Waiting for robot state ...
[ INFO] [1351174361.245842988]: Waiting for joint state ...
[ INFO] [1351174361.882383328]: Waiting for environment server planning scene registration service /register_planning_scene
[ INFO] [1351174361.884368908]: waitForService: Service [/register_planning_scene] has not been advertised, waiting...
[ INFO] [1351174362.178102236]: Waiting for planning scene service /environment_server/set_planning_scene_diff
[ INFO] [1351174362.181309526]: waitForService: Service [/environment_server/set_planning_scene_diff] has not been advertised, waiting...

Do you know how to solve this? Thanks!

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2012-05-13 11:29:12 -0600

Seen: 312 times

Last updated: Oct 25 '12