Ekumen-OS / beluga

A general implementation of Monte Carlo Localization (MCL) algorithms written in C++17, and a ROS package that can be used in ROS 1 and ROS 2.
https://ekumen-os.github.io/beluga/
Apache License 2.0
165 stars 10 forks source link
c-plus-plus robotics ros ros2
Shows the Beluga logo.

CI pipeline codecov pre-commit License Apache-2.0

[!TIP] For the latest stable version of our codebase, please refer to the release branch. If you are interested in ongoing development and cutting-edge features, the main branch is the place to be.

šŸŒ Overview

Beluga is an extensible C++17 library with a ground-up implementation of the Monte Carlo Localization (MCL) family of estimation algorithms featuring:

https://github.com/Ekumen-OS/beluga/assets/33042669/98bda0ee-a633-4e35-8743-72a9ab30b494

Beluga AMCL running on an Andino robot (Raspberry Pi 4B), go to Ekumen-OS/andino for more details!

šŸ“¦ Packages

This repository contains the following packages:

Package Description
beluga A ROS-agnostic extensible library to implement algorithms based on particle filters.
beluga_ros A ROS library, providing utilities to interface ROS with Beluga.
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.

āš™ļø First Steps