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.
Beluga – C++17 蒙地卡羅定位函式庫
什麼是 Beluga – Beluga 是一個**&extensible C++17 library&,實作了蒙地卡羅定位 (MCL) 系列的粒子濾波器演算法。它的設計是&ROS-agnostic&**,提供可選的 ROS 綁定,並針對需要可靠位姿估計的機器人(例如 TurtleBot 2, Andino)進行開發。程式碼庫經過嚴格測試,並包含基準測試工具。
關鍵組件
| Package | Role |
|---|---|
beluga |
核心,與 ROS 無關的函式庫 – 提供通用的粒子濾波器框架與工具。 |
beluga_ros |
薄層 ROS 封裝 – 讓 ROS 節點可以使用核心函式庫(訊息轉換、參數處理)。 |
beluga_amcl |
即插即用的 ROS 節點/組件,其介面與流行的 nav2_amcl/amcl 套件相容,使遷移非常容易。 |
beluga_example |
展示如何在機器人上啟動基於 Beluga 的 AMCL 節點的範例啟動檔。 |
beluga_benchmark |
用於效能分析與將 Beluga 與其他 MCL 實作進行比較的腳本。 |
beluga_system_tests |
在模擬或真實硬體上執行整個堆疊的整合測試。 |
beluga_vdb |
可選的擴充功能,將 OpenVDB 整合進函式庫,實現 3D 體素化定位。 |
為什麼重要
- 模組化設計 – 演算法是由正交組件(運動模型、感測器模型、重採樣等)建構而成,因此您可以隨時更換零件而不必重寫整個濾波器。
- 測試驅動開發 – CI 流水線(Colcon, Bazel)與程式碼覆蓋率標籤顯示了對回歸安全性(regression safety)的高度關注。
- 開箱即用的基準測試 –
beluga_benchmark套件讓開發者可以量化不同配置下的延遲、記憶體使用量與精確度。 - ROS 相容性 – 雖然核心是獨立於 ROS 的,但
beluga_ros與beluga_amcl套件提供了現有 ROS 導航堆疊的直接替換方案。 - 透過 OpenVDB 支援 3D –
beluga_vdb擴充功能使得在體積圖中執行粒子濾波器變得可行,這對無人機或足式機器人非常有用。
典型工作流程
- 將函式庫加入 您的 CMake 工作空間(支援 Colcon 與 Bazel 建置)。
- 設定粒子濾波器,從核心套件中選擇運動模型與感測器模型。
- 使用
beluga_ros進行 ROS 封裝,如果您需要主題/服務,或者在自定義的 C++ 程式中執行獨立的濾波器。 - 啟動
beluga_amcl節點(或您自己的節點)並使用與nav2_amcl參數格式相容的 YAML 檔。 - 驗證 使用提供的系統測試或基準測試套件。
入門指南 – README 指向了線上文件網站 (https://ekumen-os.github.io/beluga) 以獲取詳細的建置指令、API 參考與範例啟動檔。歡迎透過 CONTRIBUTING.md 指南進行貢獻。
Beluga 是專注於蒙地卡羅定位的真實、生產等級的機器人函式庫,而非通用的 AI/LLM 專案。",
相關
- 專案
- 專案
- 專案
- 專案
- 專案