摘要
除了参数顺序不同scipy:(x,y,z,w),matlab(a,b,c,d)以外,scipy.spatial.transform.Rotation中的四元数是Shuster’s convention(JPL convention),与MATLAB中的四元数定义完全不同!!!
scipy
scipy.spatial.transform.Rotation中的from_quat(x,y,z,w)对应四元数
x i + y j + z k + w xi+yj+zk+w xi+yj+zk+w
但是满足的是奇怪的JPL convention,例如
i j = − k ij=-k ij=−k
Wikipedia中不推荐使用这种 JPL convention
matlab
quaternion(a,b,c,d)函数since R2019b才有,对应四元数
a + b i + c j + d k a+bi+cj+dk a+bi+cj+dk
满足的是常见的四元数定义:
i j = k ( i 2 = j 2 = k 2 = i j k = − 1 ) ij=k\\ ( i^2 = j^2 = k^2 = ijk = −1) ij=k(i2=j2=k2=ijk=−1)