GP2D12红外传感器是机器人使用较多的一种红外测距传感器,如图1左所示。输出为模拟量,通常需要连接至8位的AD。
GP2D12提供有8位AD的读数与测量距离的对应关系图(图1右)及换算公式(表1)。
但通过实验发现,GP2D12的有效测量范围为8cm~45cm。并根据厂家提供的换算公式对AD读数进行换算((float) R = (1/ (A2D*m + b)) - k),发现计算所得到的距离值与实际值的误差较大。如图2所示。而图3为计算距离值与实际距离值之间的对应关系,由图3分析可得,计算距离与实际距离大致呈线性关系,可经过一个简单的比例+平移的计算来对二者进行拟合,修正公式如下:
修正距离值=SCALE*计算距离值(指按说明书的公式进行计算)+BIAS
SCALE为比例值
BIAS为偏移值
通过任测在两点处的AD读数,便可通过下程序得到SCALE和BIAS(建议在10cm和45cm处进行测量,以得到全局最大的修正精度):
基于这个方法,每个传感器只需测试两点并校正一次,便可得到较高的精度,校正后的误差表如图4所示:

由图4我们可以看到,经过简单的修正后,传感器误差大为降低,除个别值外误差可控制在±1cm以内。
另外一个问题:
当实际距离低于6cm时会有另外一个问题。这些距离超出了传感器的测量范围,因而会导致比实际距离远的错误读数。更为严重的是,它并没有简单的解决办法。例如,可以连续地观察传感器的测量距离直到它接近了6cm。但是,从那时起便不知道障碍物是离得更近还是更远。最为安全的方法是安装机械传感器,这样,离障碍物的距离便不可能低于6cm,或者增加使用一个红外近距离传感器来检测最小距离范围内的障碍物。


-
- xiaomiking
-
1147 发帖6357 回复18609 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖