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 以浏览我们的开源机器人项目。