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),用于可视化变换和轨迹。
相关
- 项目
- 项目
- 项目
- 项目
- 项目