Summary:

New navigation stack SIG at http://www.ros.org/wiki/sig/Navigation and http://www.ros.org/wiki/hydro/Planning/Navigation.

Longer version:

Greetings ROS users,

I have started a new SIG for the navigation stack, specifically concerned at the moment with plans for the Hydro release.  I realize it is a bit late in the cycle for this, but we have a great new feature that we are eager to release:

Layered Costmaps

David Lu has modified the costmap_2d package significantly to add a modular "layered costmap" feature. With this, multiple layers of costmaps can be maintained separately and then combined for global or local planning. This should allow, for instance, a static map layer which is never overwritten by sensors, a separate layer for sonars from lasers so they don't overwrite each other, or a special layer that tracks people and applies custom cost functions around them.

This includes breaking changes to the C++ API for Costmap2DROS, RecoveryBehavior, BaseLocalPlanner, and BaseGlobalPlanner. Anyone who has written a custom RecoveryBehavior, BaseLocalPlanner or BaseGlobalPlanner subclass will need to recompile and likely make some code changes.

The node/topic API is very similar or possibly exactly the same, so if you are just using the nav stack instead of coding for it, you should be unaffected. The layers code introduces a new parameter layout for configuring the costmaps (typically under move_base). However it also includes code to detect an old non-layered parameter set and convert it to a nearly equivalent layered set.

Current status

Currently the relevant branches on http://github.com/ros-planning/navigation are hydro-devel and layered-costmaps-catkinized.

Soon I will merge them into hydro-layered-costmaps which people can test for a bit and then I will merge it back into hydro-devel if it seems ready.

The following things are still not working in the layered-costmaps code:
If you have strong feelings about any of these things being supported for hydro, please post on the SIG mailing list or create a new issue on github.

Thank you!
Dave