超声波传感器应用起来原理简单,也很方便,成本也很低。但是目前的超声波传感器都有一些缺点,比如,反射问题,噪音,交叉问题。
反射问题
如果被探测物体始终在合适的角度,那超声波传感器将会获得正确的角度。但是不幸的是,在实际使用中,很少被探测物体是能被正确的检测的。
其中可能会出现几种误差:
三角误差
当被测物体与传感器成一定角度的时候,所探测的距离和实际距离有个三角误差。
镜面反射
这个问题和高中物理中所学的光的反射是一样的。在特定的角度下,发出的声波被光滑的物体镜面反射出去,因此无法产生回波,也就无法产生距离读数。这时超声波传感器会忽视这个物体的存在。
多次反射
这种现象在探测墙角或者类似结构的物体时比较常见。声波经过多次反弹才被传感器接收到,因此实际的探测值并不是真实的距离值。
这些问题可以通过使用多个按照一定角度排列的超声波圈来解决。通过探测多个超声波的返回值,用来筛选出正确的读数。
噪音
虽然多数超声波传感器的工作频率为40-45Khz,远远高于人类能够听到的频率。但是周围环境也会产生类似频率的噪音。比如,电机在转动过程会产生一定的高频,轮子在比较硬的地面上的摩擦所产生的高频噪音,机器人本身的抖动,甚至当有多个机器人的时候,其它机器人超声波传感器发出的声波,这些都会引起传感器接收到错误的信号。
这个问题可以通过对发射的超声波进行编码来解决,比如发射一组长短不同的音波,只有当探测头检测到相同组合的音波的时候,才进行距离计算。这样可以有效的避免由于环境噪音所引起的误读。
交叉问题
交叉问题是当多个超声波传感器按照一定角度被安装在机器人上的时候所引起的。超声波X发出的声波,经过镜面反射,被传感器Z和Y获得,这时Z和Y会根据这个信号来计算距离值,从而无法获得正确的测量。
解决的方法可以通过对每个传感器发出的信号进行编码。让每个超声波传感器只听自己的声音。