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(姿态)。
  • 2D空间:SE2(姿态)、SO2(方向)和 Twist2(姿态)。

这些类支持使用 * 进行组合、点变换和逆运算的重载操作符。它还提供了归一化、欧拉角与滚转-俯仰-偏航之间的转换工具,以及通过矩阵指数和对数运算与李代数的连接。对于偏好原始数据的用户,还提供了一组直接操作NumPy数组的低级基础函数。

适用人群

专为从事机器人视觉和运动控制的机器人学研究人员、工程师和学生设计,他们需要在Python中执行空间变换。

主要亮点

  • 类型安全:防止将2D变换与3D旋转矩阵混淆的错误。
  • 向量化:支持在单行代码中创建和操作姿态或旋转序列。
  • 符号支持:与SymPy集成,允许在旋转矩阵中使用符号变量。
  • 可视化:包含内置的绘图和动画工具(trplot, tranimate),用于可视化变换和轨迹。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目