Home | News | Contact | Share Source Compressed Errors Messages 如何保证超声波测距既精确又稳定? - 历途动态 - 历途机器人官网
Loading Post...

如何保证超声波测距既精确又稳定?

leatu888


超声波测距有明显弱势,我们为什么还要坚持用它?市场上又不是只有这一种方式可以测距,为什么非用它不可?既然要用超声波测距,有什么好办法可以克服它的先天不足呢?


今天请来了历途电子研发部副主管,针对以上疑问给大家做深入解析。

作者 /  付李晶,历途电子研发部副主管

编辑 /  Tina



为了测量机器人到玻璃面的距离以及识别障碍物边沿,需要使用一些测距模块,市场上比较常用的测距模块有以下两种:


一种是激光测距。这种模块的特点就是速度快、精确度高、测量距离远,但是如果在玻璃面上测量,就会导致有很大几率测不到反射回的激光。


另一种是超声波测距。这种模块速度较慢、精确度受环境影响,而且测量距离小于5米,但不受被测量面的材质限制。


根据以上模块的优缺点并结合实际作业环境,以及大量的实验数据得出:超声波在玻璃面上测距更具有可行性。

01

如何控制超声波测量精度


对于技术人员来说,超声波测距的原理大家应该都清楚,这里直接粘贴百度到的信息:


超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。


用“HC-SR04”超声波测距模块举例,如下图:

VCC供电源5V,GND为地线,TRIG为触发控制信号输入,ECHO为回响信号输出。


基本性能如下:


声音在大气中的传播速度与温度和大气压力都有关系,所以在用超声波模块做高精度距离测量时,需要注意校准声速基准。

02

如何保证数据读取的稳定性


超声波测距导致数据不稳的几个原因:

1.测量面密度较低,超声波穿透物体,会有多个回波;

2.测量面凹凸不平,超声波被打散,同样会有多个回波;

3.测量面倾斜,超声波没有正确反射;

4.测量面过小,超声波反射回的量不够。

所以用超声波较准确的读取距离值、识别边沿还是有比较多的难度。


超声波的工作顺序分为以下几个步骤:

1.采用IO触发测距,给至少10us的高电平信号;

2.模块自动发送8个40khz的方波,自动检测是否有信号返回;

3.有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间;

4.测试距离=(高电平时间*声速(340M/S))/2。


具体示意图如下:


首先是发波,将代码设计为毎100ms测量一次,把测量周期设置改为每次测量一旦结束,马上开启下一次测量。


为保证测量准确,测量脉冲宽度要求在上升沿下降沿分别中断捕获定时器计数值,两者差值经过转化即可得到声音在空气传播的时间,进而获得距离值。


为了能够使用超声波检测边沿,我们需要得到比较稳定的数据,使用卡尔曼算法滤波就可以很好的解决这个难题。


卡尔曼滤波效果由滤波频率,噪声因子,偏差因子决定。我们把由卡尔曼滤波得到距离值打印出来,放入表格,生成波形图,如下:



分析,在测距模块不动作时,超声波值在±0.5mm内变动,稳定度不错。把本次减去上次的差值,也生成波形图,如下:



当测距模块远离或贴近障碍面时(模拟边沿),数据的增大或减小都比较稳定,根据这些数据编写出边沿识别算法。


经过多次调整卡尔曼和边沿识别算法的参数,在20mm-40mm边沿识别准确率在95%以上,在40mm以上的边沿识别准确率在99%以上,很好的保证了超声波测距时数据读取的稳定性。


以上内容仅代表个人见解,欢迎技术控们在留言区批评指正、交流学习。



扫描二维码关注历途机器人公众号

分类新闻

联系我们

历途机器人

 

01088505388

Select AllClear Compression Ratio: 72% 10,647 bytes 7,634 bytes Saved: 3,013 bytes Download: Here. Drag as: compressed.php Webmaster tools: Single / Multi line PHP string. Single / Multi line JavaScript string. Restore result. © 2016 HTMLCompressor.com - All rights reserved. Updated: 2016-02-24 (SSL)