Open Source Robotics

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

Configuration Space

  • 又稱: C-space, joint space, configuration manifold
  • 類別: Foundations & spatial maths › Kinematics
  • 標籤: motion-planning, kinematics, collision-avoidance, path-planning, robot-arms

機器人所有可能組態所構成的空間,其中每一點都確定每一個關節值或物體姿態,讓運動規劃變成為單一個點尋找路徑。

定義

組態空間(Configuration space),或稱 C 空間(C-space),是機器人所能採取的所有組態的集合,其中一個組態是能完整確定機器人每個部分位置的最少數值集合。對機器手臂而言,它就是關節角度向量;對地面上的移動機器人而言,它是機器人的位置與航向。組態空間的維度等於機器人的自由度數目。

這個概念透過 Tomás Lozano-Pérez 1983 年關於空間規劃的研究,成為運動規劃的核心。其關鍵概念是,實體工作範圍中的障礙物可以對應到組態空間中,成為 C 障礙物(C-obstacles):也就是機器人會發生碰撞的組態集合。剩下的部分就是自由空間。於是,為形狀複雜的機器人規劃無碰撞的運動,就變成在自由組態空間中為單一個點尋找路徑的問題。

組態空間有它自己的形狀。沒有限位的旋轉關節會像圓一樣繞回原處,因此具有數個這類關節的手臂,其 C 空間類似環面,而不是一個平坦的方盒。在平面上移動的剛體,其組態空間結合了兩個平移與一個旋轉。這種結構關係到如何量測距離,以及如何對路徑進行內插。

在高維度的 C 空間中,明確計算 C 障礙物並不實際。機率路線圖(PRM)與快速探索隨機樹(RRT)等以取樣為基礎的規劃器避開了這一點:它們對組態取樣,用正向運動學把機器人的幾何形狀放進工作範圍中,再進行碰撞檢查。以最佳化為基礎的規劃器同樣在 C 空間中運作,同時在工作範圍中評估成本。

為何重要

組態空間是運動規劃的共通語言。理解它,就能明白為什麼一條在工作範圍中看起來很短的路徑,對機器人來說可能很長甚至不可行,也能明白為什麼規劃器取樣的是關節值,而不是末端執行器的位置。

主要應用

  • 機器手臂與移動操作機器人的無碰撞運動規劃
  • PRM 與 RRT 等以取樣為基礎的規劃器
  • 分析可達性與關節限位約束
  • 必須考量自身佔地面積與航向的移動機器人路徑規劃

實際應用

操作團隊以 MoveIt 等框架規劃手臂運動時,規劃器是在手臂的關節空間中運作:它對關節向量取樣,以機器人與場景的碰撞模型逐一檢查,並把有效的樣本連成一條路徑。工程師會設定關節限位並決定哪些關節會繞回原處,選擇一種能適當加權大型近端關節的距離度量,並調整沿每段路徑的碰撞檢查解析度,以免細小的障礙物在樣本之間被漏掉。

常見誤解

  • 組態空間與工作範圍相同 — 工作範圍是末端執行器能到達的實體區域,而組態空間是關節值或物體姿態的空間
  • 規劃器會計算完整的 C 障礙物集合 — 維度稍多時這就不實際,因此大多數規劃器改為檢查取樣得到的組態
  • 組態空間一定是由關節範圍構成的平坦方盒 — 旋轉自由度會繞回原處,使它具有彎曲、週期性的結構

誰需要了解

  • 運動規劃工程師
  • 學習運動學與規劃的機器人學生
  • 整合 MoveIt 等規劃器的軟體工程師

相關技術

  • 運動規劃(Motion Planning)
  • 機率路線圖(Probabilistic Roadmap,PRM)
  • 快速探索隨機樹(Rapidly-exploring Random Tree,RRT)
  • MoveIt
  • 碰撞檢查(Collision Checking)
  • 正向運動學(Forward Kinematics)

相關術語

  • Motion Planning
  • Workspace
  • DOF
  • Inverse Kinematics

相關專案

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • 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

影片

  • Modern Robotics, Chapter 2.3.1: Configuration Space Topology: Northwestern Robotics

維基百科

  • 位形空间

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