王德坤 杨宜民
【摘要】为了提高礼仪机器人在复杂环境中测量数据的可靠性以及解决同一类型多传感器测距盲区无法补偿的问题,使得礼仪机器人可以测得300cm以内障碍物的距离信息,本设计采用红外传感器和超声波传感器组成礼仪机器人的测距系统,并应用自适应加权数据融合技术对传感器所测数据进行融合,实现了两种传感器在功能上的互补,提升了系统的实时性,减小了系统的测距误差。实验结果表明系统可在300cm以内精确测距,提高了整体测距精度,得到了被测距离更加准确的估计。
【关键词】礼仪机器人;红外传感器;超声波传感器;测距;自适应加权数据融合
Development of the control system of the etiquette robot based on AT89C52 SCM
College of Automation Engineering,Guangdong University of Technology WangDeKun YangYiMin
Abstract:In order to improve the measurement protocol droid data reliability in complex environments and solve the same type of multi-sensor ranging blind can not compensate for the problem,so that the robot can be measured within etiquette obstacle 300cm distance information,the design uses infrared sensors and ultrasonic sensors etiquette robots ranging system and apply adaptive weighted data fusion technology to the measured sensor data fusion,to achieve the two sensors on the complementary function to enhance the real-time system,reducing the distance error of the system. Experimental results show that the system can accurately ranging within 300cm,improving the overall range accuracy,the distance has been measured more accurate estimate.
Key words:etiquette robot;Infrared Sensors;Ultrasonic sensors;Ranging;Adaptive weighted data fusion
1.引言
随着礼仪机器人应用领域的不断扩展,机器人获取外部环境信息,感知障碍物的存在,测量障碍物的距离显得尤为重要。礼仪机器人在完成任务的时候,通常是在机器人移动的同时还要一直探测周围环境中的障碍物。想要得到障碍物的可靠距离,如果礼仪机器人测距系统仅用一种传感器来探测,那么就必须对相同的位置不断地进行探测。但是礼仪机器人地移动会给探测结果带来很大的误差,而且时间消耗激增。礼仪机器人测距系统采用多传感器进行探测,不仅可以提高探测量的互补信息和冗余信息,而且还可以提高系统的实时性[1]。文献[2]中的自适应加权融合估计算法不需要知道传感器测量数据的任何先验知识,只依靠传感器所提供的测量数据,就可融合出均方误差最小的数据融合值[2]。利用该方法将上述信息进行融合,得出比单个传感器更准确更完全的估计值。
目前,机器人测距传感器主要有红外、超声波、视觉和激光传感器。但是视觉和激光传感器相对其他传感器不仅价格昂贵而且对控制器的要求十分高。超声波测距成本低廉,测量精度较高,不受环境的限制,应用十分的方便[3]。但是超声波传感器测距范围一般在20~500cm,20cm之内的障碍物很难被探测到[4],即存在盲区。而红外传感器价格低廉,安全可靠,探测距离较短,一般在几十厘米之内[5][6],因此,本设计将超声波传感器和红外传感器配合使用,并采用自适应加权数据融合技术对采集的数据进行融合,不仅在一定程度上实现两种传感器功能上的互补,提升了系统的实时性,而且提高了系统的整体测距精度。
2.测距系统的整体结构
如图1所示。传感器模块将采集到的外部环境信息传给主控制器,主控制器将接收到的传感器信号转换成距离信息,然后采用自适应加权融合估计算法对传感器采集的信息进行融合,再将融合后的距离信息传给上位机显示。
图1 礼仪机器人测距系统结构框图
3.测距系统的硬件设计
3.1 主控制模块
由于单片机简单可靠、控制功能强、成本相对较低,所以主控制模块的控制核心由单片机来控制,这里采用红龙STM32F103,其芯片上集成有2×12位D/A转换器、16通道2×12位电压A/D转换器、51位通用可编程I/O通道、7个可编程定时/计数器和16个中断源。芯片内部集成了很多功能,一般情况下可以直接使用,不需要额外的扩展复杂的接口,使用起来十分方面灵活。D/A转换器、A/D转换器、I/O通道、定时/计数器和中断源的位数相对较多,完全可以提供传感器使用。
3.2 传感器模块的设计
3.2.1 传感器的选型
目前,用于机器人测距的传感器主要有红外、超声波、激光及视觉传感器。视觉传感器和激光传感器价格相对较贵,且对控制器的要求较高。超声波传感器距离分辨力强、价格低廉,探测距离较长,测距范围一般为20~500cm,小于20cm时即为盲区。而红外测距传感器光束发散小、响应速度快、探测距离较短,一般在几十厘米之内,刚好可以弥补超声波传感器近距离无法测量的缺点。所以本设计选择超声波传感器和红外传感器组成多传感器测距系统。
设计要求能探测到300cm范围内的障碍物,且供电电压为直流5V。综合考虑设计的要求,出于简便角度,选用HC-SR04超声波集成模块,此超声波模块的最大探测距离为450cm,精度可达0.2cm,盲区为20cm,符合探测300cm范围内的障碍物。该模块使用电压为DC5V,静态电流小于2mA,工作频率在39kHz和41kHz之间,完全能在40kHz工作频率工作。
由于超声波传感器存在测量盲区,20cm以内的障碍物很难被探测到,所以需要红外传感器来弥补其不足,探测近距离的障碍物。本设计选用GP2D12红外传感器,其测量射程范围为10~80cm,最大允许角度大于40°,电源电压在4.5V和5.5V之间。当探测物体的距离小于10cm的时候,输出电压急剧下降,也就是说物体的距离反而越来越远了。所以本设计将红外传感器安装在机器人内部离表壳10cm的地方,相当于红外传感器的探测范围变成了0~70cm,使得系统可以探测0~300cm范围内的障碍物。
3.2.2 传感器的分布
因为要实现功能上的互补,所以将超声波传感器和红外传感器安装在一起作为一组传感器。为了探测机器人正前方90°的障碍物,需要在机器人的前方安装3组传感器,因为本设计选用的GP2D12红外传感器探测角度约为40°,如果使用两个则只能探测前方80°的障碍物。要求探测前方1m左右高的障碍物,因此要将三组传感器按不同的高度分布,礼仪机器人身形是按照常人来设计的,所以将其中一组放在礼仪机器人大约0.7m高处的正中间,其余两组分别放在左右下部大约0.5m高处。
3.2.3 传感器电路设计
STM32F103单片机的I/O 0~I/O 5可作为 12位A/D转换器。STM32F103单片机的 I/O 6~I/O 8口接三路超声波发射电路,I/O 0~I/O 2接三路超声波接收电路。单片机产生的40 kHz信号由I/O输出,经放大器放大后由超声波探头驱动将超声波发射出去。声波遇到障碍物返回,被接收器接收,再经过放大器放大和检波电路滤波后,通过I/O口输入单片机。单片机通过声波的传输时间计算障碍物距离。
STM32F103单片机的I/O3~I/O 5和I/O 9~I/O 11分别接三路红外接收电路和红外发射电路。STM32F103的I/O口为高电平的时候,红外发光管就会导通发射出红外光,发射出的红外光遇到障碍物就会反射回来被红外接收管接收,同时会产生一个对应于光强的电流。两级放大电路将该电流放大之后会有一个0~3V的模拟电压输出,该电压通过A/D口被单片机接收。根据电压的大小单片机就可以计算障碍物的距离。
4.测距系统的软件设计
基于Cortex-M3内核的STM32F103系列处理器是新型的嵌入式微处理器,它在各方面指标上都远远优于51系列单片机,但是其开发使用方法却和51系列单片机一样简便,其支持keil编译环境,支持C语言编程。整个礼仪机器人测距系统软件采用C语言编写[7],由主程序、红外测距子程序和超声波测距子程序和数据融合子程序组成。主程序中,首先进行红外测距和超声波测距,如果探测到障碍物,则对接收到的距离信息进行融合,然后将融合后的距离信息传给上位机显示,如图2所示。红外测距过程,选用定时器 A产生0.1s的中断进行传感器信息的采集,并将采集的电压值转换为距离信息,如图3所示。
由于40kHz的超声波脉冲为高低电平各占 12.5μs的方波,CPU时钟计数延迟123个指令周期即为12.5μs。单片机通过不断的交替产生12.5μs的高低电平即可产生40kHz的脉冲信号,每次发射20个脉冲的脉冲群,持续0.5ms,脉冲发射间隔时间至少20ms,从I/O口输出。系统选用定时器A作为产生20ms的定时中断 ,选用定时器B作为超声波计数器。图4为超声波测距子程序。
图2 测距系统主程序流程图
图3 红外测距子程序流程图
图4 超声波测距子程序流程图
对于多传感器的检测信息,因为传感器的不同也会导致其量程和精度都不相同,测量的准确性也难免会有差异。如果不加区别地将多传感器探测到的数据进行处理利用,系统的测量结果必然会由此产生误差。每个传感器在探测系统中探测的准确性都不相同,所以需要人为地对传感器的重要性给予区别。这就是本设计选择自适应加权数据融合算法的依据[8]。根据文献[2]介绍的多传感器数据自适应加权融合估计算法对礼仪机器人测距系统中超声波和红外传感器所采集的信息进行融合。由该方法,首先求得时刻k超声波和红外传感器所测障碍物距离的最优加权因子和均值,然后求得时刻k的估计值(k)。其表达式如下所示。
根据以上的方法设计数据融合子程序,其流程图如图5所示。
图5 数据融合子程序流程图
5.实验结果与分析
将实验室内一块500cm×500cm的空地作为测试环境进行实验。机器人安装有3组传感器,每组由超声波和红外组成,分为左超声与左红外、右超声与右红外、前超声与前红外。选用同一方向上的一组传感器进行融合,因为量程不相同,当有一种传感器的量程超出的时候就让另外一种传感器单独工作,归一化处理后超过量程的传感器的输出为1。输出为1的传感器在融合的时候权值被设定为0,所以可以把融合的整个过程划分成3个阶段:红外传感器独自测量0cm~30cm,超声波和红外传感器同时测量30cm~70cm,超声波传感器独自测量70cm~300cm。10个周期(k=10)中,将礼仪机器人在该环境内检测同一位置同一障碍物的距离信息,选定距离为30cm、50cm和200cm作为标定距离进行实验。选取超声波和红外传感器同时测量的第二子阶段,测得前超声波的10组数据为50.8、52.2、50、54.4、48.8、49.6、52.2、53.4、50.8、51,前红外的10组数据为50.2、48.2、49.2、51、51.2、50.4、49.6、49.4、48.4、48;左超声波的10组数据为53.6、54、53.2、56、57.4、55.6、53.8、55.2、58.4、57.4,左红外的10组数据为51.4、53、52.6、54.2、55.6、54.2、52、54.2、54.8、52.8;右超声波的10组数据为56.2、54.4、53、54.8、56.8、53.2、54.4、55.2、57、56.6,右红外的10组数据为53.4、54、51.8、53.8、54.2、55.6、51.6、52.8、55、54.8。按照多传感器数据自适应加权融合估计算法计算这一阶段内相应的权值和方差,得出如表l所示数据,(k)、与实际值的单位均为cm(l为传感器超量程输出)。
从表l数据可见,该测距系统可精确探测300cm以内的障碍物,多传感器弥补了单一传感器的测距盲区,采用自适应加权融合估计算法融合后,充分考虑到了环境对测量值的干扰,减小了对测量准确度影响较大的数据,使得融合后的测量值与真值更为接近,减小了测量的误差,提高了测距系统的整体精度。
6.结论
本文以礼仪机器人作为研究平台,设计了一种以STM32F103作为控制核心,利用超声波和红外传感器共同测距的多传感器测距系统,并采用自适应加权融合估计算法对多传感器采集的数据进行融合,不仅解决了单一传感器测距系统中测量盲区的缺陷问题,而且还提高了测距精度。实验结果证明了该测距系统的可靠性。
参考文献
[1]John M.Richardson,Kenneth A.March.Fusion of Multisensor Data[J].The International Journal of Robotics Research(S0278-3649),1988,7(6):78-96.
[2]翟翌立,戴逸松.多传感器数据自适应加权融合估计算法的研究[J].计量学报,1998,19(1):69-74.
[3]吕漫丽.基于多传感器信息融合的移动机器人避障研究[D].吉林:东北电力大学,2008.
[4]时德刚,刘哗.超声波测距的研究[J].计算机测量与控制,2002,9(10):31-33.
[5]苏长赞.红外线与超声波遥控[M].北京:人民邮电出版社,1993.
[6]Tzuu-Hseng S Li,Shih-Jie Chang,Wei Tong.Fuzzy Target tracking control of autonomous mobile robots by using infrared sensors[J].IEEE Transactions on Fuzzy Systems,2004,12(4):491-501.
[7]谭浩强.C程序设计[M].北京:清华大学出版社,2002.
[8]王琳.多传感器信息融合技术及其应用[D].保定:华北电力大学硕士学位论文,2002.