轮速计的滤波实现

背景

公司的地图车在经过隧道等高精定位失效的场景时,而基于imu会出现累计漂移等问题,而车辆自身的码表又不够精确,故采用后装轮速计进行速度补偿。

问题

实际采集出的轮速计数据如图所示:

注:这是大概1个小时的采集数据,采样频率是100hz,每个采样点都是10ms内采集到的轮速数据,车胎转一圈就是2000个脉冲。

下图是局部放大图:

进一步选择局部放大:

再次放大:

可以看到:采集到的数据存在大量噪声。

原因分析

1、地图车平台使用linux系统(ubuntu),通过串口定时发送采样命令,然后通过串口接收采样数据,因为linux的实时性问题,导致无法精确的控制采样命令准时发送。

2、更为重要的原因是,公司选用的轮速计采集设备性能差,实时响应差,无法达到10ms一次的稳定采样。

解决方案

1、更换硬件,使用硬件自动采样的模式进行数据采集,严格保证100hz的采样频率。优点:精确度极好。缺点:实施周期长,成本高。

2、使用软件进行滤波。优点:实现方便。缺点:精度不及优化硬件来的高。

效果分析

基于现场环境,先采用软件滤波的方案进行处理。

初次滤波

分析数据标本的噪声特点,由于是离散采用,数据的变化量都是整数(脉冲个数),而且噪点的变化很快,持续时间最多也就两三个采样周期,所以想到一种简单的滤波方法做为初次滤波:

滤波原理如下:如果当前采样值 > 上次采样值,则用上次采样值加1做为当前采样值;如果当前采样值 < 上次采样值,则用上次采样值减1做为当前采样值;否则,直接用上次采样值做为当前采样值。

之所以采用加1或者减1的方式,是因为车辆的加速度不会超过±1g,对应到轮速计脉冲采集上,差不多就是在10ms内最多变化1个脉冲。

经过初次滤波,效果如下:

注:绿色为滤波后采样值,可见已经过滤掉大部分噪声。

进行局部放大:

进一步放大:

再放大一次:

可见效果非常明显,主要噪声都被过滤掉了,但是仍然不够平滑,于是引入二次滤波。

二次滤波

在初次滤波的基础上,进行二次滤波,首先想到的方法就是加权平均滤波,但是加权平均有一个问题,面对“车速平稳”和“急加减速”,同一个加权系数,不能很好地兼顾这两种状况。

1、假如加权系数分别取0.9和0.1,即上次采样值×0.9 + 当前采样值 × 0.1做为最终得到的当前采样值。

局部放大图1:车速平稳时

局部放大图2:急减速时

2、假如加权系数分别取0.1和0.9,即上次采样值×0.1 + 当前采样值 × 0.9做为最终得到的当前采样值。

局部放大图1:车速平稳时

局部放大图2:急减速时

通过不同的加权系数对比可以看到,第一种加权滤波后,车速平稳时效果较好,但是急减速时,表现出明显的滞后现象;第二种加权滤波后,无论车速状况,基本没有滤波效果。

综上,暂且采用第一种加权滤波。但是需要继续努力一把,解决加权滤波的滞后现象。

思路:可以使用自适应滤波器的思想,根据车速的实时变化状态,实时调整加权系数进行滤波。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值