四元数是一个四部分的超复数,用于描述三维旋转和方向。四元数在许多领域都有应用,包括航空航天、计算机图形学和虚拟现实。在自动驾驶中,惯性测量单元(IMU)等传感器以四元数的形式传递方向读数。要将这些数据用于定位, 可以使用四元组对象捕获它,对其进行数学运算,或将其转换为其他旋转格式,如欧拉角和旋转矩阵。
可以使用四元数来执行三维点和框架旋转。
- 使用点旋转, 可以在一个静态参考框架中旋转点。
- 使用框架旋转, 可以围绕静态点旋转参考框架,将框架转换为相对于点的坐标系。
可以通过使用旋转轴和关于该轴的旋转角度来定义这些旋转。四元数封装了旋转轴和旋转角,并有一个代数来操作这些旋转。四元数对象使用 "右手规则 "约定来定义旋转。也就是说,从原点看,正旋转是绕旋转轴顺时针旋转。
四元数格式
四元数用这种形式表示:
a、b、c、d是实数。这些系数被称为四元数的部分系数。
i、j和k是四元数的复数元素。这些元素满足以下公式:
四元数部分a、b、c、d指定了旋转的轴和角度。对于以单位向量[x,y,z]为代表的围绕旋转轴旋转的ɑ弧度,描述旋转的四元数由这个公式给出。
四元数创建
可以通过多种方式创建四元素数据。例如,通过指定其部分来创建一个四元数。
q = quaternion(1,2,3,4)
q =
quaternion
1 + 2i + 3j + 4k
可以用同样的方法创建四元数组。例如,通过指定四个 2 乘 2 矩阵来创建一个 2 乘 2 的四元数组。
qArray = quaternion([1 10; -1 1], [2 20; -2 2], [3 30; -3 3], [4 40; -4 4])
qArray =
2x2 quaternion array
1 + 2i + 3j + 4k 10 + 20i + 30j + 40k
-1 - 2