SkillAgentSearch skills...

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.

Install / Use

/learn @Ekumen-OS/Beluga
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Ekumen-OS/beluga/assets/33042669/45f1d364-4c93-48b8-8912-f5b879ecc76a"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/Ekumen-OS/beluga/assets/33042669/83b32f5b-9102-4266-83bd-33c0427cb208"> <img alt="Shows the Beluga logo." src="https://github.com/Ekumen-OS/beluga/assets/33042669/83b32f5b-9102-4266-83bd-33c0427cb208"> </picture>

Colcon CI pipeline Bazel 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:

  • A modular design based on orthogonal components.
  • 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.

https://github.com/user-attachments/assets/59bca7ea-fe78-4460-b058-96a5c75d09ec

<p align="center"><i><b>Beluga AMCL</b> running on a <b>Turtlebot 2</b> robot (Raspberry Pi 4B)</i></p>

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

<p align="center"><i><b>Beluga AMCL</b> running on an <b>Andino</b> robot (Raspberry Pi 4B), go to <a href="https://github.com/Ekumen-OS/andino">Ekumen-OS/andino</a> for more details!</i></p>

📦 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).<br> 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. | | beluga_vdb | A library extension for beluga facilitating the use of OpenVDB for 3D localization. |

⚙️ First Steps

View on GitHub
GitHub Stars315
CategoryDevelopment
Updated3d ago
Forks32

Languages

C++

Security Score

100/100

Audited on Apr 2, 2026

No findings