Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add note on multirobot refactor to migration guide #609

7 changes: 7 additions & 0 deletions configuration/packages/costmap-plugins/obstacle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,13 @@ This costmap layer implements a plugin that uses 2D raycasting for 2D lidars, de
Description
Topic of data.

Relative topics will be relative to the node's parent namespace.
SteveMacenski marked this conversation as resolved.
Show resolved Hide resolved
For example, if you specify `topic: scan` in the `obstacle_layer` of a `local_costmap` and you launch your bringup with a `tb4` namespace:
* User chosen namespace is `tb4`.
* User chosen topic is `scan`.
* Topic will be remapped to `/tb4/scan` without `local_costmap`.
* Use global topic `/scan` if you do not wish the node namespace to apply.

:``<obstacle layer>``. ``<data source>``.sensor_frame:

====== =======
Expand Down
7 changes: 7 additions & 0 deletions configuration/packages/costmap-plugins/range.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ This costmap layer implements a plugin that processes sonar, IR, or other 1-D se
Description
Range topics to subscribe to.

Relative topics will be relative to the node's parent namespace.
SteveMacenski marked this conversation as resolved.
Show resolved Hide resolved
For example, if you specify `topics: [range1, /range2]` in the `range_layer` of a `local_costmap` and you launch your bringup with a `tb4` namespace:
* User chosen namespace is `tb4`.
* User chosen topics are [`range1`, `/range2`].
* Topic will be remapped to `/tb4/range1`, without `local_costmap`, and `/range2`.
* Use global topics such as `/range2` if you do not wish the node namespace to apply.

:``<range layer>``.phi:

====== =======
Expand Down
9 changes: 8 additions & 1 deletion configuration/packages/costmap-plugins/static.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,11 @@ This implements a costmap layer taking in a map from either SLAM or ``map_server
====== =======

Description
Map topic to subscribe to. If left empty the map topic will default to the global `map_topic` parameter in `costmap_2d_ros`.
Map topic to subscribe to. If left empty the map topic will default to the global `map_topic` parameter in `costmap_2d_ros`.

Relative topics will be relative to the node's parent namespace.
For example, if you specify `map_topic: map` in the `static_layer` of a `global_costmap` and you launch your bringup with a `tb4` namespace:
* User chosen namespace is `tb4`.
* User chosen topic is `map`.
* Topic will be remapped to `/tb4/map` without `global_costmap`.
* Use global topic `/map` if you do not wish the node namespace to apply.
7 changes: 7 additions & 0 deletions configuration/packages/costmap-plugins/voxel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@ This costmap layer implements a plugin that uses 3D raycasting for depth, 3D, or
Description
Topic of data.

Relative topics will be relative to the node's parent namespace.
For example, if you specify `topic: scan` in the `voxel_layer` of a `local_costmap` and you launch your bringup with a `tb4` namespace:
* User chosen namespace is `tb4`.
* User chosen topic is `scan`.
* Topic will be remapped to `/tb4/scan` without `local_costmap`.
* Use global topic `/scan` if you do not wish the node namespace to apply.

:``<voxel layer>``. ``<data source>``.sensor_frame:

====== =======
Expand Down
21 changes: 20 additions & 1 deletion migration/Jazzy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,23 @@ In `PR #4752 <https://github.com/ros-navigation/navigation2/pull/4752>`_ an opti

Default value:

- true
- true

Revamped multirobot bringup and config files to use namespaces
**************************************************************

In `PR #4715 <https://github.com/ros-navigation/navigation2/pull/4715>`_ multirobot bringup and the use of namespaces were overhauled to be compatible out of the box with ROS namespaces and remove custom logic, specifically:

* The ``use_namespace`` parameter has been removed from ``nav2_bringup`` launch files. The ``namespace`` parameter will now always be used and default to ``/`` for "global namespace".
* There is now a single rviz config file for both normal and namespaced robots. Topics have been changed to a relative path (i.e. ``/map`` -> ``map``) and the rviz ``namespace`` will be added automatically.
* There is now a single ``nav2_params.yaml`` config file for both single and multirobot bringup. All the topics have been changed to relative (i.e. ``/scan`` -> ``scan``).

Note that some plugins / nodes might have their own local namespace. This is the case for ``CostmapLayer`` which will be in a ``/ns/[layer_name]`` namespace. For these, a new function ``joinWithParentNamespace`` has been added to make sure joining relative paths results in ``/ns/topic_name`` rather than ``/ns/[layer_name]/topic_name``.

If your use case doesn't require multiple robots, keeping absolute paths in your ``nav2_params.yaml`` config file and rviz config file will preserve existing behavior.

For example, if you specify `topic: scan` in the `voxel_layer` of a `local_costmap` and you launch your bringup with a `tb4` namespace:
* User chosen namespace is `tb4`.
* User chosen topic is `scan`.
* Topic will be remapped to `/tb4/scan` without `local_costmap`.
* Use global topic `/scan` if you do not wish the node namespace to apply
Loading