《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 自动割草机器人的设计
自动割草机器人的设计
来源:电子技术应用2010年第8期
黄 杰,苏谢祖,颜钢锋
浙江大学 电气工程学院,浙江 杭州310027
摘要: 介绍自动割草机器人的设计和实现。其硬件系统主要包括单片机系统、电机控制器以及传感器系统三部分。软件部分实现单片机系统的控制以及割草路径的规划。通过对软硬件的整体调试使系统达到设计要求。
中图分类号: TP242.6
文献标识码: B
文章编号: 0258-7998(2010)08-0033-04
Design of robot lawn mower
HUANG Jie,SU Xie Zu,YAN Gang Feng
College of Electrical Engineering , Zhejiang University,Hangzhou 310027,China
Abstract: Economic development in recent years promotes urban greening process rapidly,which accelerates the progress of lawn industry.Every year,it will consume lots of resources to maintain those public area lawns.Robot lawn mower can reduce those consume,and it is very suitable for family lawns. The hardware of robot lawn mower consists of three parts. The MCU controller, the moto controller and multi-sensor system.The software is mainly about the MCU control and the path planning of robot lawn mower.Through the overall hardware and software debugging make the system meet the design requirements.
Key words : robot lawn mower;path planning;muliti-sensor system;electronic fence

   自动割草机器人被广泛应用于家庭庭院草坪的维护、大型草地的修剪。自动割草机器人的平台融合了运动控制、多传感器融合、路径规划等技术。
1 系统结构
    自动割草机器人主控系统的结构框图如图1所示。系统主要由单片机控制系统、传感器系统、电机驱动系统3大部分组成。其中单片机控制系统的处理器采用国产芯片STC12C5410AD,包含10 bit的ADC以及串口、I2C等通用串行接口,高达40 MHz的主频完全可以胜任本系统的计算和处理速度。

    运动系统主要通过单片机给出的多路PWM信号对自动割草机器人的行动电机以及割草电机进行控制。传感器系统由电子篱笆传感器、光电开关传感器、碰撞开关传感器、雨水传感器、无线遥控接收模块等组成。其中,电子篱笆传感器用于探测割草区域的边缘;光电开关传感器用于避开慢速的或者静止的障碍物;碰撞开关传感器用于避开快速的或者主动碰向割草机的物体;雨水传感器用于检测下雨天气,并且相应作出回基站的操作;倾角开关传感器用于安全措施,防止自动割草机器人在割草过程中发生意外事件翻倒,一旦传感器检测的角度超过设定的阈值,系统自动停止一切工作,进入休眠状态;无线遥控部分用于方便使用者无线控制自动割草机器人,无线遥控的距离约20 m。
    各个系统都采用模块化设计,可扩展性高、升级维护方便、二次开发周期短。表1为自动割草机器人参数表。

2 硬件系统设计
2.1 主控系统

    主控系统采用STC12c5410AD单片机,最高主频40 MHz,8路AD输入,可以满足自动割草机器人系统的控制需求。本系统采用30 MHz的有源晶振,8路AD输入基本上可以满足系统中模拟量的采集需求。
2.2 运动控制系统
    运动控制系统中行动电机部分采用2片L298直流电机驱动芯片对直流电机进行控制。1片L298驱动芯片可以提供最高3 A的驱动电流,本系统的行动电机供电电压为24 V,对于设计要求行动总功率不大于60 W的驱动系统来说,2片L298拥有足够的驱动能力。在机械结构上,电机轴上使用了减速齿轮,用于加大最大电机输出转矩,提高在草地上行走的能力。
    割草电机驱动部分采用mosfet驱动,IRLR2705这款mosfet可以提供峰值28 A的电流,满足了割草电机的要求。割草电机的开通和关断由一个单片机IO控制。割草电机驱动有一个电流检测反馈环节,当割草电机的工作电流过大(一般是堵转时),电流信号被采样电阻取出并且送往单片机AD转换器中进行检测并且软件保护。防止堵转的电机烧毁mosfet管。电机驱动电路图如图2。

2.3 传感器系统
2.3.1 电子篱笆感应电路

    电子篱笆传感器是自动割草机器人最重要的传感器,它可以使割草机不走出工作区域(由连在基站上的电线围成的区域),这样可以保证自动割草机器人工作在有效区域。电子篱笆传感器感应的是电子篱笆所发出的一定频率的脉冲信号,感应线圈在靠近通有交变电流的电线边界时,会产生特定频率的感应电流,根据检测特定频率下信号幅度的大小可以得到割草机是否接近边界的信息。电子篱笆传感器在感应出信号后进行放大、滤波[1],然后再送入单片机的AD输入端口。实验证明,越是接近电子篱笆边界,感应出给MCU的电压越大,选择一个合适的阈值进行判断就可以得到割草机的状态。在实际中设定接近边界还有3 cm时感应出的电压大小作为阈值,割草机在接收这个信号后就会给出相应的处理,如后转弯180°然后继续前进。电子篱笆检测电路图如图3。

2.3.2 倾角开关
    在割草机运行过程中,有可能因为意外使割草机倾斜或者翻倒。由于割草机底盘有一对高速运行的割草刀片,所以底盘暴露在外面就会威胁到人或者动物的安全。在车子倾斜到一定角度时,倾角开关就会给出一个开关信号,单片机根据这个信号关断所有的电机控制信号,并且进入待机状态,等待操作者手动开机。
2.3.3 碰撞开关
    碰撞开关是为了让割草机可以躲开光电避障开关检测不到的盲区障碍物和快速移动物体,是一种被动的避障方式。碰撞开关的原理是在割草机被外物碰撞到前方的一个机械的弹簧结构后,会让一个触点短路,这样能给单片机一个低电平信号,通知单片机遇到了障碍物,单片机就会执行相应的避障措施。
2.3.4 雨水传感器
    雨水传感器由一个湿敏电阻和一个比较器组成。在正常工作情况下,湿敏电阻阻值为1 MΩ左右,这样可使比较器输出为高(正极电压(约2.5 V)大于负极电压(约2 V))。如果有雨水碰到湿敏电阻,则电阻的阻值会急剧下降到1 kΩ左右,比较器输出就为低(正极电压(约0 V)小于负极(约2 V))。这样就能使单片机得到雨水感应信号,执行回基站避雨的操作。图4为雨水传感器电路图。

2.3.5 光电开关避障
    光电避障是最主要的避障方式,也是一种主动的避障方式。优点是不用碰到障碍物就可以检测到并且躲开,避免直接碰撞到障碍物。光电开关可检测的距离可以根据实际控制的需要进行调节。
2.3.6 传感器在车体位置上的排布
    多传感器系统传感器的位置和排布对于控制精度有很大影响,在借鉴了其他多传感器系统的排布后,设计出本系统的传感器排布图[2],如图5所示。

    A1、A2、A3、A4都是电子篱笆探头的放置位置。B1和B2是光电传感器和碰撞开关的安装位置,尽量放在边缘有利于检测障碍物减小检测的盲区。其中,A3、A4这两个电子篱笆探头主要用于检测前端电子篱笆区域,如果检测到,执行后退再转向的动作。A1、A2则是用于进入基站时的寻线,因为进入基站的任务是通过首先寻找到边界的电子篱笆线,然后再切入电子篱笆线中,最后通过寻线的方式一直走入基站。A1、A2也可以在自动割草时发挥作用,避免割草机走出边界,特别是在割草区域的边角地带,成为处理边界算法中的一个重要辅助信号。
2.4 其他部分
    其他部分包括过电流保护、欠电压保护。过电流保护主要保护割草机驱动电路不会因为堵转、割刀卡死等原因损坏;欠电压保护通过检测电池电压来确定是否应该回基站充电,实现自动充电的功能。
3 软件系统设计
    自动割草机器人的软件部分使用单片机C语言编程设计[3],根据实际的控制要求实现自动割草机器人的功能。软件部分尽量使用查询代替中断,增加了软件的健壮性。割草路径的规划是自动割草机器人的主要算法部分。
3.1 软件总体结构
    主程序主要执行初始化以及自动割草机器人的3种行走策略:普通行走的任务;回到基站的任务;执行出站的任务。在外部中断中,外部光电避障、碰撞开关避障和保护部分的信号是主要外部中断的来源,用于实时响应这些异常事件。软件流程图如图6。

3.2 割草路径规划
    自动割草机器人路径规划的遍历策略是割草机设计中的一个重要环节,涉及到割草机割草的效率。合理的遍历策略可以使自动割草机器人在最短的时间内遍历整个割草区域[4]。常用的割草策略主要有两种方式:直线运行方式和边界跟踪运行方式[5]。两种覆盖区域方式如图7、图8所示。

    采用直线运行时,转向处会有不可避免的重叠路径,使总的运行距离增加;采用边界跟踪的方式时,需要机器人不断地调整进行方向,容易带来误差。针对自动割草机器人以单片机为核心的控制器而言,需要自动割草机器人的运行轨迹尽量简单化和规范化。因此采取直线运行方式遍历子区间,在前向的电子篱笆传感器感应到边界后,割草机器人后退一小段距离,然后以一个轮子为中心,另一个轮子左转(或右转)180°,完成掉头,然后继续前进,下次再碰到边界就向相反的方向旋转180°,这样就可以做到区域的覆盖。
3.3 割草边界区域的处理方法
    割草机器人在区域的边角处行走是最容易出现问题的时候,不合理的行走策略可能导致割草机器人走出边界。所以要利用割草机器人现有的传感器去选择在区域边角的运行策略。
    经过实验发现,出现越界问题的情况主要有两种。
    (1)割草机到达边界的一个角落,如图9。在这种情况下割草机器人传感器A4(或者A3)首先检测到边界L1的信息,根据直线运行方式就应该先后退再向左转(或向右转)。正常情况下走到这种角落时就应该是先检测到L1,然后后退一段距离,再向右方向转180°。在转弯的过程中,由于L2的存在, A3就会感应到角落的另外一个边界L2,如果没有特别的策略,就会执行先后退一段距离,再向左转180°的策略,这样就很容易走出边界,或者使控制变得混乱。要避免这种情况就需要在软件上做出改动,即在转弯过程中如果有其他传感器检测到边界,就说明已经到了另一个边界角落的位置。最好的处理方法就是原路回转过去,回到原位后再次左转180°,开始从这个区域的顶端到另外一端的循环行走遍历。

    (2)割草机遇到了一个倾斜的边界,如图10。如果没有特殊的策略,A4检测到边界后,就执行转向的策略,这样就会有很大一片的前方区域(区域一)不能遍历到,所以就需要利用右边的A2去解决这个问题。在正常行走时,如果A2首先检测到了边界,则执行先后退、然后左拐一定的角度、最后前进的策略。自动割草机器人就会沿着这根斜线边界不断调整自己的角度前进,而不会漏掉这些区域,适用于边界不是很规则的草地。


4 系统整体调试
    割草机器人整体调试步骤:(1)单片机控制系统的测试;(2)运动控制系统的调试;(3)各个传感部分的调试;(4)运动控制系统与传感器相结合的整机调试。
    首先单独测试单片机的控制,测试通过后进行运动模块的测试,获取割草机的运动参数。然后进行各个传感模块的测试,其中重点的是电子篱笆、光电避障的测试。在确认各个传感模块工作无误后即可开始进行割草机器人的整体测试以及割草路径规划。最终实现自动割草机器人自动割草、自动充电和雨雪天自动返回基站等功能。
    自动割草机器人系统借鉴了国外的割草机系统的特点,特别加强了安全性和可靠性的设计,实现了更好的控制。从外界获取信息能力来看,多传感器系统保证了获得的外界信息的完整性、有效性,保证了自动割草的正常进行以及意外情况的及时应对。从系统性能方面,采用功耗合理、性能优越的单片机控制系统,保证了性能与成本的兼顾。从功能方面,基本实现了全部割草机器人应有的功能,并且加强了安全性。通过现场的测试结果,割草机器人完全能够胜任坡度不大于15°的草地的割草需求,实现了真正的无人值守自动割草。
参考文献
[1] 童诗白.模拟电子技术基础[M],第三版.北京:高等教育出版社,2007:345-360.
[2] 樊明轩.全区域覆盖移动机器人避障策略与多传感器系统的设计研究[D].南京:南京理工大学,2002:29-39.
[3] 朱飞.AVR单片机C语言开发入门与典型实例[M].北京:人民邮电出版社,2009.
[4] 祖莉.智能割草机器人全区域覆盖运行的控制和动力学特征研究[D].大连:大连理工大学,2006:53-75.
[5] 金立刚.自动割草机器人的研制[D].大连:大连理工大学,2006:48-51.

此内容为AET网站原创,未经授权禁止转载。