Open Source Robotics

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

Motion Planning

  • 又稱: Path Planning, Trajectory Planning
  • 類別: Planning & manipulation › Motion planning
  • 標籤: planning, navigation

計算機器人從起始配置到目標配置之無碰撞路徑的演算法。

定義

運動規劃演算法為機器人計算在不同構型之間移動的無碰撞路徑。方法包括基於取樣(RRT、PRM)、基於最佳化(CHOMP、TrajOpt)與基於學習的方法。對自主導航與操作至關重要。

為何重要

運動規劃找出一條從機器人所在位置到它需要前往之處的路徑,過程中不撞到任何東西,無論是它自己、它的工作範圍,還是人。正是它區分了只需告知目標的機器人,以及必須親手教導每個中間位置的機器人。這個問題確實很難,因為要搜尋的空間是所有關節配置的空間,對六關節手臂而言是六維的,而世界中的障礙物在其中會變成形狀怪異的禁止區域。

主要應用

  • 在雜亂工作範圍中進行無碰撞的手臂運動
  • 移動機器人導航,在已建圖的環境中規劃路線
  • 取放序列,分別規劃接近、抓取與撤離
  • 多支手臂共用工作範圍時的多機器人協調
  • 因應新偵測到的障礙物重新規劃
  • 在投入硬體之前,於單元設計期間進行可行性檢查

實際應用

搭配 RRT-Connect 等 OMPL 取樣式規劃器的 MoveIt,是手臂的標準解法:它隨機取樣配置、檢查是否碰撞,再把它們連接成一條路徑,然後對結果取捷徑並加以平順化。取樣解釋了人們覺得意外的行為:規劃無法重現,同一個請求每次都可能產生不同的路線。它也解釋了典型的失效:狹窄的通道(例如伸手進箱子裡)只能碰巧被找到,所以規劃器可能在一個人眼看來顯然可行的任務上逾時。

常見誤解

  • 規劃器會找出最短路徑:取樣規劃器找出的是一條有效路徑,後處理只是把它縮短
  • 規劃是確定性的:除非設定種子,否則大多數取樣規劃器每次執行都會產生不同的路徑
  • 規劃失敗代表目標無法到達:這往往代表規劃器在時間預算內沒有找到那條狹窄的通道
  • 規劃已考慮動力學:大多數規劃器是幾何的,速度、加速度與負載都是之後才套用

誰需要了解

  • 任何以目標指揮手臂、而非教導固定路徑點的人
  • 設定 MoveIt、Nav2 或類似堆疊的開發者
  • 調查規劃逾時或走奇怪路線之問題的工程師
  • 學習配置空間與以取樣為基礎之搜尋的學生
  • 任何設計手臂必須伸入狹窄空間之工作單元的人

相關技術

  • RRT 與 RRT*(Rapidly-exploring Random Trees)
  • PRM(Probabilistic Roadmap)
  • A* 與 Dijkstra 演算法
  • MoveIt(ROS 運動規劃框架)
  • OMPL(Open Motion Planning Library)
  • 軌跡最佳化(TrajOpt、CHOMP)
  • 配置空間表示法
  • 碰撞偵測(FCL、Bullet)

相關術語

  • Inverse Kinematics
  • PID Controller

相關專案

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
  • IR-SIM: Lightweight pure-Python 2D robot simulator for navigation, control and RL research

影片

  • Path Planning with A* and RRT | Autonomous Navigation: MATLAB

維基百科

  • 运动规划

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