Open Source Robotics

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

Constraint Manifold

  • 又稱: constraint surface
  • 類別: Planning & manipulation › Trajectory optimisation
  • 標籤: motion-planning, configuration-space, constrained-planning, bimanual-manipulation, sampling-based-planning

滿足一個或多個等式約束(例如讓托盤保持水平)的機器人組態集合;通常是組態空間內一個維度較低的曲面。

定義

約束流形(constraint manifold)是組態空間的一個子集,由滿足等式約束 F(q) = 0 的所有組態 q 所構成。典型的約束會固定末端執行器姿態的一部分:讓杯子保持直立、讓筆貼著白板、在門轉動時讓夾爪一直握著門把,或是在兩隻手握住同一個物體時維持兩手之間的固定轉換。當 k 個約束方程式彼此獨立時,隱函數定理指出,解集合在局部是 n 維組態空間內一個平滑的 (n − k) 維流形。由於它的維度低於周圍的空間,它的體積為零:隨機取樣的組態滿足約束的機率為零。

正是這個性質讓有約束的運動規劃變得困難。PRM 與 RRT 等以取樣為基礎的規劃器會抽取隨機組態,並以直線段把它們連接起來,而這兩個步驟在流形上都會失效,因為樣本落不到流形上,而彎曲流形上兩點之間的直線段會離開流形。有約束的規劃器採用幾種主要策略。投影法取一個流形外的樣本並把它拉回流形上,通常利用約束雅可比矩陣進行牛頓迭代。延拓法或圖冊法在切空間上建立局部座標卡,並沿著它們擴展搜尋。鬆弛法接受流形周圍一條小的容差帶,從而把流形變成一個體積不為零的薄區域。參數化方法在可行時,以一組較少的自由座標直接描述流形,例如在雙手抓持中,以解析逆向運動學由一支手臂的關節算出另一支手臂的關節。

在封閉運動鏈中,包括兩支手臂握住同一個剛體以及平行機構,約束流形是迴路保持封閉的那些組態的集合。軌跡最佳化把同樣的約束當作最佳化問題中的等式約束來處理,而不是當作一個可從中取樣的集合。流形的結構對兩者都很重要:它可能因關節極限或不同的逆向運動學分支而分成彼此分離的分量,而任何連續運動都無法在它們之間穿越。

為何重要

許多有用的任務都帶有約束:搬運開口容器、以兩支手臂移動物體、開門與抽屜,以及在表面上繪圖或擦拭。忽略約束流形零體積結構的規劃器,不是找不到路徑,就是傳回在路徑點之間違反約束的路徑,因此規劃器如何處理流形,在很大程度上說明了它的速度與可靠度。

主要應用

  • 以雙臂操作一個共同的剛體
  • 搬運必須保持直立的物體,例如開口容器
  • 沿著鉸鏈或滑軌打開門、抽屜與閥門
  • 封閉鏈機構與平行機器人的規劃
  • 工具在表面上的運動,例如書寫、擦拭或拋光
  • 手或腳的接觸固定時的人形機器人與足式機器人規劃

實際應用

兩支七關節手臂搬運一個長箱子,兩個夾爪都剛性地握住它。合併後的組態空間有十四維,但兩手之間的固定轉換施加了六個等式約束,因此有效組態位於一個八維的約束流形上。一個以投影為基礎的 RRT 取樣一個隨機組態,以約束雅可比矩陣做牛頓步把它拉回流形上,並沿著每條邊以小步長同時檢查碰撞與約束誤差。另一種做法在可使用解析逆向運動學時採用:在一支手臂的關節加上另一支手臂的冗餘參數上進行規劃,並以封閉形式算出第二支手臂的關節,如此每個樣本依其構造就滿足約束。團隊比較兩種方法在關節極限附近失敗的頻率,因為在那裡投影與封閉形式解都可能沒有有效的答案。

常見誤解

  • 有約束的規劃只需要更多樣本 — 流形的體積為零,因此不論抽取多少隨機樣本,它們幾乎永遠不會落在流形上
  • 只要每個路徑點都滿足約束,整條路徑就滿足約束 — 兩個有效組態之間的直線內插通常會離開彎曲的流形,因此邊也必須檢查或投影
  • 約束流形是一個連通的曲面 — 關節極限與不同的逆向運動學分支可能把它分成任何連續運動都無法連接的分量

誰需要了解

  • 運動規劃工程師
  • 雙臂操作與移動操作研究人員
  • 開發有約束軌跡最佳化器的工程師
  • 學習組態空間的機器人學學生

相關技術

  • 以投影為基礎的約束規劃(Projection-Based Constrained Planning)
  • 以圖冊為基礎的規劃(Atlas-Based Planning)
  • 約束雅可比矩陣(Constraint Jacobian)
  • 牛頓–拉弗森法(Newton–Raphson Method)
  • 隱函數定理(Implicit Function Theorem)

相關術語

  • Configuration Space
  • Kinematic Redundancy
  • Inverse Kinematics
  • Rapidly-exploring random tree
  • Probabilistic Roadmap
  • Graph of Convex Sets

相關專案

  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
  • Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines
  • NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions

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