Beluga is an extensible C++17 library with a ground-up implementation of the Monte Carlo Localization (MCL) family of estimation algorithms featuring:
- A modular design based on orthogonal components that can be merged together using the mixin pattern.
- Emphasis on the prevention of regressions and facilitation of code improvements through test coverage.
- Semi-automated benchmarks that can be used to validate different configurations.
beluga_andino_demo.mp4
Beluga AMCL running on an Andino robot (Raspberry Pi 4B), go to Ekumen-OS/andino for more details!
This repository contains the following packages:
Package | Description |
---|---|
beluga |
A ROS-agnostic extensible library to implement algorithms based on particle filters. |
beluga_amcl |
A ROS wrapper, providing an executable node and component (or nodelet). It provides interface parity with nav2_amcl (and amcl ). |
beluga_example |
Example launch files, showing how to run Beluga-based nodes. |
beluga_benchmark |
Scripts to benchmark, profile and also compare Beluga with other MCL implementations. |
beluga_system_tests |
System integration tests for Beluga. |
- Get hands-on experience with the getting started tutorial.
- Check the installation guide to test this on a robot.
- Read the contributing guidelines.