Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

ROS Motion Planning

以 ROS 外掛形式實作 40 多種經典與以學習為基礎之機器人路徑規劃器的單一儲存庫

授權條款

GPL-3.0

概述

ros_motion_planning 是一套完整的機器人運動規劃演算法集,以 ROS 導航堆疊外掛的形式實作:全域規劃器從 A、Theta、D 與 JPS 到 RRT、Informed RRT* 與 Voronoi 規劃器;區域規劃器包括 DWA、TEB 風格、PID、LQR 與 MPC;曲線生成(Bezier、Dubins、Reeds-Shepp、B-spline);以及 DDPG 等以學習為基礎的規劃器。每個演算法都在相同的 Gazebo/RViz 環境中執行,使它成為在相同基準上比較規劃器時格外實用的參考。

這個儲存庫將數十種規劃器包裝在標準的 ROS nav_core 外掛介面之後,因此任何演算法都能直接放進 move_base(ROS 1)中(另有配套的 ROS 2 實作),並在相同的代價地圖、機器人與 Gazebo 世界中測試。全域規劃涵蓋圖搜尋(Dijkstra、A、D、LPA、D Lite、Theta、Lazy Theta、JPS、GBFS)、取樣式方法(RRT、RRT、Informed RRT、RRT-Connect)、智慧/演化式方法(ACO、GA、PSO),以及 Voronoi 圖規劃。區域規劃涵蓋 PID、DWA、APF、LQR 與 MPC 控制器,曲線生成模組則實作 Dubins、Reeds-Shepp、Bezier 與 spline 路徑。以學習為基礎的規劃器(例如以 DDPG 為基礎的強化學習導航)則讓整套工具更完整。Docker 映像、大量逐一演算法的動畫,以及配套的 Python 視覺化儲存庫,讓它既適合作為課程參考,也適合作為開發生產用規劃器的起點。

為何重要

這是經典運動規劃演算法在可運作的 ROS 程式碼中最完整的單一實作:論文中通常只以虛擬碼呈現的教科書演算法,在這裡全都在一致的堆疊中實際執行,這也是它成為導航工程師與機器人學生首選參考的原因。

解決的問題

要公平比較路徑規劃器,必須把每一種都實作在同一個導航堆疊中,這需要好幾個月的外掛工程。ros_motion_planning 已經為 40 多種演算法完成這項工作,讓規劃器的選擇與教學只需更改設定。

重點

  • 40 多種規劃器:圖搜尋、取樣式、演化式、曲線生成、以學習為基礎
  • 全部以標準的 ROS 導航外掛實作,可在相同的 Gazebo/RViz 環境中執行
  • 支援 ROS 1 與 ROS 2,並提供 Docker 映像以便快速上手
  • 區域規劃器包括 DWA、APF、PID、LQR 與 MPC 控制器
  • 配套的 Python 儲存庫提供對應的演算法視覺化,方便學習

適用對象

  • 為自主移動機器人(AMR)/AGV 選擇規劃器的導航工程師
  • 學習路徑規劃演算法的機器人學生
  • 以經典演算法評測新規劃器的研究人員
  • 建立運動規劃課程的教育者

限制

  • 重廣度而非深度:個別規劃器是參考實作,並非經過調校的生產用控制器
  • GPL-3.0 授權限制了閉源再利用
  • 主要針對 2D 輪式機器人導航(不含操作規劃)

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。