beluga_amcl
An AMCL node implementation for ROS2 using Beluga.
Links
README
Beluga AMCL
Beluga AMCL is a ROS node based on the Beluga library that aims to be fully compatible with both Navigation 2 AMCL and Navigation AMCL nodes.
The compatibility between beluga_amcl
and its longstanding counterparts in the ROS ecosystem provides a simple migration path for projects that want to be able to integrate the power and modularity of the Beluga library in an existing nav2_amcl
-based (or amcl
-based) project.
Table of Contents
ROS 2 Interface
Parameters
Beluga AMCL currently supports the majority of ROS parameters used in Navigation 2 AMCL.
See Beluga AMCL documentation for further reference.
Subscribed Topics
The subscribed topic names can be changed with the parameters map_topic
, scan_topic
and initial_pose_topic
.
Topic |
Type |
Description |
---|---|---|
|
|
Input topic for map updates. |
|
|
Input topic for laser scan updates. |
|
|
Input topic for pose mean and covariance to initialize the particle filter. |
Published Topics
Topic |
Type |
Description |
---|---|---|
|
|
Output topic for particle cloud published at a fixed frequency. |
|
|
Output topic for estimated pose mean and covariance in map frame. |
Published Transforms
The frame names can be changed with the parameters global_frame_id
, odom_frame_id
and base_frame_id
.
Defaults are map
, odom
and base
.
Transform |
Description |
---|---|
|
Input transform used by motion models and resampling policies. |
|
Input transform used to convert laser scan points to base frame. |
|
Output transform calculated from the estimated pose mean and the current odom-to-base transform. |
Advertised Services
Topic |
Type |
Description |
---|---|---|
|
|
Request to reinitialize global localization without an initial pose estimate. |
|
|
Trigger a forced update of the filter estimates. |
ROS 1 Interface
Parameters
Beluga AMCL currently supports the majority of ROS parameters used in AMCL.
See Beluga AMCL parameter reference for detailed information.
Subscribed Topics
The subscribed topic names can be changed with the parameters map_topic
, scan_topic
and initial_pose_topic
.
Topic |
Type |
Description |
---|---|---|
|
|
Input topic for map updates. |
|
|
Input topic for laser scan updates. |
|
|
Input topic for pose mean and covariance to initialize the particle filter. |
Published Topics
Topic |
Type |
Description |
---|---|---|
|
|
Output topic for particle cloud published at a fixed frequency. |
|
|
Output topic for estimated pose mean and covariance in map frame. |
|
|
Output topic for node diagnostics. |
Published Transforms
The frame names can be changed with the parameters global_frame_id
, odom_frame_id
and base_frame_id
.
Defaults are map
, odom
and base
.
Transform |
Description |
---|---|
|
Input transform used by motion models and resampling policies. |
|
Input transform used to convert laser scan points to base frame. |
|
Output transform calculated from the estimated pose mean and the current odom-to-base transform. |
Advertised Services
Topic |
Type |
Description |
---|---|---|
|
|
Request to reinitialize global localization without an initial pose estimate. |
|
|
Trigger a forced update of the filter estimates. |
|
|
Set a new map and initial pose estimate. |
Called Services
Topic |
Type |
Description |
---|---|---|
|
|
To retrieve map on initialization, if |
Performance
Performance reports are periodically generated and uploaded to track performance improvements and regressions. These reports are generated using a set of scripts in the beluga_benchmark package which can be used to compare the performance of beluga_amcl
against that of nav2_amcl
using a synthetic dataset.
The following plot displays the RSS (Resident Set Size), CPU usage, APE (Absolute Pose Error) and processing latency statistics for both beluga_amcl
and nav2_amcl
, with particle sizes ranging between 250 and 200000 and sensor model likelihood field
.
The following plot displays the RSS (Resident Set Size), CPU usage, APE (Absolute Pose Error) and processing latency statistics for both beluga_amcl
and nav2_amcl
, with particle sizes ranging between 250 and 200000 and sensor model beam
.
Further details can be found in the reports folder here.
Next Steps
See example launch files showing how to run Beluga-based nodes.
See available benchmarks for scripts and comparison with other AMCL implementations.