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變換矩陣意外混用。
  • 向量化: 支援單行內建立與操作旋轉矩陣或姿態的序列。
  • 可視化: 內建工具用於繪製變換(trplot)與製作動畫(tranimate)。
  • 符號支援: 與SymPy相容,支援使用符號變數進行數學推導。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案