九轴四元数计算和欧拉角换算
最近做惯导的一个项目,需要通过9轴或6轴数据计算欧拉角。
项目实现过程中,采用IMU算法和ARHS进行测试,测试过程中发现很多问题。
九轴数据是通过串口传送到计算机进行处理,通过解析串口协议可以获取到加速度、陀螺仪、磁场九轴的数据,发现以下几个问题:
1.初始数据的加速度和陀螺仪6轴的数据都比较大,磁场3轴的数据则是一个时间一个值,硬件工程师说是零点漂移问题,我也不太懂,不知道是不是这个原因?
2.对原数据进行分析得到四元数,可以发现相邻两个四元数对应位置符号相反
3.我怀疑是他说的零点漂移问题,就将6轴数据相邻两个做差值,作为新的6轴数据,但是计算出的角度变化令人费解,实际角度为90度,而测量出的欧拉角却只有40-60度;
4.角度与实际不相符合,我怀疑是参数设置的原因,我们这边串口是每秒发送10帧数据。于是我就开始测试采样周期,最后在俯仰角找到一个合适的值,但是翻滚角和偏航角的计算角度与实际角度又不相吻合,我瞬间头大了。
不知道是硬件问题还是算法问题?各位有没有相关的经验,期待高手解决!