0
$\begingroup$

Rosanswers logo

Hi, While running the turtlebot in autonomous navigation mode, I want it to avoid a certain part of the environment. So I modified the map by drawing some lines using 'Inkscape Vector Graphics Editor', hoping that the turtlebot would not go into the unwanted areas. It works well sometimes, but I have noticed that most of the times, the turtlebot ignores these "fake" obstacles in the map and goes to the unwanted areas anyway.

Modifying the parameter occdist_scale in base_local_planner_params.yaml helped me to better account for local obstacles (if I am not mistaken, this yaml file is only concerned with the local map and not the global one). Is there any such parameter that I could modify so that that I can put a high penalty for hitting global obstacles that are seen in the map? Any other suggestions are welcome too. Thanks.


Originally posted by turtlebotnewbie on ROS Answers with karma: 78 on 2013-07-19

Post score: 2

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Hello, what is probably happening is that the update_frequency for global_costmap is not zero, so it gets updated with what the sensor sees. As it cannot see your fake obstacles, they get removed from the costmap. So some solutions:

  1. Use hydro navigation stack: with the new multi-layer costmaps, the static (already present in the bitmap) obstacles are never removed. Maybe the best you can do, if you are not forced to use groovy or an earlier version.

  2. Set update_frequency to 0: not a good idea because you don't incorporate new information into the map.

  3. Use a "virtual sensor" that can "see" obstacles with known global pose. Here is the one I did recently: https://github.com/yujinrobot/kobuki-x/tree/hydro-devel/virtual_sensor. Note that is very experimental code, and we have not even released on ros, so... don't expect it to work fine out of the box. You can provide columns and walls, but maybe I'll incorporate other shapes as we need them. I use to avoid horrible tables low enough to cut our robot's head but with only one leg in the center, far away from the border "blade".

Options 1 and 3 are not mutually exclusive: 1 is trivial to use, but not flexible, and makes you add "false" information to the map, what can be harmful in some cases (amcl for example uses just the bitmap, that contains fake obstacles that he cannot match with laser data). 3 requires extra effort, but is very flexible.


Originally posted by jorge with karma: 2284 on 2013-07-21

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

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