MEMS传感器传输出的直接数据中含有大量的噪声,且传感器数据本身也不断在漂移,所以必须要对信号进行滤波。MIT两轮自平衡机器人设计了互补滤波器,对加速度计和陀螺仪的信号进行处理,并最终得到机器人的角度和角速度。
陀螺仪能直接测量出角速度,并且通过程序循环,利用下限积分或者利用速度与时间间距增量相乘得到角度的增量变化值来估算出角度值,但这种方法会导致漂移,所以没有采用,如果传感器没有完全的调零,角度会随时间缓慢变化。
为了尽量避免漂移的影响,角度计算需要两种传感器的值进行融合。先为加速度计数据创建一个低通滤波器,为了方便控制,MIT采用了简单的硬件解决方案—RC滤波,产生一个低通滤波器以消除高频短周期的加速度信号,并只允许低频较长周期的重力信号通过。而陀螺仪数据则通过数字积分和高通滤波器处理后,与加速度数据融合,得到最后的角度值。
优点:①可以修正噪声、漂移和对水平加速度的依赖;②快速估计角度,响应比单独的低通滤波器要快;③算法简单。
缺点:比起简单的滤波器,需要了解更多的理论知识,但没有卡尔曼滤波器那么复杂。
滤波波形中,滤波器的时间常量是信号会作用的相对时间。对于低通滤波器,周期比时间常数大得多的信号可以平稳通过,而周期比时间常数短的信号则会被滤出,高通滤波器恰好与之相反。以dt的采样周期运行程序一个循环,会发现
因此,只要已知需要的时间常数τ和采样周期dt就可以计算出滤波器的常数a,互补滤波器把两部分数据融合相加成为一个滤波器,因此其输出量是准确且具有一定意义的线性估计。如果进一步研究这个互补滤波器,得到的角度计算结果为假设滤波器在每秒执行100次的循环里运行,低通和高通滤波器的时间常数将会是
该公式确定了陀螺仪和加速度计的预期起作用的界限。当时间周期小于0.5s的时候,陀螺仪的积分起主要的作用,而加速度计的噪声将会被滤除。当时间周期大于0.5s的时候,加速度计的平均值就比陀螺仪占更多的权重,但在该点位可能会有漂移。(www.xing528.com)
对于大部分人来说,设计这个滤波器常用方式为:首先,定一个时间常数,然后用它去计算滤波器系数;其次,根据时间常数可以调整响应的快慢。假如陀螺仪每秒漂移2°(假设的最坏估计),这时为了保证在每个方向的漂移不会超过几度,可能需要一个小于1s的时间常数。但是时间常数越小,较多水平方向的加速度的噪声信号就会被更多地引入到系统之中。和很多的控制模型一样,最好的折中方案和唯一的调整方法就是需要通过反复实验来确定。
记住,要想得到合适的滤波器系数,采样率是很重要的。如果改变程序时增加了较多的浮点运算,两个因素中的一个都会使采样率下降,使时间常数上升,除非重新计算滤波器条件。例如,假设用26.2ms更新程序循环,如果想要的时间常数是0.75s,滤波器的参数将会是
此时角度计算结果为angle=(0.966)*(angle+gyro*0.0262)+(0.034)*(x_acc)。
第二个滤波器系数为0.034,即为(1-0.966)的剩余值。
在这种滤波中,对陀螺仪恒定误差的影响是值得关注的。它肯定不会造成漂移的问题,但它仍然可以影响角度的计算。举例来说,选择了错误的偏移量,而当静止时,陀螺仪读出的是5°/s的旋转速度。在数学上可以证明,这种情况对角度估计值的影响等于偏移速率乘以时间常数。因此,假定时间常数为0.75,故恒定的角度偏移量为3.75°。除此之外还有一种最坏的情况,即陀螺仪根本不会有如此大的偏差,那么恒定的角度偏移比漂移的角度偏移更容易处理。比如,当恒定的角度偏移量为3.75°时,将加速度计反向旋转3.75°就可以调节好。
其实大多数自平衡机器人都可以使用数字滤波器,数字滤波器结合加速度计和陀螺仪数据可以得到更清晰的、快速的角度估计值,如卡尔曼滤波器,只是更为复杂而已。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。