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