Open Source Robotics

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

SE(3)

  • 又稱: special Euclidean group, SE3, rigid-body transformation group
  • 類別: Foundations & spatial maths › Frames & transforms
  • 標籤: lie-groups, rigid-body-motion, spatial-math, kinematics, pose-estimation

3D 空間中剛體運動所構成的群,也就是所有旋轉與所有平移的組合,通常寫成 4×4 齊次變換矩陣。它描述姿態與姿態的變化。

定義

SE(3),也就是三維特殊歐幾里得群(special Euclidean group),包含所有的剛體變換:一個來自 SO(3)(行列式為 +1 的 3×3 正交矩陣所構成的群)的旋轉 R,加上一個平移向量 p。寫成 4×4 齊次矩陣(R 在左上角,p 在右側一行,最下面一列為 [0 0 0 1])時,兩個運動的合成就是矩陣乘法,其反元素的旋轉為 Rᵀ、平移為 −Rᵀp。SE(3) 的一個元素可以描述一個姿態,也就是一個座標系相對於另一個座標系的位置與方向,也可以描述把點從一個座標系帶到另一個座標系的一次運動。它有六個自由度,三個旋轉自由度與三個平移自由度;「特殊」代表排除了鏡射。

SE(3) 是一個李群(Lie group),也就是本身也是群的光滑彎曲空間,而且它不是向量空間:把兩個姿態相加,或逐項平均矩陣,都得不到有效的姿態。它在單位元素處的切空間,也就是李代數 se(3),由結合角速度與線速度的六維運動旋量(twist)組成。指數映射把運動旋量轉成變換,對數映射則把它映射回去。這些映射是下列內容的基礎:運動學的指數積公式;SLAM 與姿態圖求解器所用的流形上最佳化,其中的更新以小的運動旋量形式套用;以及姿態的正確內插與不確定性。它的平面對應版本 SE(2) 有三個自由度,即 x、y 與航向,用於移動機器人以及受限在平面上的物體,例如夾在夾爪兩片平行夾爪指之間的物體。

SE(3) 中的姿態可以儲存為齊次矩陣,儲存為一個旋轉(旋轉矩陣、單位四元數或軸角)加上一個平移向量,儲存為對偶四元數,或以運動旋量座標儲存。在學習中,輸出姿態的網路必須小心處理旋轉部分,因為四元數會把每個旋轉涵蓋兩次,而且有些參數化並不連續。SE(3) 等變(SE(3)-equivariant)網路把這個群的對稱性內建在結構中,因此當輸入場景被旋轉或平移時,輸出會一致地跟著轉換。

為何重要

機器人中的每個座標系、感測器外部參數、末端執行器目標與物體姿態,都是 SE(3) 的元素。把它當成一個群,而不是十二個彼此獨立的數字,可以避免旋轉矩陣漂移、合成順序錯誤與無效平均等常見錯誤,並讓最佳化與不確定性估測正確。

主要應用

  • 正向運動學與末端執行器姿態目標
  • SLAM、視覺里程計與姿態圖最佳化
  • 用於抓取的物體姿態估測
  • 在姿態之間內插軌跡
  • 校正感測器外部參數
  • 用於操作的等變學習

實際應用

在一個取放任務中,正向運動學提供夾爪在基座座標系中的姿態,手眼校正提供相機在夾爪座標系中的姿態,姿態估測器則提供物體在相機座標系中的姿態。物體在基座座標系中的姿態,就是這三個變換依此順序的乘積,而一致的座標系命名慣例能避免把順序弄混。融合多個姿態估測時,團隊在 SO(3) 上平均旋轉,例如使用四元數平均或在切空間中反覆求平均,而不是平均矩陣的各項。Sophus、manif 以及 ROS 中的 tf2 等函式庫可以處理這些運算。

常見誤解

  • 姿態可以逐項平均或內插 — 結果通常不是有效的旋轉;平均與內插必須遵守群結構
  • SE(3) 只是把 SO(3) 和一個平移向量並排放在一起 — 元素是一樣的,但合成運動時旋轉會作用在平移上,因此合成規則不同
  • 歐拉角加上位置是安全的通用表示法 — 它們能涵蓋 SE(3),但有奇異點;四元數或旋轉矩陣可以避免這些奇異點

誰需要了解

  • 處理座標系的機器人軟體工程師
  • SLAM 與狀態估測工程師
  • 運動學與操作工程師
  • 預測姿態的機器學習研究人員

相關技術

  • SO(3)
  • 李代數 se(3)(Lie Algebra se(3))
  • 齊次變換矩陣(Homogeneous Transformation Matrix)
  • 四元數(Quaternions)
  • Sophus
  • tf2

相關術語

  • Transform
  • Coordinate Frame
  • Screw Axis
  • Forward Kinematics
  • Pose Graph Optimization
  • Equivariance

相關專案

  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • manif: Header-only C++ Lie theory library for robotics state estimation
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation

維基百科

  • 欧几里得群

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