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兼容,支持使用符号变量进行数学推导。

相关

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