0
$\begingroup$

Rosanswers logo

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.


Originally posted by jwrobbo on ROS Answers with karma: 258 on 2012-05-13

Post score: 2

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.

Edit:

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.


Originally posted by yangyangcv with karma: 741 on 2012-10-10

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Pedro on 2012-10-30:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.