Motion Primitive
- 又稱: movement primitive, motor primitive, action primitive, skill primitive
- 類別: Planning & manipulation › Motion planning
- 標籤: motion-planning, manipulation, skills, learning-from-demonstration, task-planning
機器人運動的可重複使用構件,例如參數化技能(移動到某個姿態、打開夾爪)或一段短軌跡,規劃器與策略把它們組合成較長的行為。
定義
運動基元(Motion primitives)把機器人行為拆解成可重複使用、可以串接的單元。系統不必在關節指令層級規劃或學習每一個動作,而是以少數參數(例如目標姿態、夾爪開口寬度或推動方向)呼叫一個基元,由基元產生細部的運動。這個術語涵蓋幾個相關的概念,差別在於基元如何表示,以及由什麼在基元之間做選擇。
在操作與任務規劃中,基元是參數化的技能:移動到某個姿態、抓取、放置、推動、倒出、打開或關閉夾爪。任務規劃器、行為樹或語言模型選出一個序列並填入參數;近期有幾個系統讓語言模型撰寫呼叫這類函式的簡短程式。在運動規劃中,基元是預先計算、符合載具動力學的短軌跡片段,格狀規劃器(lattice planner)在規則的狀態網格上把它們接起來,為汽車、移動機器人與無人機搜尋可行路徑。在示範學習中,運動基元是從範例學到、可以調整的軌跡模型:由 Ijspeert、Nakanishi 與 Schaal 發展的動態運動基元(dynamic movement primitives,DMPs),把一次示範編碼成帶有學習所得強制項的穩定動態系統,讓起點與目標可以改變;機率運動基元(probabilistic movement primitives,ProMPs)則表示軌跡上的一個分布。
核心的取捨在於結構與適用範圍之間。固定的基元庫讓行為可預測、可測試,用來規劃也很快,因為規劃器只需在少數離散選擇與其參數上搜尋。但它也把機器人限制在基元庫能表達的範圍內:接觸豐富、需要即時反應或需要緊密協調的動作,可能需要內建回授的基元,或是學習所得的策略。因此,選擇基元的粒度本身就是一項設計決策。
為何重要
運動基元提供規劃器與語言模型一小組經過測試的動作,讓長時域任務變得可以處理。它們把高層決策與底層控制分開,因此每一層都能單獨開發與驗證。
主要應用
- 由任務規劃器或語言模型驅動的操作
- 為載具與無人機進行以格狀為基礎的運動規劃
- 以動態運動基元進行示範學習
- 呼叫可重複使用技能的行為樹
- 長時域的上架、裝箱與組裝
實際應用
一個打造貨架上架系統的團隊定義了一個基元庫,包含推、掃、插入、抓取並放置等基元,每個基元都實作成一個簡短的控制器,帶有接觸點、方向與距離等參數,每個基元也都有執行前檢查的前置條件,以及依力或位置判定的終止條件。一個學習所得的模型預測物體在每個參數化基元作用下如何移動,規劃器在序列與參數上搜尋,機器人執行第一步後重新規劃。在無人機上,同樣的概念以一個短多項式軌跡庫的形式出現:這些軌跡依末端速度取樣,並在每個規劃週期與障礙物地圖比對檢查。
常見誤解
- 運動基元一定是固定、寫死的軌跡 — 許多基元是參數化的或包含回授,而 DMPs 能在執行時適應新的目標
- 使用基元就代表放棄學習 — 基元常常是從示範中學來的,而且會用學習所得的模型來選擇基元並設定參數
- 只要基元庫夠大,任何任務都能解決 — 需要持續、即時反應之接觸的任務,可能超出離散基元所能表達的範圍,而且基元庫本身也需要設計與維護
誰需要了解
- 建立技能庫的操作工程師
- 使用格狀規劃器的運動規劃工程師
- 從事示範學習的機器人學習研究人員
- 把語言模型或任務規劃器連接到機器人的開發者
相關技術
- 動態運動基元(Dynamic Movement Primitives,DMP)
- 機率運動基元(Probabilistic Movement Primitives,ProMP)
- 狀態格狀規劃器(State Lattice Planner)
- 行為樹(Behavior Trees)
- 任務與運動規劃(Task and Motion Planning)
- 技能庫(Skill Libraries)
相關術語
- Motion Planning
- Trajectory Planning
- Task and Motion Planning
- Task Planning
- Imitation Learning
- Behavior Tree
相關專案
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
- BehaviorTree.CPP: C++ behavior tree library for robot task planning, powering Nav2 and ROS 2 systems
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design