scipy与MATLAB中四元数的不同之处
摘要
除了参数顺序不同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)对应四元数
xi+yj+zk+wxi+yj+zk+w xi+yj+zk+w
但是满足的是奇怪的JPL convention,例如
ij=−kij=-k ij=−k
Wikipedia中不推荐使用这种 JPL convention
matlab
quaternion(a,b,c,d)函数since R2019b才有,对应四元数
a+bi+cj+dka+bi+cj+dk a+bi+cj+dk
满足的是常见的四元数定义:
ij=k(i2=j2=k2=ijk=−1)ij=k\\\\ ( i^2 = j^2 = k^2 = ijk = −1) ij=k(i2=j2=k2=ijk=−1)