引 言
目前,使用超声波技术进行空间测量和定位已相当普遍。有的运用超声波的反射特性,有的综合运用红外和超声波传感器采取三边测距的定位方法,前者因为超声波传输介质的影响使测量精度无法提高,超声波衰减特性使其传播的距离有限,再利用反射特性更加缩短了传播的距离。后者虽然精度有所提高,测量的距离增加了,但是出现了测量盲区的问题,待测目标在某些位置不能同时检测到3个以上的超声波信号时,使系统无法定位。本文在第2种方法的基础上在系统中加入了光电编码器测距定位原理,消除其定位盲区的问题。
1 定位原理
1.1红外超声三边测距定位原理
首先在室内建立一直角坐标系,规定好原点、X轴、Y轴、和Z轴。在室内上空固定位置设立3个参考点A、B、C,坐标分别为(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)。使用红外超声系统测出目标点到3个参考点的距离L、M、N为:
由式(1)~式(3)解出目标点的坐标值(x,y,z)。这就是红外超声的定位原理,简单且容易编程实现。下面说明目标点与参考点间距离的测量原理。光速与超声波速度在量级上的极大差值是实现测距功能的基础。测距原理见图1。
超声波和红外光的传播速度为常量,其传播距离与时间的曲线均为直线,直线斜率即波速,易知曲线①为红外光曲线,曲线②为超声波曲线。指定距离D,设红外光与超声波在0时刻同时从某一参考点出发,红外光经t1时间走完指定距离,超声波经t2时间走完指定距离,则D=vt2,式中v为超声波速。令t=t2-t1,可得D=v(t+t1)。已知红外光速为3×108m/s,超声波在空气中速度为3.4×102m/s,在室内这样的距离范围,近似认为t1=0,得到D=vt。
系统在每个参考点安装单片机控制的红外和超声波发射管,在目标点安装红外和超声波接收管,同样连接单片机。某一时刻参考点发射红外和超声信号,目标点在接收到红外信号时启动单片机的内部计数器、在接收到超声信号时停止计数器,这样二者的时间差t被记录下来,将t与超声波速相乘就得到待测距离D。实际上,信号处理总是有延时的,由此带来的测量误差必须补偿,最终得到算式为:d=vt+n。式中:d为距离测量值;v为超声波速;t为单片机记录的红外光和超声披到达目标点的时间差值;n为系统器件延迟误差补偿项。
1.2 光电编码器测距定位原理
光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前应用最多的传感器,由光栅盘和光电检测装置组成。
光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘(称为译码轮,见图2)与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。发光二极管和光敏传感器组成光电耦合器。光敏传感器内部沿垂直方向排列有2个光敏晶体管A和B。由于译码轮有间隙,故当译码轮转动时,红外发光二极管发出的红外线时而照在光敏传感器上,时而被阻断,从而使光敏传感器输出脉冲信号。光敏晶体管A和B被安放的位置使得其光照和阻断的时间有差异,从而产生的脉冲A和脉冲B有一定的相位差。利用这种方法,就能测出码盘滚轴滚动方向。滚轴每转动一个小角度,车轮位置计数器加1,每隔一定时间,单片机把车轮位置计数器的值读出,通过计算得出车轮移动的位移(当小车转弯时为弧线长度和弧线切线方向),再把位移信息发送给上位机。
基于以上原理,在同轴二轮驱动小车(同轴二轮驱动小车的2个轮子的运行轨迹总是平行的)的2个驱动轮子的正上方一定高度的a、b这2点安装红外超声定位单元,绝对定位每个点的坐标。在2个轮子各自轴上安装光电编码器测距单元,用来测量2个定位时刻点间轮子移动的距离和前进倒退情况。
对移动小车的定位分为3种情况:
a) 在某一定位时刻a、b这2点能够同时检测到3个参考点的信号(地面是平的,进行平面二维定位时只需2个信号),就用红外超声绝对定位方法计算移动小车的位置,计算出它们中点的位置(即移动小车的位置),并根据前一时刻a、b这2点的坐标、2个轮子间的固定距离判断出轮子相对于所建坐标系的运行方向。
b) a、b中只有1点能够同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、光电编码器测得2个轮子的移动距离长短比较、2个轮子间的同定距离计算出移动小车的位置和运行方向。
c) a、b这2点都不能同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、2个轮子的固定距离、光电编码器测得2个轮子的移动距离计算出小车的坐标和运行方向。
下面给出第2种情况的求解方法,见图3。通过比较光电编码器所测2个轮子的移动距离,可得出小车向移动距离短的轮子一侧转弯,已知红外超声测得的a′、b′、b点的坐标,2个轮子的间距d,线段aa′和bb′平行,ab和小车的运动方向垂直,根据几何知识可以求出a点的坐标和小车的移动方向,其他情况亦然。
2 系统的硬件结构
系统主要由超声波信标节点(参考点)、一个红外发射管、一个超声波发射头及各自的驱动电路和微控制器SST89E564RD(以下简称564RD)8位单片机组成。普通节点(目标点)由8个红外接收管、8个超声波接收头及各自的驱动电路和8个564RD组成红外超声接收单元,每一个红外接收和超声波接收为一对,用一个564RD控制,分成2组,每组4对,在每个轮子的上方一定高度间隔90°与水平面成45°夹角向上分布。因为测量的目标点是移动物体,所以采用多通道同时接收的方法缩短每次测量所用的时间,提高定位精度。光电编码器测距单元由译码轮、光电偶合器和一片564RD组成。用1片564RD作为主控芯片,与8个超声波接收单元、2个光电编码器测距单元使用串口进行通信,主控制器渎取各个单元的测量数据,完成定位运算,同时起到同步各个单元工作的作用。564RD的晶振都为40 MHz。图4给出单个红外管和超声波发射电路,图5给出单个红外管超声波接收电路。超卢波的发射管为T40-16(对应接收管为R40-16),中心频率为40 kHz。红外发射管为SE303A(对应接收管为PH302),564RD用2个I/O口分别输出载频为40 kHz、调频为5 kHz的方波信号驱动红外发射管,以及载频为40 kHz、调频2 kHz的方波信号驱动超声波发射管。
3 系统的软件设计
系统上电后各单元进行初始化,各部分工作如下:
a) 超声波信标节点不断向外发射红外和超声波信号,每个节点的红外与超声波信号编码相对应,并且与其他节点的信号编码不同。
b) 普通节点每隔1 s(可以改变,但不能太长,否则小车出现拐弯时运行轨迹可能不平行)进行一次定位,主控制器通过串口向各个单元发出定位信号并启动内部定时器,延时100 ms后依次读取8个超声测距单元所测得的a、b这2点到参考点的距离信息和2个光电编码器测距单元记录的位移信息,计算出移动小车的位置和运行方向。定时器定时到1 s后重复此过程。主控制器的软件流程如图6所示。
c) 2个光电编码器测距单元初始化后立刻开始记录轮子的位移,串口收到定位信号后,将记录的位移信息存到指定位置,等待主控制器读取,并从0开始继续记录位移情况。
d) 普通节点检测到定位信号后,接收红外和超声波信号,记录一组相对应的红外超声信号的超声波传输时间,存到指定的位置,等待主控制器读取。在串口接收到定位信号的开始100 ms时间内有这样的信号,则把第1次接收到对应的时间存人指定的位置就不再检测接收了,如果100 ms时间内没有检测到相应的信号,就送数据0到指定的位置。
4 系统误差分析及实验测距结果
定位误差主要有以下5方面:超声波器件的形状和安装位置造成坐标系参考点和待测目标点的位置偏差;系统电路器件延迟产生的误差;小车是不断运动的,由于超声波传输速度比较慢,请求定位时刻到定位完成,小车已经移动了一定的距离;在不能连续检测到足够参考点信号时,位置的确定依靠前一时刻的测量,会造成累计误差;温度条件对超声波的影响。
图7给出了在室温20℃、超声波速度为340m/s、小车2个轮子间距离为0.2 m、移动速度为0.2 m/s、平面二维定位实验测量的一段轨迹,实验通过对前3个方面误差补偿计算,使定位精度达到3 cm。
5 结束语
因为光电编码器测距定位依靠前一测量点的信息,必然导致定位误差的累积;而红外超声三边测距法是一种只依靠当前测量点信息的绝对位置定位方法。此系统综合了这2种方法,消除了累积误差,并解决了定位盲区的问题,对移动小车有一个较准确的定位。