我想根据加速度计和陀螺仪数据估算偏航角。对于侧倾和俯仰估计,我使用了以下三角方程:

roll  = atan2(Ax,Az)  * RAD_TO_DEG
pitch = atan2(Ay,Az)  * RAD_TO_DEG


和卡尔曼滤波器的简化版本也考虑了角速率。侧倾和俯仰估计是准确的(加速度计的值需要在存在底盘振动的情况下进行过滤)。



为了获得偏航角,我正在使用以下方程式:

yaw = atan2(Ax,Ay)  * RAD_TO_DEG;


但是它不起作用。您有什么建议吗?

#1 楼

陀螺仪只会为您提供偏航角的变化率,而不是绝对偏航角的变化率。

除非您计划最初设置偏航角并将其逐渐漂移到垃圾值中(当您集成变化率时),否则您将需要另一个传感器来定期更新实际值偏航。这可以是磁力计(罗盘),GPS或一对GPS,或其他一些查找航向的方法,这些方法可以为校正算法(例如塞巴斯蒂安·麦格威克滤波器)提供输入。

评论


$ \ begingroup $
麦格威克过滤器怎么样?它可以从6自由度IMU测量偏航角,并且不会漂移。不知道它是如何工作的...
$ \ endgroup $
– UserK
15年3月30日在8:00

$ \ begingroup $
我的理解是Madgwick滤波器使用磁力计和加速度计来防止陀螺仪测量中的漂移。
$ \ endgroup $
–伊恩
15年3月30日在12:37

$ \ begingroup $
我注意到该滤波器也可以在6自由度(acc +陀螺仪)上运行,并且可以估算出偏航角。我正在使用MPU6050和该库。
$ \ endgroup $
– UserK
2015年3月30日15:17



$ \ begingroup $
我应该写“磁力计和/或加速度计”。这些传感器没有固有的漂移,因此可以将它们与陀螺仪测量结果融合在一起,以校正那里的漂移。
$ \ endgroup $
–伊恩
2015年4月2日,12:56

#2 楼

假设您的车辆与地面大致水平,那么您将无法从加速度计获得良好的偏航估计。考虑一下名义情况:当加速度计笔直指向下方(Ax = 0,Ay = 0,Az = g)时,读数将不会随着您改变偏航角而改变。

通常,要使用偏航角仪(测量地球的磁场)或摄像头来追踪偏航角车辆。

评论


$ \ begingroup $
不幸的是,由于注意到电机的磁场,角位不稳定,因此我丢掉了磁力计。防护罩周围有4个无刷电机。这就是为什么我要估算侧倾,俯仰和偏航的原因
$ \ endgroup $
– UserK
14-10-5在23:09



$ \ begingroup $
是的,这是一个普遍的问题。通过使用非常低的带宽过滤器,可以在某种程度上解决该问题。
$ \ endgroup $
–ryan0270
14-10-5在23:11

$ \ begingroup $
我应该尝试过。我必须过滤加速度计的数据以抑制引起相同问题的噪声。现在我改变了电路,磁力计不再放置。最后一个公式不正确吗?
$ \ endgroup $
– UserK
2014年10月5日23:15

$ \ begingroup $
我认为这是正确的(虽然不确定,但必须进一步考虑),但是对于Ax = 0和Ay = 0来说它是未定义的,并且由于您接近悬停,所以Ax和Ay都接近于零,所以噪音占主导地位。
$ \ endgroup $
–ryan0270
2014年10月5日23:58

$ \ begingroup $
我什至不能支持你...代表不够。我不能在此应用程序中使用相机。我认为唯一的解决方案是完整的卡尔曼滤波器...我需要检查此链接
$ \ endgroup $
– UserK
14-10-6在0:21



#3 楼

偏航可以通过速率陀螺仪和磁力计来测量,而不能使用加速度计,因为加速度计的值取决于重力分量,但取决于z轴的旋转,重力分量没有变化

评论


$ \ begingroup $
那么6自由度mpu 6050如何估算偏航角呢?它只有一个加速度计和一个陀螺仪,并且产生了非常好的偏航角估计
$ \ endgroup $
– UserK
15年3月30日在7:56

$ \ begingroup $
我不是很了解,但是据我所知,您可以将加速度计数据与陀螺仪数据融合在一起以获得更精确的读数,因为当您旋转设备时,加速度计数据很有意义(重力不再向下看) ,您可以使用它来说“嘿,我太倾斜了”)。相反,如果您正在使用偏航,则绕偏航旋转不会影响重力矢量,因此它没有用。
$ \ endgroup $
–瓦尔蒂
16年5月5日在7:59