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

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

関連用語

  • 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を有効にしてください。