Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.3.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | kilted |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged easynav_routes_maps_manager at Robotics Stack Exchange
Package Summary
| Version | 0.2.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-02-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
Authors
easynav_routes_maps_manager
Description
Maps Manager that maintains a set of navigation routes (in 2D or 3D), exposes them as
visualization markers and interactive markers in RViz, and makes the current
RoutesMap available through the NavState so that other managers and filters
can consume it (for example, costmap filters that constrain navigation to a
given corridor).
Routes are represented as a list of straight-line segments between two poses. Nothing prevents you from using non-zero Z coordinates in the poses, so routes can be fully 3D if downstream consumers support it. They are typically loaded from a YAML file stored in a ROS package and can be edited at runtime using interactive markers. A default single route segment is created automatically when no routes file is configured.
Authors and Maintainers
- Authors: Intelligent Robotics Lab
- Maintainers: Francisco Martín Rico fmrico@gmail.com
Supported ROS 2 Distributions
| Distribution | Status |
|---|---|
| jazzy | |
| kilted | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_routes_maps_manager/RoutesMapsManager -
Type:
easynav::RoutesMapsManager -
Base Class:
easynav::MapsManagerBase -
Library:
easynav_routes_maps_manager -
Description: Maintains an in-memory set of route segments (RoutesMap),
loads/saves them from/to YAML files, exposes them through ROS markers and
interactive markers, and writes the current
RoutesMapinto the NavState.
In addition, this package provides the RoutesCostmapFilter plugin, which can be used by the costmap Maps Manager to raise costs outside the defined routes, effectively constraining navigation to a configurable corridor around the segments. Other routes filters (for example, for NavMap or Octomap representations) can be implemented in the same way, each using its own NavState keys and outputs.
Parameters
Plugin Parameters (namespace: /<node_fqn>/easynav_routes_maps_manager/RoutesMapsManager/...)
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.package |
string |
"" |
Package name used to resolve relative route YAML paths via ament_index. When empty and <plugin>.map_path_file is also empty, a default in-memory route is created. |
<plugin>.map_path_file |
string |
"" |
Relative path (inside the package) or absolute path to a YAML file defining the routes (see Routes YAML Format below). |
<plugin>.filters |
string[] |
[] |
List of routes filter identifiers to be instantiated (see Routes Filter Plugins). |
<plugin>.<filter>.plugin |
string |
"" |
Type of routes filter plugin (e.g., easynav_routes_maps_manager/RoutesCostmapFilter). |
If both <plugin>.package and <plugin>.map_path_file are empty, the manager
does not attempt to read a file and instead initializes a single default segment
from (0, 0, 0) to (1, 0, 0).
If only one of the parameters is set (package without path or path without package for relative paths), initialization fails with an error.
Routes YAML Format
Routes are loaded from a YAML file with the following structure:
routes: [route0, route1]
route0:
start: {x: 0.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 1.0, y: 0.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
route1:
start: {x: 1.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
end: {x: 2.0, y: 1.0, z: 0.0, qx: 0.0, qy: 0.0, qz: 0.0, qw: 1.0}
-
routes: ordered list of route segment identifiers. - Each entry under
routeXdefines the start and end poses of a segment.
When saving routes (via the save service, see below), the manager writes back a file with the same structure.
Routes Filter Plugins
Each entry in <plugin>.filters defines a sub-namespace <plugin>.<filter>
with at least the key plugin, plus any filter-specific parameters. Filters
implement the RoutesFilter interface and are executed after the RoutesMap
has been written to the NavState on each update cycle.
RoutesCostmapFilter
-
Plugin Name:
easynav_routes_maps_manager/RoutesCostmapFilter -
Type:
easynav::RoutesCostmapFilter -
Description:
Reads the current
RoutesMapand a dynamic costmap (map.dynamic.filtered)
File truncated at 100 lines see the full file
Changelog for package easynav_simple_maps_manager
0.2.1 (2026-02-27)
- 0.2.0
- Remove C++20/C++23 features and update to new MethodBase interface
- TFInfo in RTTFBuffer
- Final adjustements
- Refactor to use TFInfo
- Added missing dep
- Added missing licenses
- Tests and README
- Route Maps Manager with filters. Costmap filter
- Routes Maps manager finalized
- Add/Remove segment
- Interactive markers and ids in the segments
- Basic route server
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
Package Dependencies
System Dependencies
| Name |
|---|
| yaml-cpp |