Ask Your Question

Long-term autonomous navigation

asked 2018-08-31 16:36:08 -0500

deplanque gravatar image

I would like my autonomous robot to operate autonomously for long periods of time (e.g. several days or even weeks). So far, I have used the navigation stack for navigation and mapping. However, the static map created with gmapping and used by, for example, move_base does not remain up to date (as it is static). For instance, when an obstacle that is part of the static map is removed this removal is not reflected in the static map. As a result, the global planner can subsequently sometimes plan suboptimal paths towards the global goal.

Consequently, I would like to know whether the navigation stack is recommended for long-term autonomous navigation. Should I use other packages or is there a way to keep the navigation stack layered costmaps up to date in the long term? Thank you!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-09-01 11:55:35 -0500

David Lu gravatar image

The navigation stack is intended for long-term use, as seen in the original paper. However, there's not a mechanism built in for updating the static map over time.

edit flag offensive delete link more


Hi David V. Lu!! :), how do you ensure the global planner still finds the optimal path when obstacles contained in the static map are moved around the environment? Also, thanks for all your contributions to the navigation stack. Your code is really awesome!

deplanque gravatar image deplanque  ( 2018-09-01 12:11:48 -0500 )edit

Thank you, although I can't take credit for a lot of it.

Practically speaking, I make sure the static map contains the minimal set of obstacles. This often means erasing chairs and other temporary obstacles by hand. Sadly, there's no guarantee that it will be optimal.

David Lu gravatar image David Lu  ( 2018-09-01 12:22:08 -0500 )edit

Ok, that makes sense. I have been trying to find a long-term navigation approach that requires minimal setup, so that other people (who are new to ROS) can easily setup my mobile robot in new environments. Asking them to erase obstacles from the map created with gmapping is probably best.

deplanque gravatar image deplanque  ( 2018-09-01 12:49:25 -0500 )edit

To simplify setup I have looked into using slam_karto instead of gmapping as it can (supposedly?) load an existing map and resume mapping, so that the robot can update the static map while navigating. Do you perhaps have experience with this or suggestions?

deplanque gravatar image deplanque  ( 2018-09-01 12:50:27 -0500 )edit

This ROS answer suggests that slam_karto can resume mapping from an existing map. I also tried cartographer but its CPU requirements are too high for my basic robots.

deplanque gravatar image deplanque  ( 2018-09-01 12:51:56 -0500 )edit

Slam Karto as it exists today will not allow for that - its not in the free tier SDK that slam_karto in ros perception is based on. You'd have to contact SRI/karto to get licenses for that. Cartographer is probably your best bet out-of-the-box solution if you absolutely require it.

stevemacenski gravatar image stevemacenski  ( 2018-09-01 20:40:12 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2018-08-31 16:36:08 -0500

Seen: 205 times

Last updated: Sep 01 '18