沿墙走算法在竞赛灭火机器人中的应用

2018-07-03 00:45孙秋凤南京师范大学泰州学院江苏泰州225300
实验室研究与探索 2018年5期
关键词:火源舵机风扇

李 霞, 孙秋凤(南京师范大学 泰州学院, 江苏 泰州 225300)

0 引 言

在《中国制造2025》行动纲领中,提出的完善多层次多类型人才培养体系中,“机器人”就是重点领域之一。近年来,国内外迅速开展的各类机器人竞赛是推广和普及机器人知识的良好载体,同时为机器人教学实践和研究工作提供良好平台[1],更好地促进了人工智能控制技术和机器人的研发工作。

在各机构组织开展的如足球、灭火、服务机器人等比赛中,其中灭火机器人比赛最为引人关注[2]。机器人要完成灭火任务,首先要学会走迷宫,走迷宫的基本方法就是沿墙走。在机器人的设计过程中,有采用1个超声波传感器进行沿墙的;有采用2个、3个甚至更多传感的[3-4]。本文设计考虑当超声波传感器数量越多,机器人行走速度的分化越严重,相互的干扰就越大,甚至机器人行走过程中会出现自相矛盾原地打转现象。综合考虑,本文运用2个超声波传感器进行沿墙,同时对机器人的行走以及寻找火源的过程进行了优先级设置,达到了良好的行走效果[5]。采用Arduino Mega 2560为核心的控制板,成功实现了自主行走、快速寻找火源、完成灭火任务的机器人。

1 总体设计思路

灭火机器人的赛场示意图如图1所示,长方形5 m×4 m,模拟4个房间。灭火规则是:用欧松板模拟4个房间,用蜡烛模拟火源,并且随机分布在4个房间中,要求在最短的时间发现火源,发出警报,完成灭火任务。机器人设计要求:机器人形态没有限制,但是长、宽、高不超过30 cm;机器人在直流电动机的驱动下完成前进、后退、转弯等功能。本设计在机器人运动过程中利用超声波传感器判断机器人与墙壁的距离,避免碰撞,通过左右手法则实现沿墙走功能[6-8];通过火焰传感器实现火源定位;通过舵机实现风扇来回180°旋转,完成灭火任务。

图1 场地示意图

2 硬件平台

该机器人采用Makeblock MeAuriga为主控板,该主控板的处理器核心是ATmega2560。该灭火机器人采用的是三轮结构,前面用2个直流编码电动机实现前驱,后面搭载一个万向轮便于转弯,该结构设计,便于小车快速前进。该主板上安装了1个火焰传感器用来侦测火源、3个超声波传感器分别用来避障和循右墙和左墙、1个灭火小风扇、1个9 g舵机用来实现风扇摇头功能,实现自动全面灭火功能。灭火机器人硬件总体架构如图2所示。灭火机器人实物图如图3所示。

图2 灭火机器人硬件总体架构图

2.1 直流编码电动机

直流编码电动机驱动模块支持双通道直流编码电动机,并且可以分别对其速度与方位进行精确控制。相比较普通直流电动机,优点在于可以调控电动机的PID参数,使它能在不同环境下达到最佳工作状态[9-10],精确控制小车前进、左右拐动作。

图3 机器人实物图

2.2 火焰传感器

火焰传感器用来感测火源,选用的Makeblock 11036火焰传感器探测角度可达60°,反馈时间15 μs,灵敏度较高。如果火焰高5 cm,约1 m范围时就能检测到火焰,火源靠得越近,返回值越小。

2.3 超声波传感器

超声波模块是一个用来测量距离的电子模块,选用的超声波模块测量范围是3~400 cm,用来帮助小车避开障碍和实现小车沿墙走功能。工作电压5 V,测量角度30°,超声波频率42 kHz。

2.4 风 扇

采用塑料片小风扇,风扇的驱动模块采用是130电动机模块,速度可达10 000 r/min, 可以很好地实现灭火功能。当发现火源时,启动风扇进行灭火。

2.5 9 g舵机

9 g小舵机是一种角度伺服的驱动器,角度可达180°,适用于需要角度不断变化并可以保持的控制系统[11]。常见于遥控机器人、航模、飞机模型等机械部件中。在该灭火机器人设计过程中,为了达到理想的灭火效果,把风扇固定在舵机上面,这样可以实现摇头灭火功能。实现摇头功能主要从以下几个方面考虑:① 因为火焰传感器检测到火焰,小车就停止前进,这时小车所处的角度不一定正对火焰,为了避免浪费时间去调整小车位置,所以采用摇头设计。② 从机器人的实用性角度考虑,以及实际生活中火源往往不是局限于一个点,可能是一个面,所以摇头灭火更具有实际应用价值。

3 软件程序设计

(1) 沿墙算法。因为火源是随机放置在房间内,需要机器人自主完成寻找火源,该设计主要采用了左右手法则,进行沿墙走。前进寻找火源时采用右手法则,返回采用左手法则。右手法则就是机器人把右边的墙壁看成参照物,机器人贴右侧的墙壁实现行走的方法。规则是:靠近墙壁,离开墙壁,远离墙壁,又接近墙壁。方法看似矛盾,机器人就是在不断解决这对矛盾的过程中,实现自主行走[12]。在实验过程中3个传感器的调试比较耗时和难控制,一旦小车的速度、转弯时间以及与墙壁的距离设置不好,会导致小车出现原地发抖打转。综合考虑采用了两个传感器实现右手法则。根据实际实验,一个超声波传感器朝正前方;另一个在车身右侧中间朝右前约50°。小车返回时采用左手法则。因为左手和右手法则原理一样,所以不再重复描述。

在算法设计过程中,为使小车能有条不紊地寻找火源并灭火,该设计对程序的各模块进行了优先级的仲裁处理。首先是通过火焰传感器判断是否找到火源,如果找到则进行灭火,因此,判断是否检测到火焰模块为第1优先级;其次,通过前方超声波传感器,避免撞墙,进行左转为第2优先级别;然后通过右侧超声波传感器判断是否靠近墙,靠近则左转,如果远离墙则右转为第3优先级别;如果距离适中,则直行,直行为最低优先级别[13]。

(2) 程序算法流程图。沿墙算法流程图如图4所示。

图4 沿墙算法流程图

(3) 部分实现代码。根据赛前实地环境测试,当火焰高度2 cm,传感器与火焰的距离20 cm时,传感器返回值小于40。为了达到更好的灭火效果,程序设定当火焰传感器的值小于40时,小车停止前进,启动风扇灭火。实现代码如下:

if((flameSensor_9.readAnalog()) < (40)){

move(1,0);//停止前进

Runfan();//启动风扇模块

}

该设计中,风扇是可以实现摇头全面灭火的,主要是通过逐步调整舵机角度实现的。风扇旋转180°代码如下:

for(int i=0;i<180;++i) {

c += 1; //表示度数增1

servo_8_2.write(c);

dc130_run(7,1);//表示7号端口,风扇以顺时针旋转

}

要实现风扇来回来旋转,用另一循环,使舵机的角度逐步减1就能实现。程序中设定前超声波探测距离小于15 cm,以及右侧超声波距离以10 cm作为临界,是根据比赛场地、机器人的造型、机器人的速度、机器人的实际行走效果反复试验所设定的。代码中TurnLeft()和TurnRight()是实现机器人左、右转的模块。在左、右转模块中,通过调整编码电机的参数:角度、速度,使小车达到理想行走效果。小车沿右墙的实现代码如下:

if ((distancef) < (15)) { //前方有墙,前超声波距离小于15 cm

TurnLeft(); //左转

} else {

if ((distancer) < (10)) { //右侧超声波测距,太靠近墙

TurnLeft(); //左转

} else {

if ((distancer) > (15)) { //离右墙偏远了,需要靠近墙

TurnRight();//右转

} else {

ForWard();//小车前进

}

(4) 调试结果。灭火机器人竞赛过程中小车撞墙次数、是否正确转弯和以及是否准确找到火源,对竞赛的结果产生重要影响[14]。在赛前做了充分的测试。对机器人在一个房间的沿墙走进行了测试。测试设定的参数是根据小车硬件设置确定的,进行10次的测试结果如表1所示。多个超声波传感器在工作的时候会造成回波互相干扰,影响系统的精度以及实用性[15],测试中通过调整超声波的角度,减少干扰,提高效率。

表1 测试数据

4 结 语

本文基于Arduino Mega 2560为控制核心的竞赛灭火机器人的设计,主要包括设计方案的择优,硬件的选择,对程序块进行优先级仲裁,提高了灭火效率。对灭火机器人沿墙走算法进行了理论和实践研究,同时考虑了灭火机器人的实际应用,采用了摇头灭火的方式。在赛前进行了充分测试,使参数达到最优。比赛过程中,机器人能稳定运行,正确寻找到火源,启动灭火装置,成功灭火。结果表明,该机器人具有一定的实用价值,为以后的竞赛灭火机器人的设计提供一个研究思路和方向。

参考文献(References):

[1] 韦 艳,杨桂考,徐加新. 灭火机器人的设计与实现[J]. 数字技术与应用,2011(11):82.

[2] 张佐权. 竞赛用灭火机器人智能优化技术的研究与实现[D].成都:电子科技大学,2012.

[3] 刘美华,文应基,蒲宏辉. 六足仿生蟑螂机器人设计[J]. 微型机与应用,2015,34(6):50-52+55.

[4] 郭振华. 基于多传感器信息融合技术的机器人路径规划[J]. 科技与企业,2015(16):197+199.

[5] 高国琴,李 明. 基于K-means算法的温室移动机器人导航路径识别[J]. 农业工程学报,2014,30(7):25-33.

[6] 周志毅. 消防机器人在消防中的应用探讨[J]. 科技资讯,2014,12(4):16.

[7] 李 浩. 移动机器人的无线控制与目标检测研究[D].哈尔滨:哈尔滨工业大学,2016.

[8] 陈 泳. 智能扫地机器人电源系统设计[J]. 软件导刊,2016,15(2):93-95.

[9] 刘学菁. 舵机对机器人的驱动控制[J]. 天津职业院校联合学报,2011,13(10):82-85,89.

[10] 李 攀. PID控制算法在家用智能服务机器人物品搜寻中的应用[J]. 计算机与数字工程,2015,43(7):1365-1368.

[11] 徐连伟,魏崇毓. 消防机器人行走控制系统的设计与实现[J]. 计算机测量与控制,2017,25(1):66-69.

[12] 胡改蝶,樊孝仁,崔艺馨. 基于时间条件算法的灭火机器人设计[J]. 计算机时代,2015(7):15-16.

[13] 胡晓军,蔡兰蓉,王英杰. 灭火机器人控制技术研究[J]. 微型机与应用,2014,33(16):78-80.

[14] 李训栓,金 武,冯娟娟,等. 教学机器人开发过程的实践与探索——以六足机器人为例[J]. 高校实验室工作研究,2016(3):30-33.

[15] 刘贵彬,安 彬,苏彦平,等. 基于PID算法的智能灭火机器人[J]. 可编程控制器与工厂自动化,2014(2):67-70.

猜你喜欢
火源舵机风扇
双火源隧道火灾数值模拟
不同火源位置情况下的内天井结构建筑
火源位置对轻型门式刚架竖向位移的影响
吉林省主要森林火灾火源的时间变化特征
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
电风扇
基于高速同步485总线通信的多通道舵机控制器设计
基于智能手机控制风扇运行的实现
新蒙迪欧车冷却风扇常高速运转