Skip to content

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.

License

Notifications You must be signed in to change notification settings

Vector-Machines/beluga

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

332 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shows the Beluga logo.

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.
beluga_turtlebot2_demo.mp4

Beluga AMCL running on a Turtlebot 2 robot (Raspberry Pi 4B)

beluga_andino_demo.mp4

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

⚙️ First Steps

About

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.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 86.1%
  • Python 6.7%
  • CMake 2.8%
  • Starlark 1.5%
  • Dockerfile 1.1%
  • Shell 1.1%
  • Other 0.7%