首页 > 范文大全 > 正文

基于ARM的嵌入式救援机器人控制系统研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ARM的嵌入式救援机器人控制系统研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

(贵州师范大学 贵州省信息与计算科学重点实验室,贵州 贵阳550001)

中图分类号:TP242.6文献标识码:A文章编号:1003-2738(2011)12-0296-02

摘要:为简化救援机器人底层控制系统软、硬件设计,提高系统的实时性和可靠性,采用嵌入式微处理器(ARM),取代目前常用的单片机作为控制器的技术方案。本文介绍了一种基于arm控制器和源代码开放的Linux操作系统组成的救援机器人控制系统,对控制系统的硬件架构与软件设计进行了分析。研究表明,系统具有体积小、功耗低、控制精度高、运算速度快等优点,便于机器人功能的扩展。

关键词:救援机器人;嵌入式系统;S3C2410;Linux

近年来多发的自然灾害如雪灾、火灾、水灾、地震、瘟疫以及人为的恐怖活动,都威胁着人们的生命财产安全。当灾难发生后,现场环境具有复杂性、未知性及高危性等特点,严重威胁着救援队员的生命安全,给救援工作带来了极大的困难。人们迫切需要一种设备,能够代替人类进行危险环境下的搜救工作,因此,救援机器人的研究受到人们的高度重视。

搜索救援机器人(Search And Rescue Robot, SAR Robot)是指自然灾害、事故等突发事件发生后,辅助甚至代替搜救人员进入现场执行搜救探测任务的移动机器人[1]。这类救援机器人可以深入到放射性物质含量极高的、人员不宜靠近的灾难现场,并探测有用信息,实时反馈到远程客户端。

随着移动机器人的智能化和控制方法的不断发展,一般的单片机/PLC很难完成控制要求,而具有高性能运算和控制能力的DSP、ARM等微处理器的出现,解决了这个难题。本文以履带式救援机器人为对象,介绍了一种以ARM9处理器作为主控制器的嵌入式机器人控制系统,并在系统中植入嵌入式操作系统,大大地简化了软件开发工作量,提高了系统的稳定性。

一、机器人总体设计

救援机器人的设计目标是在野外复杂的条件下能够进行运动控制,并在此基础上完成各种复杂的救援任务。鉴于救援环境的复杂地形,机器人应具有较强的地形适应能力和越障性。履带式移动机器人不同于一般轮式移动机器人,它具有支撑面积大、滚动阻力小、越野机动性能好等优点,更适合在环境未知或不完全可知的地面上行走,因此,履带式移动机器人在特殊环境或野外环境下作业的行业中备受青睐[2]。

救援机器人移动载体采用双履带式方式,并设计了4个对称分布的摆臂履带,通过摆臂履带的不同姿态辅助机器人完成楼梯、壕沟、陡坡等障碍物的跨越。履带式救援机器人行走和转弯的动作是通过左右两履带实现的。当左右两履带运动速度相同时,机器人做直线运动;当左右两履带运动速度不一致时,机器人可实现转弯。

设救援机器人左右两轮的速度分别为 和 , 是机器人的旋转直径, 点的速度为 ,角速度为 ,则机器人的运动速度为:

, (1)

a、直行

直行只需要一个参量 ,将 转化为单位时间的脉冲数,发送至下位机,计算公式如下:

(2)

其中 为齿轮系的传动比, 为电机的减速比。

b、转弯

转弯需要三个参量, 、 和 。其中 是机器人几何中心的速度, 是机器人的旋转半径,当旋转的方向是顺时针时 为正值,逆时针旋转时 为负值, 为机器人旋转的角度。根据式(1)计算出左右两轮的速度分别为:

再根据式(2)计算左右两轮驱动电机的在500ms的脉冲,分别发送至下位机控制模块的处理器,从而实现机器人转弯。

二、控制系统硬件设计

控制系统作为救援机器人的指挥中枢,负责对指令信息、内外环境信息进行处理,并产生相应的控制信号,完成对机器人行走和转弯功能的控制,使机器人能够按照预定目标去工作。

救援机器人的控制系统原理图如图1所示,采用上下位机控制方式,上位机为车载PC机,下位机为嵌入式微处理最小系统,上位机与下位机之间通过串行通讯实现数据的传送。串行通讯的标准接口存在多种,如RS-232、RS-485、USB接口和IEEE-1394等,RS-232是PC机与通信工业中应用最为广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。综合其性能、价格和实用性,对该系统而言,利用RS-232进行端口通讯最为合适。上位机与远端客户端之间的通信采用无线通信方式,远端PC的命令通过无线路由器传送给上位机,上位机接收命令后发送给下位机控制系统,使其执行决策系统的各种动作。

嵌入式微处理器模块是控制系统的核心,本设计选用Samsung公司ARM9系列的S3C2410处理器作为救援机器人的控制CPU。 S3C2410处理器基于ARM920T内核,采用5级流水线指令结构,片内锁相环,主频高达203MHz,因此可以用来进行复杂的控制算法以提高控制精度。控制板上扩展了16MB的Flash和64MB的SDRAM,芯片内部集成了SD卡接口、USB接口、触摸屏接口和LCD控制器等通用外设,极大的减小了元件的添加,减小了电路板的面积和设计工作量[3]。S3C2410最小系统通过RS-232串口接收上位机控制器的位置运动控制指令,经控制电路作用后,产生相应的脉冲信号,分别驱动左右伺服电机,通过传动装置驱动各个关节转动。

传感器模块负责采集机器人自身装备的电子罗盘和超声波环等传感器的信息,并接收主控制器模块的命令,以控制电机的转动,返回采集的传感器信息。

图1 救援机器人控制系统硬件框图

三、控制系统软件设计

(一)软件开发平台选择。

为了有效管理多任务以及满足系统的实时性和稳定性,需要在ARM中使用嵌入式实时操作系统。嵌入式Linux系统是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户间的相互干扰。另外,Linux系统还支持真正的多用户编程,一个用户可以创建多个进程,并使各个进程协同工作以满足用户的需求[4]。

软件程序编写工具选用ARM公司的集成开发环境软件ADS1.2,该软件功能强大。ADS1.2提供完整的Windows界面开发环境,支持C及C + +,可以方便地使用C语言进行开发,并提供软件模拟仿真功能和实时调试跟踪功能,可以很好的进行仿真和调试[5]。

(二)开发环境的建立。

嵌入式系统典型的设计开发方式是“宿主机―目标机”方式,即利用宿主机上丰富的资源和良好的开发环境开发和调试目标机上的软件,再通过串行口或网络将交叉编译生成的目标代码下载到目标机上运行。

本系统的交叉编译调试环境如图2所示,装有Linux的PC机称为宿主机,对应的嵌入式开发板称为目标机,宿主机和目标机之间通过串口线、网线以及JTAG连接。宿主机中安装的Linux系统是Red hat 9.0,开发板的Linux内核为2.6。

图2 Linux开发环境

主控板上电复位后将运行系统的主程序,在主程序中,首先完成系统的初始化,然后等待上位机的命令。当接收到命令之后,对命令进行解析和执行,并发送控制指令到下位机,使机器人实现动作[6]。系统主程序流程图如图3所示。

图3 系统主程序流程图

控制系统的软件包括两大部分:上位机软件部分和下位机软件部分。上位机程序模块判断是否有用户命令,并通过串口通讯向下位机发送控制指令;下位机程序模块根据上位机发送来的指令,调用相应的控制子程序,对救援机器人左右电机进行控制[7]。

(三)上位机软件设计。

上位机控制系统的主要功能是判断外部键盘输人,通过RS-232串口向下位机发送指令,控制下位机工作,从而达到控制机器人运动的目的。图4为上位机控制软件流程图。其中,上位机进行直行和转弯的数据处理,将速度信息和距离信息转化为脉冲信息发送给嵌入式微处理器。

图4 上位机控制软件流程图

(四)下位机控制软件设计。

下位机在整个控制系统中的作用是通过RS-232串口接收来自上位机控制系统的指令,根据该指令控制机器人左右两个伺服电机在相应的状态下运转,从而保证救援机器人能够按照预期的设想实现前进、后退和转弯。

下位机控制软件主要由串口通讯子程序和伺服电机转速控制子程序构成。串口通讯子程序主要用来接收上位机发送过来的控制指令;伺服电机转速控制子程序主要是根据上位机发送过来的控制指令,输出相应的模拟量电压以及确保伺服驱动器正常工作的数字量信号来控制左右伺服电机的运动[8]。图5为下位机控制软件流程图。

图5 下位机控制软件流程图

实验

上位机实验测试:上位机测试界面,当角度大于90°时,发送“2”至下位机;当角度小于90°时,发送“1”至下位机;当前方为直线时,发送“0”至下位机。

下位机实验测试:在上位机发送数据“0”时候,底盘左转90°;发送数据“1”时候,右转90°,此时机器人上带动的电动机旋转,与此同时光电编码器读取到正确的数据,返回给主机数据“turn right90 degree finished”,即转向完成。其他命令如“6”显示“error command”,表示出现错误。

四、结束语

本文提出了一种针对灾难环境的救援机器人控制平台,设计中控制系统围绕高性能ARM处理器S3C2410主控芯片进行硬件设计,降低了系统的复杂度,并且有功耗低、易扩展、高性能的特点。软件设计以嵌入式Linux系统为核心,模块化实现各部分功能,增加了系统的稳定性和可移植性。研究表明,该结构提高了系统的实时操作性能,增强了系统的稳定性,机器人的功能可以在此基础上不断地进行扩展加强。该系统具有模块化、易扩展、可移植、功耗低、实时性强、可靠性高等特点。

参考文献:

[1]段星光,黄强.基于ARM_DSP的小型地面移动机器人控制系统[J].伺服系统,2006(5):28―32.

[2]孙纪坤,张小全. 嵌入式Linux系统开发技术详解―基于ARM[M].北京:人民邮电出版社,2006.

[3]韩松等.基于S3C2410的嵌入式智能机器人设计[J].数据采集与处理,2008,22(3):368-371.,

[4]方正,杨华,胡一民等.嵌入式智能机器人平台研究[J].机器人,2006,28(1) : 54-58.

[5]林志炜.履带式移动机器人运动控制系统设计[D].南京:南京理工大学,2008.

[6]BEAL J. The Development of a Small Autonomous Helicopter Robot for Search and Rescue in Hostile Environments [C]/ / AUVSI Annual Symposium, 1999, Baltimore.

[7]Hu H, Brady M.A Bayesian approach to real-time obstacle avoidance for an intelligent mobile robot [J] . International Journal of Autonomous Robots, 1994, 1(1): 64-102.

[8]MATSUNO F, TADOKORO S Rescue robots and systems in Japan[C] / /Proc of IEEE Int Conf on Robotics and Bio-mimetic. Shenyang, China, 2004: 12220.

基金项目:贵州省贵阳市科学技术局大学生科技创业项目(合同[2011]06号)

作者简介:萨其日娜(1984- ),女,内蒙古,硕士,计算机应用技术。