2. 哈尔滨工程大学 机电工程学院,黑龙江 哈尔滨 150001
2. College of Mechanical and Electrical Engineering, Harbin Engineering University, Harbin 150001, China
微型迷宫机器人是一种能在指定小的迷宫中自动穿越迷宫,而且在规定时间内,按照某种算法,通过传感器对迷宫进行探测并且记录迷宫地图,基于微处理器控制寻找到最佳路线,最后从起点快速冲刺到终点的智能机器人[1]。
使用美国TI公司生产的32位ARMCortex-M3处理器LM3S1968为主控制器,设计并制作可通过蓝牙通讯进行在线调试的微型迷宫机器人。预期设计完成的微型迷宫机器人能够在标准迷宫中利用红外对管传感器对墙壁距离进行探测,利用陀螺仪传感器测量方向信息,从而完成对直流电机转速控制,实现机器人迷宫内自主避障行走;利用蓝牙通讯接收机器人在迷宫中的运行数据,采用LABVIEW图形化编程软件编写PC端数据采集,分析和处理的上位机程序,实现机器人功能的在线监测和调试;采用假想法寻找最优路径,在等高图法基础上,采用多种迷宫搜索算法相结合,实现迷宫最短路径的搜索,提高搜索效率[2]。
1 机器人总体设计设计的微型迷宫机器人包含3部分:微处理器,传感器部件——光电器件、陀螺仪和编码器,执行机构——直流电机及其驱动电路以及无线传输模块。总体结构框图如图1所示。
Download:
|
|
机器人系统需要对大量的迷宫信息进行处理并要完成数据量较多的路径优化算法运算。选用TI公司的LM3S1968单片机为主处理器,该处理器是基于ARM® CortexTM-M3的32位控制器,适用于快速移动微型迷宫机器人及时处理复杂的迷宫信息,并快速运行迷宫搜索算法。
2.2 红外对管距离检测模块 2.2.1 红外对管传感器选择及电路红外光电探测模块是微型迷宫机器人探测迷宫的传感器,用来探测迷宫中单元格的墙壁信息[3]。这里采用红外发射−接收对管PT510。采用4组红外传感器进行多个方向的墙壁信息探测,如果4组传感器同时不间断工作,则此时仅发射管的功率就达到了18 W,长时间很容易烧掉发射管。因此,实际采取4组传感器分时轮流工作方式,且每一只发射管工作时的PWM脉宽很小,尽量保证在最短的时间内完成发射任务,之后立刻关断;此外系统初始化时发射管不工作,只有选择好模式,机器人开始工作时才开始发射任务。这些措施有效避免了烧坏发射管现象[4]。
由于在实际调试过程中,红外光敏三极管不能满足红外发射管大功率要求,故选择达林顿管ULN2003代替,使得系统测得的最大距离达到19 cm,完全满足要求。实际电路如图2所示。
Download:
|
|
红外传感器的标定方法为:在迷宫环境中,保证在一整次的标定过程中环境光不变,准备2把量程大于20 cm的直尺,用胶带固定在迷宫的标定环境中;把迷宫机器人放在起始位置,保证在整个标定过程中,机器人在起始位置不动;打开已下载标定程序的机器人,通过蓝牙无线模块发送数据,将实时采集到的A/D采样值记录在Excel中;水平向前移动墙壁,每次移动0.5 cm,再次读出A/D值并记录;继续移动墙壁,直到A/D值不再变化或者变化很小时结束;关闭迷宫机器人的电源,用Office Excel进行数据处理。标定现场如图3所示。
Download:
|
|
对A/D值和距离分别取对数,并分析其关系曲线。如图4所示,其线性关系比较明显,只要测出几个点的A/D值就可以得出曲线的函数。曲线的斜率只与系统本身有关,与环境光无关,只要减去环境光的A/D值就能去除环境光的影响。当迷宫机器人在迷宫中运行时通过查表线性内插法计算出实际对应的距离[5]。
Download:
|
|
设计的机器人采用FAULHABER公司的直流微电机为底盘电机,该电机自带512线编码器和精密合金换向器[6]。
电机驱动电路采用Allegro MicroSystems公司的集成模块,模块采用DMOS双全桥驱动器,可同时驱动2个直流电机。
2.4 陀螺仪角度测量模块选用AD公司的陀螺仪ADXRS610进行角度测量。陀螺仪基本原理图如图5(a)所示。该陀螺仪基准电压为2.5 V,陀螺仪输入角速度和输出电压的比率关系如图5(b)所示。
Download:
|
|
由图5可知,陀螺仪的输入角速度可以通过测量输出电压测得,然后再积分得到被测角度,将机器人转弯的实际角度α2与输入转弯角度α1做差,构成一个闭环控制,使转弯更精确[7]。实际红外传感器与陀螺仪排列如图6所示。
Download:
|
|
无线传输模块采用通用nRF2401模块,实物如图7所示。该模块抗干扰能力强、传输速度快。通过SPI总线配置nRF2401的寄存器,发送数据格式按习惯定义,接收数据端按照数据格式对数据进行解码[8]。
Download:
|
|
微型迷宫机器人是多电源供电,需要几种不同电压:ARM处理器3.3 V供电,红外发射管和红外接收管均是5 V供电,陀螺仪5 V供电,无线模块3.3 V供电,电机驱动5 V芯片供电,电机9 V供电[9]。
电源模块采用低压差线性电源,这种电源效率不高、发热严重,可能给系统带来热干扰,但成本较低、电路简单,占用PCB的面积比较小,最终选择此类电源。3.7 V锂电池,容量300 mAh,放电系数为15 C,电池放电能力约为300 mAh×15=4.5 A。能供应系统正常工作[10]。
机器人采用3块3.7 V锂电池串联供电,额定总电压达到11.1 V,在电池充满电状态下达到12.3 V。如图8所示。
Download:
|
|
微型迷宫机器人总体结构如图9所示。底板由印刷电路板构成,在半圆形的前端设置有4对红外传感器,在中部布有陀螺仪;底板上安装由印刷电路板制成的2块电机架,在电机架上固定有2个微型直流电机,并通过齿轮带动2个轮子转动;在底板的末端竖直放置蓝牙模块,此外,在底板上还有微控制器电路,电机驱动电路和电源降压电路等[11]。
Download:
|
|
微型迷宫机器人系统软件主要包括系统主程序、电机控制算法、迷宫算法以及上位机软件。
3.1 系统主程序微型迷宫机器人运行程序流程图如图10所示。
Download:
|
|
图10中,系统初始化是指机器人开始运行前,需要开启单片机的定时器功能并配置其他一些功能、采集陀螺仪中值、标定红外距离等。传感器检测信息和蓝牙反馈信息是指红外传感器探测机器人前、左、右3个方向的障碍物,并将机器人与障碍物的距离信息以电压大小的方式传递给微控制器,微控制器通过A/D转换具体距离判断有无墙壁;蓝牙将当前的墙壁信息和机器人的速度等关键指标发送给电脑上位机。假想法用于搜索迷宫最优路径,该算法根据已知的迷宫信息结合假想的迷宫信息,计算出一条接近真实最优路径的当前路径,以最优路径返回起点。当迷宫机器人搜索到终点后,就掌握了一条由起点到目标点的最优路径,再以最快速度沿着这条路返回起点[12]。
3.2 电机控制算法 3.2.1 电机速度PID控制PID控制的控制规律如式(1)所示。
${u_n} = {K_{{P}}}{e_n} + {K_{{I}}}\sum\limits_{i = 0}^n {{e_i}} + {K_{{D}}}\left( {{e_n} - {e_{n - 1}}} \right) + {u_0}$ | (1) |
式中:KP、KI、KD分别为比例、积分、微分系数,u0为控制量基值,un为第n个采样时刻的控制量,ei为系统偏差值[13]。
电机PID速度控制阶跃响应曲线如图11所示。
Download:
|
|
由图11可知,当加入阶跃速度信号输入时,当输出幅值从0变到100 mV,系统响应时间约为15 ms。
3.2.2 电机位置PID控制电机位置控制也采用PID控制,由编码器、红外管检测的结果以及陀螺仪角度积分进行控制[14]。机器人电机位置PID控制的阶跃响应曲线如图12所示。
Download:
|
|
图12中,在阶跃位置信号作用下,实际输出从0变到20 000 mV,为方便显示,纵坐标缩小了100倍显示。
3.3 上位机监控软件设计上位机采用LABVIEW图形化编程软件,对PC端采集的数据进行分析和处理。
上位机软件完成的功能包括[15]:即时反馈微型机器人的具体位置及物理环境信息,如图13所示;实时分析处理微处理器提供的信息,从而规划路径,得出到达目标位置的最优解;实时将分析结果及规划的最优控制方式传输至微型机器人,或使其他微型机器人接收信息并完成后续工作;显示微型机器人当前运行速度并计算平均速度,绘制波形图;显示传感器的当前数据采集情况和实时分析所得波形图及微处理器处理结果;预留显示界面以实现传感器的添加。
Download:
|
|
微型迷宫机器人搜索和优化算法分别完成迷宫搜索和迷宫最优路径寻找功能。迷宫搜索算法要求机器人能实现从起点迷宫格搜索到终点迷宫格、再从终点迷宫格搜索到起点迷宫格的功能。迷宫最优路径算法是在已知部分或全部迷宫信息的基础上,计算出一条从起点到终点的最优路径,以实现最优控制。
3.4.1 迷宫搜索算法设计的机器人采用基于左手法则、右手法则和中心法则的混合迷宫搜索算法,算法流程图如图14。
3.4.2 迷宫最优路径算法迷宫最优路径算法是在已知部分或全部迷宫信息的基础上,计算出一条从起点到终点的最优路径,以实现最优控制。
深度优先搜索和广度优先搜索是常用的迷宫机器人最优路径算法,算法较为复杂,这里采用假想法实现迷宫搜索[16],算法流程如图15。
Download:
|
|
Download:
|
|
假想法实质是以A*演算法的思想来建立等高图,假想出一条最优路径,使微型迷宫机器人沿着假想的最优路径行进,并实时更新,达到快速寻找最优路径的目的。并且可以大范围预测任意形状的封闭或半封闭区域是否需要进入搜索的算法[17]。
4 系统测试在搭建的16×16方格迷宫中进行实物测试,如图16所示。结果表明,设计的微型迷宫机器人能在迷宫中自由智能行走,选择最优路径以最快速度冲刺到终点,搜索时间在2 min左右,冲刺时间在10 s左右,机器人迷宫时间由140 ms提高到10 ms,大大优化了机器人性能。
Download:
|
|
针对传统迷宫机器人不能在线调试的问题,设计了一款具有蓝牙在线通讯的微型迷宫机器人。讨论了机器人硬件选择和上位机监控软件设计问题,同时给出了了机器人迷宫搜索算法和最优路径优化方法的设计原理和实现流程,最后采用PID算法实现了机器人底盘电机的速度和位置的控制。通过实物验证实验证实了设计的机器人具有可靠性和通用性。设计的迷宫机器人方便了机器人算法在线调试和测试,但由于底盘结构设计过低,会出现机器人适应不同路面的能力较差情况,后面将进行进一步改进。
[1] | 宫兆俭. 新型电脑鼠的设计开发[D]. 青岛: 中国海洋大学, 2013: 1-3. http://cdmd.cnki.com.cn/Article/CDMD-10423-1013369455.htm (0) |
[2] | 王艺宁, 蒋涵, 王博, 等. 电脑鼠走迷宫智能算法的研究与优化[J]. 科技创新导报, 2015(32): 129-130, 132. (0) |
[3] | 李雯雯. 基于多种传感器的自动导航小车避障的研究[D]. 西安: 西安科技大学, 2008: 16-25. http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=Y1321944 (0) |
[4] | 汪小涵. 一种红外避障算法的设计与实现[J]. 数字技术与应用, 2016(11): 127-128. (0) |
[5] | 吴刚, 曾国强, 汪键, 等. 基于多传感器的IEEE电脑鼠位置检测技术研究[J]. 传感器与微系统, 2014, 33(6): 41-44. (0) |
[6] | 梁爽. 基于双直流电机控制的电脑鼠系统研究[D]. 长春: 吉林大学, 2015: 21-23. http://cdmd.cnki.com.cn/Article/CDMD-10183-1015591796.htm (0) |
[7] | 程燕胜, 宗群, 吴宏硕. 基于ARM+FPGA的微陀螺仪数据采集处理系统设计[J]. 传感器与微系统, 2013, 32(8): 75-77. (0) |
[8] | 唐小丽. 移动机器人的无线通信技术研究与实现[D]. 南京: 南京理工大学, 2009: 21-23. http://cdmd.cnki.com.cn/Article/CDMD-10288-2009207599.htm (0) |
[9] | 张嘉夫, 李迅波, 余岷, 等. 基于ARM的走迷宫电脑鼠的设计与实现[J]. 工业控制计算机, 2013(11): 136-138. DOI:10.3969/j.issn.1001-182X.2013.11.059 (0) |
[10] | 吴杰, 朱向冰, 郝文良. 基于单片机控制的开关电源模块[J]. 电子设计工程, 2013, 21(9): 155-157. (0) |
[11] | 吴旻晨. 迷宫电脑鼠的硬件设计简介[J]. 中国科技博览, 2009(27): 25-26. (0) |
[12] | 邓辉, 詹杰, 何家伟, 等. 计算机迷宫搜索算法仿真研究[J]. 当代教育理论与实践, 2014, 6(8): 179-182. (0) |
[13] | 明立娟. 直流电机控制系统[D]. 成都: 电子科技大学, 2008: 7-17. http://cdmd.cnki.com.cn/Article/CDMD-10614-2009165879.htm (0) |
[14] | 白龙彪. IEEE迷宫电脑鼠的设计与研究[D]. 西安: 西安科技大学, 2014: 28-32. http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=D615573 (0) |
[15] | 刘世泽. 基于嵌入式系统的迷宫机器人路径规划算法研究[D]. 西安: 西安建筑科技大学, 2013: 23-41. http://cdmd.cnki.com.cn/Article/CDMD-10703-1014009776.htm (0) |
[16] | 叶高杨, 王福平, 祝玲, 等. 电脑鼠走迷宫中坐标与方向的处理[J]. 电子制作, 2014(15): 29-30. DOI:10.3969/j.issn.1006-5059.2014.15.020 (0) |
[17] | 杨超. 基于A*算法的移动机器人路径规划[J]. 电子技术与软件工程, 2015(24): 119. (0) |