stm32超声波测距代码_一种基于随机森林算法的多障碍物超声测距方法

因超声波在传播过程中不受光线、烟雾、电磁干扰等因素影响,所以相较于其他测距方式,超声波测距有着明显的优势,受到无人驾驶领域的青睐[1]

超声波测距一般使用脉冲回波法[2]。传统的回波有阈值法、互相关函数法。阈值法简单实用,实时性好,对距离近、回波峰值较强的信号有很好的检测能力,但是难以应用在距离远、回波峰值弱的信号中。互相关函数法一般只能处理5 m之内的回波信号[3],同样不适用于对障碍物的测距。此外,互相关函数法理论上只存在一个最优点,因此该方法也不能在探测区域内同时对多个障碍物进行测距。因此,本文提出了一种基于随机森林算法的超声回波信号处理方法,通过对回波信号的时域和频域分析,提取并融合时、频域特征信息,利用随机森林算法判断出探测区域内的障碍物并计算出障碍物的距离[4]

1 传统超声波测距原理

传统脉冲回波测距原理是:用脉冲激励超声探头向外发射超声波,同时接收从被测物体反射回来的超声波(简称回波)[5],通过检测从发射超声波至接收回波所经历的时间t,简称为飞跃时间,利用下式计算超声波探头与被测物体之间的距离d,即:

其中,v为空气介质中声波的传播速度,常温下,v一般取340 m/s。

设计超声测距系统电路时,需要考虑声强衰减的问题,因为超声波在空气中传播过程中,声强会随着传播距离的增大而减小[6]。造成衰减的原因是声束本身存在的扩散以及反射、散射现象等。假设最初的声强为I0,在经过x米距离后,由于吸收衰减,声强变为I,则超声波的衰减可以用下式表示:

式中,α为空气衰减系数。如果没有采取一些增益补偿措施,则距离越远,就越难以区分障碍物信号和其他白噪声信号,以致后续无法对信号分析处理。

2 基于随机森林算法的超声回波测距方法介绍

2.1 测距系统设计

本文设计的超声波测距系统组成如图1所示。考虑到测量距离远,声强衰减会很大,故在发射电路的设计中,提高了发射电流,以增强信号发射功率,同时,在接收电路中也设计了时间增益补偿电路,用于补偿空气传播过程中声强的衰减。通常,DSP信号处理器中含有带通滤波器,可以提高处理器(ARM)接收的回波信号质量。

6d05964bfd56f582bdcf69b5f3bd63f4.gif

2.2 随机森林算法

随机森林算法是由美国科学家BREIMAN L[8]提出的一种集成分类算法。该算法从训练集中随机抽取一定数量的样本作为每棵树的根节点样本,在建立决策树时,随机抽取一定数量的候选属性作为分裂节点。随机森林计算法因为两个随机性[9]的引入,使得该算法不容易出现决策树[11]法的过拟合现象。另外,随机森林法在运算量没有显著提高的前提下可提高预测精度,具有很好的抗噪声能力。因此,本文采用该法计算距离。

2.3 信号时、频域的特征提取

为了利用随机森林法,需要提取超声回波信号的时域和频域特征。

信号具有时域和频域的特性。在时域中,信号f(t)是时间的函数,描述的是信号的幅度、频率和相位随时间的变化关系。在频域中,信号F(jω)是频率的函数,讨论的是信号的幅度和相位随频率的变化关系[12]。信号可以通过傅氏变换在时域和频域之间转换。

通过研究发现,当超声波遇到障碍物返回时,其反射波的频率f会在发射波频率f0附近出现,导致频率f0附近的频谱幅度变大。例如,以频率为f0=48 kHz发射脉冲方波,得到经带通滤波后的原始回波信号波形S,如图2(a)所示。可看出在18 200 μs~19 100 μs和55 200 μs~56 100 μs时间段内各有一个障碍物。为了测距,在上述两个时间段内分别取最高点作为飞跃时间,根据式(1)可计算出两个障碍物的距离分别约为3.2 m和9.5 m。因此,找出障碍物所在的时间段是解决问题的关键。把原始回波信号S分成n段,每一段所对应的时间段大小为t0,t0的大小与回波信号中障碍物从出现的开始时刻到结束时刻所对应的时间段tobs有关,例如图2(a)中tobs=900 μs,如果t0取值过大,就会出现一段中包含多个障碍物,影响判断障碍物个数,反之如果取值太小,又会造成一个障碍物出现的时间段tobs被分割成连续好几段,使计算变得复杂。所以一般取较为合适,这样一个障碍物至多会被连续的3段t0所包括起来,在后续处理过程中如果判断出相邻的时间段内有障碍物出现,则可以把它们合并为一个时间区间。选定好t0后,回波信号S总的时长为tall,那么n=tall/t0。而后对每一段信号Si(i=1,2,…,n)做FFT变换,当有障碍物出现的时候,f0附近的频谱幅度会比较强,如图2(b)所示,该图显示的仅为图2(a)中两个障碍物所在时间区间附近的分段,可以看出在障碍物所在时间区间43段、44段频谱幅度明显比42段、45段强;同理,另外一个障碍物所在时间区间128段、129段频谱幅度也要比127段、130段高。

21e46567d07023bb90516b9d1c73b366.gif

基于以上分析,可以提取信号在时域和频域的一些特征。时域特征主要指信号的相对峰值幅度CT1,即时域信号包络的相对变化量。以其中一段Si为例,其计算方法为:

其中step为步长,ai为步长内所包含点的最大值,i=SN/step,SN为Si段中的总点数。提取的特征CT1的本质相当于提取了Si段的包络。

对时域信号Si段做FFT变换,得到频域幅度谱,截取发射频率f0附近的频段,设频段长度为2d,则其左边频率为f0-d,右边频率为f0+d。以左、右边频率构成区间[f0-d,f0+d],在该区间上提取频域特征:频谱相对面积CT2,即区间内的点所围成的面积。方差CT3,最大值CT4和极差CT5,其计算公式分别为:

e74fb428bad31d9315a59eddb85276e2.gif

2.4 利用随机森林法的测距方法

具体步骤如下:

(1)准备数据:在不同距离的位置测量障碍物(可以多个)的数据,每个位置采集三次,并做好标注。以其中一个原始信号S为例,把信号分成n段,根据上一节特征提取的方法,提取出每一段信号Si(i=1,2,…,n)的时域和频域特征:CT1i,CT2i,CT3i,CT4i,CT5i,并做好每一段的标注信息Li,即说明该段是否含有障碍物。每一个信号S有n个数据S1,S2,…,Sn。为了不使某一个特征值对结果影响过大,对每一个特征进行归一化处理,计算方式如下:

其中Xmax和Xmin分别为某一特征集中最大特征值和最小特征值。利用式(6)得到预处理后的数据集。

(2)训练数据:把预处理后的数据作为训练集,利用随机森林算法训练出分类器TB。

(3)预测数据:当测得一个新的信号数据时,把数据按照步骤(1)处理后,用训练好的随机森林分类器TB对数据集进行分类,判断出障碍物所在的时间段。如果两个时间段相邻,则合并这两个时间段为一个整体的时间区间,如果求出多个不相邻的时间区间,说明检测出多个障碍物。

(4)计算距离:找出在时间区间中的最大值,把该值所对应的时间点作为飞跃时间tmax,代入式(1),计算出障碍物距离d。

3 实验结果与分析

下面以同时测量两个障碍物为例来验证该算法,测试示意图如图3所示。在检测范围内,任意放置两个障碍物,用超声波测距系统进行测量。

e62dfffb877ebf032cbd0fdcb3eb2a3b.gif

实验中发射的脉冲方波振荡频率为48 kHz,采样频率为680 MHz,采样时间为62 638.55 μs。采集经过带通滤波后的原始数据点,得到采样点数为43 200个,画出的波形类似图2(a)。把原始数据分成144段,t0约为500 μs,每段有300个数据点,频域区间选取为[46 kHz,50 kHz],按照本文算法计算出障碍物的距离。通过对不同距离多个不同障碍物进行测量,得到实验结果如表1所示。结果表明,该算法可以在10 m之内,同时有效地完成对多个障碍物的距离测量。其误差在±3 cm之内,达到了实际的应用要求。在同一位置上进行多次测量,来评判随机森林算法的准确度,其实验结果如表2所示。结果表明该算法具有很好的障碍物识别度。

861f82a8fbe858fae24ec40a2aafdee1.gif 68f2e1cc729f30ed5abff1ede2619a1b.gif

4 结论

本文提出的算法通过提取超声回波信号的时域和频域信息特征,然后利用随机森林算法判别出障碍物的个数并求出目标距离,可有效地解决因距离远、回波信号弱而造成的测距困难问题。该方法可以实现10 m内的多个障碍物距离测量功能,测量误差在±3 cm之内,达到了实际的应用需求,已经用于实际的自动驾驶场景中的矿场卡车项目里,取得了良好的效果,具有较高的实用价值和理论参考意义。

需要说明的是,可以在满足一定测量分辨率要求的前提下,通过压缩手段,使样本数据的间隔合理放大,达到减小计算量,提高测量实时性的目的。

参考文献

[1] 许高斌,闵锐,陈兴,等.一种新型超声波测距系统信号处理方法[J].电子技术应用,2016,42(8):84-86.

[2] 赵浪涛,赵永花,柴清.高精度超声波测距方法的研究[J].电气自动化,2015,29(3):112-114.

[3] 程晓畅,苏绍景,王跃科,等.超声回波信号调制及其包络相关时延估计算法[J].传感技术学报,2006,19(6):2571-2577.

[4] 王宏江,郭会军,李军怀.超声回波信号包络相关时延估计优化算法[J].计算机工程与应用,2012,48(20):156-157.

[5] 吴赛燕,杨辉.超声波测距信号处理算法研究[J].福建电脑,2009,25(3):73-74.

[6] 张珂,俞国华,刘钢海.超声波测距回波信号处理方法的研究[J].测控技术,2008,27(1):48-49.

[7] 苑洁,常太华.基于STM32单片机的高精度超声波测距系统的设计[J].电子设计工程,2011,15(48):76-78.

[8] BREIMAN L.Random forests[J].Maching Learning,2001,45(1):5-32.

[9] 冯晓蒲,张铁峰.四种聚类方法之比较[J].微型机与应用,2010,29(16):1-3.

[10] 杨静,张楠男,李建.决策树算法的研究与应用[J].计算机技术与发展,2010(1):114-116,120.

[11] KULKARNI V K,SINHA P K.Random forest classifiers:A survey and future research directions[J].International Journal of Advanced Computing,2013,36(1) :1144-1153.

[12] 张卫钢,张维峰.信号与系统[M].北京:清华大学出版社,2017.

作者信息:

王培丞,张卫钢

(长安大学 信息工程学院,陕西 西安710054)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值