> 文章列表 > scipy与MATLAB中四元数的不同之处

scipy与MATLAB中四元数的不同之处

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)