rai-opensource/spatialmath-python

Create, manipulate and convert representations of position and orientation in 2D or 3D using Python

何を解決するか

空間数学はロボット工学とロボットビジョンの基盤であり、開発者が2Dまたは3D空間内の物体の位置、向き、ポーズを記述できるようにします。このライブラリは、手動で行列を管理することなく、これらの複雑な幾何学的変換を標準化された型安全な方法で扱うことを可能にします。

動作方法

このライブラリは、NumPy配列を数学的群に抽象化する高レベルなクラスを提供します。異なる次元と表現形式に応じて特定のクラスを使用します:

  • 3D空間: SE3(ポーズ)、SO3(向き)、UnitQuaternion(向き)、Twist3(ポーズ)、UnitDualQuaternion(ポーズ)。
  • 2D空間: SE2(ポーズ)、SO2(向き)、Twist2(ポーズ)。

これらのクラスは、合成(*)、点変換(*)、指数(**)のオーバーロード演算子をサポートしており、正規化、逆変換、オイラー角、ロールピッチヨー、角度軸形式間の変換メソッドも提供します。また、NumPy配列を直接操作したいユーザー向けの低レベル関数も含まれており、SymPyによる記号変数もサポートしています。

対象ユーザー

空間変換やポーズ推定を実行する必要があるロボット工学の研究者やエンジニア、および『Robotics, Vision & Control』教科書を使用する学生向けに設計されています。

特徴

  • 型安全: 2Dと3Dの変換行列を誤って混同するのを防ぎます。
  • ベクトル化: 1行で回転行列やポーズのシーケンスの作成と操作が可能です。
  • 可視化: 変換のプロット(trplot)やアニメーションの作成(tranimate)を内蔵したツールを提供します。
  • 記号サポート: SymPyと互換性があり、記号変数を使用した数学的導出が可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト