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
3 次元空間における剛体運動、すなわちあらゆる回転とあらゆる並進の組み合わせからなる群で、通常 4×4 の同次変換行列で表される。姿勢と姿勢の変化を記述する。
定義
SE(3)、すなわち 3 次元の特殊ユークリッド群(special Euclidean group)は、あらゆる剛体変換を含む。それは、行列式が +1 の 3×3 正規直交行列の群である SO(3) に属する回転 R と、並進ベクトル p の組である。R を左上に、p を右端の列に、[0 0 0 1] を最下行に置いた 4×4 の同次行列で書くと、2 つの運動の合成は行列の積になり、逆元は回転 Rᵀ と並進 −Rᵀp をもつ。SE(3) の要素は、ある座標系に対する別の座標系の位置と姿勢である姿勢(ポーズ)を表すことも、点をある座標系から別の座標系へ運ぶ運動を表すこともできる。自由度は 6 で、回転が 3、並進が 3 である。「特殊」とは鏡映を除外していることを意味する。
SE(3) はリー群(Lie group)、つまり群でもある滑らかな曲がった空間であり、ベクトル空間ではない。2 つの姿勢を足したり、行列を要素ごとに平均したりしても、有効な姿勢にはならない。単位元における接空間であるリー代数 se(3) は、角速度と並進速度をまとめた 6 次元のツイスト(twist)からなる。指数写像はツイストを変換に変え、対数写像はそれを元に戻す。これらの写像は、運動学における指数積公式、SLAM や姿勢グラフのソルバーで使われる多様体上の最適化(更新を小さなツイストとして適用する)、そして姿勢の正しい補間と不確かさの扱いの基礎になっている。平面版の SE(2) は x、y、方位の 3 自由度をもち、移動ロボットや、グリッパーの平行なジョーの間に挟まれた物体のように平面に拘束された物体に使われる。
SE(3) の姿勢は、同次行列として、回転(回転行列、単位クォータニオン、軸角)と並進ベクトルの組として、デュアルクォータニオンとして、あるいはツイスト座標で保存できる。学習では、クォータニオンが各回転を 2 回ずつ覆い、また一部のパラメータ化は不連続であるため、姿勢を出力するネットワークは回転の部分を慎重に扱わなければならない。SE(3) 同変(SE(3)-equivariant)ネットワークは、この群の対称性を構造に組み込んでいるので、入力シーンが回転または並進したときに、出力もそれに整合して変換される。
重要な理由
ロボットにおけるあらゆる座標系、センサの外部パラメータ、エンドエフェクタの目標、物体の姿勢は SE(3) の要素である。これを 12 個の独立した数ではなく群として扱えば、回転行列のドリフト、合成順序の誤り、無効な平均化といったよくあるバグを避けられ、最適化と不確かさの推定が正しくなる。
主な用途
- 順運動学とエンドエフェクタの目標姿勢
- SLAM、ビジュアルオドメトリ、姿勢グラフ最適化
- 把持のための物体姿勢推定
- 姿勢間の軌道の補間
- センサの外部パラメータのキャリブレーション
- マニピュレーションのための同変学習
実際の使われ方
ピッキングのタスクでは、順運動学がベース座標系におけるグリッパーの姿勢を、ハンドアイキャリブレーションがグリッパー座標系におけるカメラの姿勢を、姿勢推定器がカメラ座標系における物体の姿勢を与える。ベース座標系における物体の姿勢は、この 3 つの変換をこの順に掛けたものであり、座標系の命名規則を統一しておけば順序の取り違えを防げる。複数の姿勢推定を融合するとき、チームは行列の要素を平均するのではなく、たとえばクォータニオン平均や接空間での反復平均を使って 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
関連用語
関連プロジェクト
- 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