姿态解算与左右手坐标系
一般姿态解算都是使用右手坐标系,但是unity中是左手坐标系,这样的话,硬件产生的四元数直接输入到unity中,姿态是无法对应的,一种方法是调整四元数的顺序和正负号来达到姿态一致。
今天想到是否可以直接使用左手坐标系做姿态解算,是不是就可以直接被unity应用。于是把imu的原始数据的坐标轴改成了左手坐标系,然后直接做姿态解算,最终发现姿态解算的结果根本就不对。
结论:
- 姿态解算算法本来就是基于右手坐标系做的,常规运算,比如四元数和向量的乘法,不改变算法就直接更换坐标系,得到的是错误结果。所以如果直接应用左手坐标系的原始数据,是无法得到正确姿态的。
- 如果想用左手坐标系的输入,得到正确结果,需要修改算法,把右手坐标系的运算都改成左手坐标系才行。