目前机器人的发展已经成为衡量各个国家科技力量的重要标准,欧美、日本等发达国家机器人设计已日趋成熟,种类繁多、功能强大。我国也投入了大量的人、财力进行机器人的研究和开发,非常重视机器人的教学,把机器人作为小学、中学和大学的实训、实践课程,大力开展国家、省和市级各种学生竞赛,极大地推进了机器人在我国的普及,为机器人的研究打下了坚实的基础。
竞赛机器人的设计出现了百花齐放的景象,结构上有开云入口网页版 、轮式机器人、足式机器人和履带机器人等;完成任务上有服务机器人、灭火机器人、除尘机器人、游景点机器人等。针对不同的任务,具有各自的特点,除尘竞赛机器人的主要性能指标是除尘面积的覆盖率及完成的时间。本文采用16位微处理器MSP430F5418微控制器,设计轮式机器人,通过四路直流电机控制机器人的避障和运动,完成竞赛任务。
1 总体结构
由于除尘竞赛机器人完成的任务较单一,并对其体积的大小有严格的规定,所以机器人的设计应尽量简洁实用,避免不必要的冗余设计。为此,本文采用模块化方法设计除尘竞赛机器人,可根据实际需要灵活地增加模块、完善系统,完成规定的任务;系统主要由主控制板、电源管理模块、红外测距模块、电子指南针及电机控制板等组成,其系统结构如图1所示。
主控制器采用16位微控制器MSP430F5418,因该器件具有较高的运算速度、丰富的外围接口以及低廉的价格而广泛地被使用,负责对传感器采集到的数据进行处理,根据获得的有效信息对电机的运动进行控制。电源管理模块主要负责为整个系统中各个模块提供独立稳定的电源;红外测距传感器负责采集环境的障碍物信息,为机器人的避障提供依据;电子指南针获得角度信息来控制机器人的转向;电机驱动板负责驱动控制直流电机。
2 系统实现
系统主要有主控制板、电源管理模块、红外测距模块、电子指南针及电机控制板等组成,红外测距和电子指南针模块是系统实现的关键。
2.1 红外测距传感器红外传感器主要负责测量机器人与障碍物之间的距离,为了可靠获得场地及环境信息,红外测距传感器的位置部署很关键,7个传感器部署的俯视图侧视图分别如图2和图3所示。
图2左端为除尘机器人头部,机器人头部安装红外传感器1、2、3,它们分别呈45°、90°、135°放置,用来探测机器人头部正前方以及两侧的障碍物,由于除尘竞赛机器人大赛场地的平台高度比较低,为了能够检测平台的周边,传感器1、2、3安装在较低的位置。机器人两侧的红外传感器4、5用来保证机器人在进入房间进行转向时整个车身处于宽阔地带,如果仅靠红外传感器1或3,判断前方的空白区域可能会出现机器人过早进行转向,撞到墙壁的情况。红外传感器7倾斜45°安装,当机器人在平台上运行时可以通过检测平台边缘高度的突变来感知路况。红外传感器6用来获得机器人后方的信息作为辅助信息。
2.2 电子指南针
&电子指南针是除尘机器人设计的关键部件,角度信息的处理直接关系到能否对机器人的转向进行精确控制。电子指南针的设计结构如图4所示。
HMC1022作为新一代磁传感器,具有灵敏度高(<0.1°)、响应时间快(<1μs)、输出频率高(1 000 Hz)、体积小及固态封装等优点,电路中IRF7105为HMC1022磁阻芯片提供置位/复位脉冲,HMC1022磁阻传感器根据地磁场的施加方向,产生两路差分模拟信号,经过两路AD620放大电路进行差分放大,得到两路模拟电压AD0和AD1,经过微控制器LPC938的10位高精度A/D转换后获得数字信号,再进行数字滤波后计算出机器人的角度值,最后将其角度值通过UART串口传送给MSP430F5418主控制器。UART串口协议由起始字(0x24),角度值高8位,角度值低8为,结束同步字(0x55)组成。
3 软件设计
软件是机器人系统的灵魂,软件的好坏直接关系到机器人能否稳定的工作,除尘竞赛软件的设计要充分考虑到场地的具体环境,采取有效地路径规划。江苏省机器人大赛除尘比赛的场地模型如图5所示。
3.1 路径规划
为了使机器人的遍历面积达到最大化,要对其运行路径进行合理的规划。为此,将场地划分为图中的4个房间,机器人的运行路径为1->2->3->4->3->1。机器人运行策略的流程如图6所示。
机器人的运行流程可以分为6个步骤:
1)机器人在1号房间内进行折返式遍历,从起点出发向图中左方前进,遇到挡板180°返回,如此反复,直到检测到2号房间门口的黑线为止,这样可以确保1号房间的遍历面积达到最大。
2)机器人进入2号房间后,以圆柱型障碍物为中心,逆时针方向运行一圈即可达到最大遍历面积。
3)机器人从2号房间出来进入3号房间时,由于4号房间是凸出的平台,可以直接沿4号房间和斜坡的边沿运行,进入4号房间,3号房间剩余的面积可以在返回时进行遍历。
4)由于4号房间是平台,且必须遍历平台的三分之一以上的面积,4号房间的遍历面积才有效,所以机器人在平台上遍历两圈,首先,机器人沿着墙壁和平台边沿在平台上进行外圈的遍历,然后在第二次遇到相应的墙壁和平台边沿时,进行适当的后退,进行内圈的遍历达到较大的遍历面积。
5)机器人从平台下来以后再次进入房间3,可以根据墙壁和障碍物的信息,对步骤3中剩下的面积进行遍历。
6)采用沿墙走策略安全回到起始点。
3.2 转角控制
电子指南针为机器人的运行提供角度信息,在实际应用中,除尘机器人转动的角度有45°、90°、180°三种大角度。电子指南针模块输出0°~360°的角度信息,考虑到竞赛场地方向的不确定性,通常采用相对角度而非绝对值。即采用获取当前的角度值,然后预设要转过的角度,对采集到的角度信息进行查询比较,当到达或超过预设角度时就停止转角工作,进入下一步的任务。在调试过程中,发现机器人在转角的过程中会出现连续打转的非正常情况。经过分析研究发现,主要原因是信息获取的抖动以及环境的影响,为此,将具体的预设角度扩展为一个范围,一般情况下机器人转动一定角度的原理如图7所示。将具体的预设角度扩展为一个范围又引入了新的问题,这是预设角度范围存在从360°到0°突变,也就是经过360°(0°)的临界点造成的,预设角跨越临界角度示意图如图8所示。
角度控制的流程分为以下4个步骤,控制算法实现的程序框图如图9所示。
1)循环获取起始角度信息,当前后两次获取信息绝相差小于5°时,得到稳定的起始角度值start_angle。
2)根据当前的角度值start_angle和需要旋转的角度值,计算得到预设的角度值set_value。
为了避免预设角度值在获取时被错过的情况发生,可以在预设角度值的基础上进行5°的增幅,获得预设角度范围angle_little-angle_ big,当angle_little
a)当前角度值result在预设角度范围内。
b)当机器人的起始位置start_angle在图7中区域②中,而当前位置result在在图中7区域③中。
c)当机器人的起始位置start_angle在图7中区域③中时,而当前位置result>angle_little并且result
a)当前角度值result在预设角度范围内。
b)当机器人的起始位置start_angle在图7区域②中,而当前位置result
c)当机器人的起始位置start_angle在图7区域③中时,而当前位置result在图7区域②。
4)当angle_little
a)当前角度值result在图8区域①或区域②其中一个预设角度范围内。
b)当机器人的起始位置start_angle在图8区域③中,而result>angle_big并且result
a)当前角度值result在图8区域①或区域②其中一个预设角度范围内。
b)当机器人的起始位置start_angle在图8区域③中,而result
4 结束语
将该控制策略用于控制机器人转角,可靠性和稳定性得到了极大的提高,成功率可达到100%,完全可以满足竞赛的要求。在此基础上设计的除尘竞赛机器人具有成本低、可靠性高的特点,在第四届江苏省机器人大赛除尘比赛中,除尘面积覆盖率达到80%以上,并取得一等奖。