Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

No version for distro github showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.0
License Apache License 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description 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.
Checkout URI https://github.com/Ekumen-OS/beluga.git
VCS Type git
VCS Version main
Last Updated 2025-11-25
Dev Status DEVELOPED
Released RELEASED
Tags c-plus-plus robotics ros ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A generic MCL library for ROS2.

Additional Links

No additional links.

Maintainers

  • Gerardo Puga
  • Ivan Paunovic
  • Nahuel Espinosa
  • Andres Brumovsky

Authors

No additional authors.

Beluga

Beluga is a ROS-agnostic C++17 library that provides implementations for Monte Carlo-based localization algorithms widely used in robotics applications. Its modularity allows users to compose solutions from reusable modules and to combine them with new ones to configure the MCL algorithm that best suits their needs.

Features

The current set of features includes:

  • Particle containers:
  • Composable range adaptor views, actions, and algorithms:
    • Multivariate normal distributions in SE(2) and SE(3) space
    • Multivariate uniform distributions in SE(2) compatible with occupancy grids
    • Multinomial resampling from a particle range
    • Adaptive KLD resampling
    • Selective resampling, on-motion resampling, and interval resampling policies
    • Support for sequential and parallel execution policies
    • Weighted mean and covariance statistics for pose estimation
  • Sensor models:
    • Likelihood field model
    • Beam model
    • Landmark-based models (using landmark position or bearing)
  • Motion models:
    • Differential drive model
    • Omnidirectional model

Documentation

Auto-generated Doxygen documentation can be found in https://ekumen-os.github.io/beluga/.

Dependencies

Beluga is built on top of the following open source libraries:

  • Eigen: A well-known C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Sophus: A C++ implementation of Lie groups using Eigen.
  • Range: The basis library for C++20’s std::ranges.
  • libciabatta: A composable mixin support library.
CHANGELOG

Changelog for package beluga

2.1.0 (2025-11-25)

  • Beluga compiles with MSVC on Windows (#523)
  • Add support for Bazel builds (#521)
  • Expose model_unknown_space parameter to ROS2 (#448)
  • Add likelihood prob sensor model and enable Beluga's flavour of clustering (#476)
  • Add 2D state type to likelihood field sensor model for beluga_vdb (#480)
  • Fix to likelihood map pre-calculation performance for large maps (#471)
  • Contributors: Diego Palma, Gerardo Puga, Nahuel Espinosa, Pablo Vela, Florencia Battocchia

2.0.2 (2024-06-18)

  • Use [no-gnu-zero-variadic-macro-arguments]{.title-ref} only with [clang-tidy]{.title-ref} (#391)
  • Add 3D NDT sensor model and tests. (#400)
  • Expand grid concepts to n dimensions (#396)
  • Add cast from [hsize_t]{.title-ref} to [size_t]{.title-ref} (#392)
  • Contributors: Nahuel Espinosa, Ramiro Serra

2.0.1 (2024-05-24)

  • Support 32-bit hashes (#386)
  • Rewrite [make_from_state]{.title-ref} as a function object (#384)
  • Contributors: Alon Druck, Nahuel Espinosa

2.0.0 (2024-05-21)

  • Please clang-tidy on Ubuntu Noble (#379)
  • Add ROS 2 Jazzy to CI/CD and dev workflows (#378)
  • Restore particle cloud visualization using markers (#377)
  • Ensure we exercise random state generation every time (#371)
  • Add example for NDT sensor model in beluga_example (#360)
  • Unify Beluga documentation (#346)
  • Transition Beluga to Noble with Rolling (#349)
  • Provide sensible defaults for LikelihoodFieldModelParam (#344)
  • Add a core AMCL pipeline (#343)
  • Add NDT sensor model (#338)
  • Add sparse value grid implementation (#336)
  • Add HDF5 dependency to beluga core (#335)
  • Deprecate all the (mixin) things (#330)
  • Add death tests and build in debug mode (#323)
  • Remove (unused) cluster customization point object (#331)
  • Fix landmark models probability aggregation formula (#329)
  • Add AMCL implementation for ROS (#327)
  • Migrate sensor models to functional form (#325)
  • Use AlignedBox3d as LandmarkMapBoundaries (#326)
  • Relocate [make_random_state()]{.title-ref} method (#324)
  • Add uniform distribution with bounding regions (#322)
  • Migrate motion models to functional form (#321)
  • Add generic circular array container (#320)
  • Add uniform free-space grid distribution (#319)
  • Make test matchers and printers available to users (#300)
  • Extend multivariate distribution to support different result types (#298)
  • Add normalize action (#297)
  • Extend sample view to sample from random distributions (#296)
  • Add recovery probability estimator (#295)

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged beluga at Robotics Stack Exchange