避障小车设计
2017-05-22强胜岭初俊博蔺跃成
强胜岭+初俊博+蔺跃成
【摘 要】本次设计是对C51宝贝车机器人的控制系统进行研究设计,目的要实现一个基于路径规划处理和智能避障的宝贝车机器人控制系统。
【关键词】触须;避障;单片机
1 设计功能
本次设计中,我们采用了人性化的思想,利用触觉感知能力来实现宝贝车的导航避障能力,C51单片机充当宝贝车的大脑,在小车前端装一对触须传感器用来充当小车的触觉开关,通过对触觉状态的监视,以决定当小车碰到障碍时如何动作,从而实现利用触须触觉来实现小车的导航避障功能[1]。
2 机器人伺服电机的控制
首先要对小车的两个伺服电机进行零点矫正,即用延时函数产生一个高电平脉冲信号持续1.5ms,低电平脉冲信号持续20ms,发送给伺服电机,若伺服电机不旋转则电机已调零,若电机处于转动转动状态则需用螺丝刀对伺服电机进行调零。我们可以根据控制信号脉宽调制调速原理,用延时函数设定的延时长短来控制控制电机运转速度以及顺逆转状态。由实验可知延时小于1.5ms时是顺时针旋转,大于1.5ms时是逆时针旋转[2]。
根据以上实践证明可以得出以下几个结论:
已知左轮引脚接P1_1,右轮引脚接P1_0
1)停止
P1_1延时1.5ms,P1_0延时1.5ms;
2)前进
P1_1延时1.7ms,P1_0延时1.3ms;
3)后退
P1_1延时1.3ms,P1_0延时1.7ms;
4)右转
P1_1延时1.7ms,P1_0延时1.5ms;
5)左转
P1_1延时1.5ms,P1_0延时1.3ms;
3 触觉传感器的安装测试
3.1 安装触须
如图1所示是安装机器人触觉触须安装示意图及触须电路图。
3.2 测试机器人触须
其实触须感知传感器的工作原理是通过传感元件是否接地来控制左右驱动引脚的高低电平状态,再将左右驱动引脚高低电平信息传输到微控制器从而实现避障导航的功能。触须接地(GND)是通过主板外围的镀金孔都连接到GND,而金属支架和螺丝钉提供电气连接给触須如图1所示。
3.3 获取触须状态
触须状态的获取是实现小车避障的核心工作,触须的触动与否通过对微控制器即C51单片机编程来实现。图1说明是如何工作的。当触须没有碰到障碍物时,连接触须的I/O管脚的电压是高电平;当触须碰到障碍物时,I/O短接到地,所以I/O管脚的电压是低电平。
C51单片机启动或复位时,所有的I/O插脚缺省为输入。也就是说,连接到触须的I/O管脚会自动作为输入。作为输入,如果I/O脚上的电压为高电平(触须没有碰到障碍物),则其相应的寄存器中的相应位存储1;如果电压为低电平(触须碰到障碍物),则存储0.
4 触觉导航避障策略实现
宝贝车行走过程中,导航避障程序需要接受触须传来的感知信息,判断它的意义,调用一系列使宝贝车前进、后退、朝不同方向行走的动作子函数。可用if…else…if多分支选择语句来实现[3],子动作流程框图如图2所示。
5 逃离墙角死区改进
假如宝贝车进入了墙角,左触须触碰到障碍物,于是它右转,向前行走,右触须触碰到障碍物,于是左转前进,又碰到左边障碍物,再次碰到右边障碍物……如果不把它从墙角拿出来,它就会一直困在墙角里而出不来。
解决方案:
导航程序记录每个触须的前一次触碰状态,并和当前触碰状态对比。如果状态相反,就在交替总数上加1。如果这个交替总数超过了导航程序中预先给定的阀值,那么就该做一个“U”型转弯,并且把触须交替计数器复位。
逃离墙角死区流程框图如图3。
6 展望
由于触须一旦被固定在宝贝车的前端,那么它所能触觉避免障碍物的高度及障碍物被碰的角度都会受到一定的条件限制,如果障碍物太低,宝贝车在前进过程当中,触须不能碰到障碍物的话,则宝贝车就无法实现避障功能;如果宝贝车以一个很小的倾斜角贴墙前进时,此时宝贝车其实是受阻的,但由于角度太小,导致不能够让触须碰到3-pin公-公接头,则宝贝车也是无法实现躲避转向功能的。
下一阶段还需研究解决措施,可以通过改变触须的形状,比如说,将它向下折弯一定长度,这样就能触觉到较低障碍物了,或者从根本上来改变导航避障原理,比如说,用红外探测距离来避障或者超声波避障等等。
【参考文献】
[1]孙育才.MCS-51 系列单片机及其应用[M].东南大学出版社.
[2]王晓明.电动机的单片机控制[M].北京航空航天大学出版社.
[3]何建英.基于MCS-51单片机智能小车控制器设计与实现[J].重庆文理学院.
[责任编辑:田吉捷]