自主移动机器人控制系统软件设计文档格式.docx
- 文档编号:20569256
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:56
- 大小:809.01KB
自主移动机器人控制系统软件设计文档格式.docx
《自主移动机器人控制系统软件设计文档格式.docx》由会员分享,可在线阅读,更多相关《自主移动机器人控制系统软件设计文档格式.docx(56页珍藏版)》请在冰豆网上搜索。
1绪论
1.1移动机器人技术的概述
自20世纪50年代世界上第一台机器人装置诞生以来,机器人技术经历了一个从低级到高级的发展过程,机器人(ROBOT)一词的含义也越来越广泛。
移动机器人是机器人学中的一个重要分支。
早在60年代,就已经开始了关于移动机器人的研究。
关于移动机器人的研究涉及许多方面,首先,要考虑移动方式,可以是轮式的、履带式、腿式的,对于水下机器人,则是推进器。
其次,必须考虑驱动器的控制,以使机器人达到期望的行为。
除此之外还必须考虑导航或路径规划,对于后者,有更多的方面要考虑,如传感融合,特征提取,避碰及环境映射[1]。
因此,移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。
对移动机器人的研究,提出了许多新的或挑战性的理论与工程技术课题,引起越来越多的专家学者和工程技术人员的兴趣。
由于全自主移动机器人涉及诸如驱动器控制、传感器数据融合、图象处理、模式识别、神经网络等许多方面的研究,因此它能够综合反映一个国家在制造业和人工智能等方面的水平。
由于它在军事侦察、扫雷排险、防核污染等危险与恶劣环境以及民用中的物料搬运上具有广阔的应用前景,使得对它的研究在世界各国受到普遍关注。
从80年代起,美国国防高级研究计划局(DARPA)就专门立项,制定地面无人作战平台的战略计划,从而在全世界范围内掀开了全面研究移动机器人的序幕。
国外比较著名的机器人研究计划有:
美国能源部制定的机器人和智能系统计划(RIPA)及后来的空间机器人计划,欧洲尤里卡的机器人计划,日本通产省的极限环境下作业的机器人计划等。
从总体的研究状况来看,日本在应用型的移动机器人研究方面走在了世界的前列,而美国和欧洲的一些国家在有关移动机器人的智能问题方面处于领先地位[1]。
欧盟联合研究项目TIDE(TechnologyInitiativeforDisabledandElderlyPeople)中有一项荷兰承担的M3S(MultipleMasterandMultipleSlave)计划着重研究智能轮椅等移动机器人的硬件系统、总线标准与接口协议等;
还有一些课题着重研究基于范围的传感器(如超声、红外等)导航问题,如英、德、意三国联合项目OMNI(OfficewheelchairwithhighManoeuvrabilityandNavigationalIntelligenceforpeoplewithseverehandicap),美国密歇根大学的NavChair和MIT的Wheelesley。
这些系统利用了超声和红外传感器进行测距,实现了不同的导航算法,并取得了较好的效果。
但是由于这些传感器的固有特性,使用它们存在着一些缺点:
如测量距离有限,鲁棒性差等。
为了弥补超声波和红外传感器的不足,许多学者进行了基于视觉导航的研究,比较成功的例子有:
美国CMU的Bookstore计划完全采用了视觉作为导航方式,实现了基于图像的视觉定位和导航;
日本的NagasakiUniversity&
UbeTechnicalCollege的智能轮椅采用了室内灯光作为导航标记,使用了自然图像和激光反射图像相结合的方法实现了自定位;
西班牙的SIAMO计划采用了黑白图象编码路标作为定位标记,实现了视觉导航[1]。
在机器人智能技术方面,一些机器人已经可以在非结构动态环境中,利用视觉传感器以及其他的多种传感器,实现可以对周围的环境进行自学习、自适应,并能够通过各种交互方式与人交流,学到关于环境的先验知识。
例如,美国密歇根州立大学的SAIL机器人就可以通过多模态感知接口进行环境学习,使之成为具有初步人类智能的自学习导航机器人。
在交互技术方面,近年来有许多研究机构致力于将语音识别技术作为一种交互方式应用于移动机器人,而且取得了许多成果,例如:
意大利的MAIA计划,该计划中的机器人能够在连续语音,非特定人的条件下,识别口语化的命令;
日本的Jijo-2机器人也能够在连续语音中识别口语化命令,它被用于办公室的信息咨询和引导来宾;
德国的RHINO服务机器人能够听懂简单的短语命令,并对环境噪音有很强的鲁棒性,已经开始应用于展览馆中咨询和导游工作;
NEC公司也开发出人机交流机器人"
PaPeRo"
它可以通过内置的CCD摄像机识别大约10个人的面孔,并且可以识别650个单词,说3000句话,制造它的最终目的是"
在将来可用作家庭安全系统、护理系统、子女教育设备等的"
接口设备[2]。
国内全自主移动机器人方面的研究起步较晚,但是发展非常迅速。
具有一定影响力的机器人有:
清华大学的THMR-V自动驾驶小车,已经可以在一定的校园环境中自由行走;
哈尔滨工业大学的迎宾机器人,实现了无缆行走、自动避障、语音识别等功能;
中科院自动化所模式识别实验室开发了我国第一代智能轮椅平台,已经具备了超声、红外等多传感器融合的导航系统,并可以实现简单的口令控制。
此外,中国科学院沈阳自动化研究所也研制成功了自动导引车和一种移动机器人平台[2]。
在移动机器人的应用中,精确的位置知识是一个基本问题。
有关位置的测量,可分为两大类:
相对和绝对位置测量。
使用的方法可分为7种:
里程计、惯性导航、磁罗盘、主动灯塔、全球定位系统、路标导航和地图模型匹配。
其中前两种属于相对位置测量,也称为航迹推算。
下面简述这些技术,包括新出现的基于声音和气味的导航技术。
里程计:
具有较好的短期精度、便宜、较高的采样速率,故使用广泛。
使用里程计的基本思想是积分增量运动信息,因此不可避免地引来误差的无限积累。
尤其是方位误差将引起较大的横向误差。
一般将其与其它绝对位置测量相结合以获得更可靠的位置估计。
惯性导航:
惯性导航是使用陀螺和加速度计分别测量旋转率和加速率。
惯性导航系统具有自包含优点,即无需外部参考。
然而,随时间有漂移,积分之后,任何小的常数误差就会无限增长。
因此,惯性传感器对于长时间的精确定位是不适合的。
陀螺对于移动机器人尤其重要,因为可以用来补偿里程计的最大缺点:
任何小的瞬时方位误差将带来一个定常增长的横向位置差。
磁罗盘:
就车体航向对积累的航迹推算误差的影响而言,它对导航参数是非常重要的。
正是这个原因,在解决自主平台的导航需求上,提供一个测量绝对航向的传感器是异常重要的。
磁罗盘就是这样一个传感器。
然而,磁罗盘的一个致命弱点是在接近电力线或钢结构的地方,地磁场发生变形。
这就使得地磁传感器很难用于室外。
在各类磁罗盘中,磁通量闸门罗盘最适于移动机器人。
主动灯塔:
是海洋和空中的最常用的导航系统。
在商业化的移动机器人系统中,也是如此。
主动灯塔能被可靠地检测,并且需要很少的处理时间就可以得到精确的位置信息。
虽然它可以很高的采样速率达到高可靠性,但其安装和维护费用也很高。
精确的定位要求灯塔的精确安装。
三边形和三角网是两种不同类型的系统。
在三边形导航系统中,常常是在环境的已知位置上安装三个或以上的发射器,机器人上有一个接受器。
相反情形,机器人上有一个发射器,接受器安装在墙上。
通过飞行时间信息,可以计算出距离。
而三角网则是在已知的位置上安装三个或以上的主动发射器,机器人上的一个旋转传感器记录它与它所看到的发射器灯塔之间的相对于车体纵轴的夹角,由此计算出机器人的位置与方位。
这里有一个问题,为了在20米或更远看,主动灯塔必须集中在一个锥形的传播模式内。
结果,灯塔在很多地方可能看不到,而这种方法至少要看到三个,因此这是一个尤其严重的问题。
这方面的技术和产品都是成熟的。
全球定位系统:
对于室外导航,这是一个革命性技术。
但用于移动机器人导航时,存在以下问题:
(1)由于植物和山地,存在周期性的信号阻碍;
(2)多径干扰;
(3)对于初级(单独一个)导航系统,定位精度不够。
路标导航:
路标是机器人能从其传感输入所能认出的不同特性。
路标可以是几何形状(如线段,圆,或矩形),也可包括附加信息。
一般情况,路标有固定的和己知的位置。
路标要认真仔细地选择,以利于识别,例如,相对于环境,要有充分的对比。
为了利用路标进行导航,必须知道路标的特征并将其事先存入机器人的内存中。
然后,定位的主要任务就是可靠地识别路标以便计算机器人的位置。
为了简化路标获取问题,常常假设当前机器人的位置和方位近似已知,这样就可使机器人在一个有限的区域内寻找路标。
因此,为了成功地探测到路标,要求有一个好的测距法。
路标分自然路标和人工路标。
自然路标是早己在环境中存在并且除了用于机器人导航之外还有一定功能的目标或特征。
人工路标是安装在环境中单独用于机器人导航的专门设计的目标或标记。
地图模型匹配:
基于地图定位,也称之为地图匹配,是一种机器人利用其自身的传感器创建一个自己的局部环境的技术。
然后,这个局部地图与保存在内存的全局地图进行比较。
如果匹配,机器人就可以计算出自己在环境中的真实位置和方位。
以前存储的地图可以是环境的一个CAD模型,或者可以由以前的传感数据构造。
优点是无需改变环境,而是利用环境的自然结构进行推理位置信息。
另外,使用已经开发的一些算法,机器人可以通过探索学习环境而提高定位精度。
缺点是对传感地图精度的严格要求和要求有足够多的、静态的、易识别的特征用于匹配。
由于这些具有挑战性的要求,使得该项技术当前只限于实验室或相对简单的环境。
这里涉及地图建造和地图匹配两个大问题。
最近开发了一种基于自然路标导航的技术,用于在动态环境中进行位置学习和位置识别。
在导航与定位方面,两个重要的发展方向值得注意:
一个是关于如何构造高完整性的导航系统;
另一个是关于主动环境问题,也称之为机器人与环境交互融合问题,机器人通过与环境中存在的主动装置(相当于人类社会中的其他人,通过自己的询问和他人的帮助,进行导航和定位)的交互,完成导航和定位任务。
声音:
当物体不在视野之内或光线很暗时,基于视觉的导航和定位将失效。
在这些情况下,对于动物和人来说,声音是最有用的信息,同样,对于移动机器人,声音定位能力也尤其重要。
虽然,声音的空间分辨率与视觉相比,还是比较低的,但是,听觉还是有很多优点:
无方向性,时间分辨率高,能在黑暗中工作,要求的计算量小,不可隔断性。
对利用声音进行定位,提出了各种方法,如束状方法;
MUSIC方法;
最大似然方法;
空间-时间梯度方法;
基于人的听觉系统的优先效果模型方法。
尤其是后一种方法,在有混响的环境中,具有高时间分辨率、计算量小和定位准确的优点。
气味:
气味的感知比视觉和听觉更重要,尤其是对于夜间活动的动物。
动物更多地利用气味来搜索事物和躲避敌人,但目前缺乏这方面的研究工作。
而对于这方面的研究,对利用移动机器人跟踪空气污染源或找出不合格药品等是有益的。
W.K.Leow对此进行了研究,提出了四种能够搜索事物、协商障碍物和躲避危险的神经网络,但重点放在静态环境的条件下。
Preiss和Kramer,Belanger和Willis,Willis和Arbas的工作重点放在对昆虫利用气味导航的飞行路径进行建模[3]。
1.2嵌入式系统概述
随着电子技术的快速发展,特别是大规模集成电路的产生而出现的微型机,使现代科学研究得到了质的飞跃,而嵌入式微控制器技术的出现则是给现代工业控制领域带来了一次新的技术革命。
由嵌入式微控制器组成的系统,最明显的优势就是可以嵌入到任何微型或小型仪器、设备中,而这正是移动机器人所需要。
嵌入式系统被定义为:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统[4]。
嵌入式系统作为一类特殊的计算机系统,自底向上包含有3个部分,如图1所示
应用程序与操作系统的接口
操作系统与硬件的接口
图1嵌入式操作系统的基本结构
(1)硬件环境 是整个嵌入式操作系统和应用程序运行的硬件平台,不同的应用通常有不同的硬件环境。
硬件平台的多样性是嵌入式系统的一个主要特点。
(2)嵌入式操作系统 完成嵌入式应用的任务调度和控制等核心功能。
具有内核比较精简、可配置、与高层应用紧密关联等特点。
嵌入式操作系统具有相对不变性。
(3)嵌入式应用程序 运行于操作系统之上,利用操作系统提供的机制完成特定功能的嵌入式应用。
不同的系统需要设计不同的嵌入式应用程序。
如何简洁有效地使嵌入式系统能够应用于各种不同的应用环境,是嵌入式系统发展中所必须解决的关键问题。
经过不断的发展,原先嵌入式系统的3层结构逐步演化成为一种4层结构。
如图2所示,这个新增加的中间层次叫硬件抽象层,有时也叫做板级支持包,是一个介于硬件与软件之间的中间层次,从软件层上看也叫设备驱动程序。
硬件抽象层通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作。
硬件抽象层的引入大大推动了嵌入式操作系统的通用化。
操作系统与硬件抽象层的接口
硬件抽象层与硬件的接口
图2引入硬件抽象层以后的嵌入式系统结构
1.2.1ARM处理器
在硬件平台上,随着嵌入式设备功能的多样化、复杂化,低档8位、16位微处理器已经不能很好的跟上整体步伐,嵌入式系统继而转向32位、64位微处理器。
目前,在嵌入式系统里基于ARM核的嵌入式处理器已经成为市场主流。
ARM(Advanced
RISC
Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器约75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面[4]。
到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:
1、工业控制领域:
作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
2、无线通讯领域:
目前已有超过85%的无线通讯设备采用了ARM技术,
ARM以其高性能和低成本,在该领域的地位日益巩固。
3、网络应用:
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
4、消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。
5、成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
手机中的32位SIM智能卡也采用了ARM技术。
除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。
ARM芯片具有RISC体系的一般特点,如:
1、具有大量的寄存器。
绝大多数操作都在寄存器中进行,通过Load/Store的体系结构在内存和寄存器之间传递数据。
2、寻址方式简单。
3、采用固定长度的指令格式。
4、除此之外,ARM体系采用了一些特别的技术,在保证高性能的同时尽量减小芯片体积,减低芯片的功耗。
这些技术包括:
①、在同一条数据处理指令中包含算术逻辑处理单元处理和移位处理。
②、使用地址自动增加(减少)来优化程序循环处理。
③、Load/Store指令可以批量传输数据,从而提高数据传输的效率。
④、所有指令都可以根据前面指令执行结果,决定是否执行,以提高指令执行的效率[8]。
ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。
ARM7TDMI具有如下特点:
-
具有嵌入式ICE-RT逻辑,调试开发方便。
极低的功耗,适合对功耗要求较高的应用,如便携式产品。
能够提供0.9MIPS/MHz的三级流水线结构。
代码密度高并兼容16位的Thumb指令集。
[5]
ARM7系列微处理器最高主频可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。
其指令系统与ARM9Thumb系列、ARM10Thumb系列和StrongARM处理器相兼容,便于用户的产品升级换代。
ARM7系列微处理器支持包括uc/osII、WinCE、μCLinux、Palm
OS等在内的操作系统。
ARM7系列微处理器的主要应用领域为:
工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。
ARM7系列微处理器包括如下几种类型的核:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
TDMI的基本含义为:
T:
支持16为压缩指令集Thumb;
D:
支持片上Debug;
M:
内嵌硬件乘法器(Multiplier)
I:
嵌入式ICE,支持片上断点和调试点;
本文所使用的Samsung公司的S3C44B0即属于该系列的处理器。
1.2.2µ
CLinux
随着ARM技术的广泛应用,建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题。
在众多的嵌入式操作系统里,开发人员选择比较多的是Linux,这是因为它公开源代码,可以让任何人将其修改移植到自己的目标平台系统里使用。
Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。
它原本被设计为桌面系统,现在广泛应用于服务器领域。
而更大的影响在于它正逐渐的应用于嵌入式设备。
µ
CLinux正是在这种氛围下产生的。
在µ
CLinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以µ
CLinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”[6]。
CLinux是针对无MMU微处理器开发的,已被广泛使用在ColFire、ARM、MIPS、SPARC、SuperH等没有MMU的微处理器上。
虽然µ
CLinux的内核比原Linux2.0内核小得多,但它保留了Linux操作系统稳定性好、网络能力优异以及对文件系统的支持等主要优点。
CLinux与标准Linux的最大区别在于内存管理。
标准Linux是针对有MMU的处理器设计的。
在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址,通过赋予每个任务不同的虚拟-物理地址转换映射,支持不同任务之间的保护[4]。
对于µ
CLinux来说,其设计针对没有MMU的处理器,不能使用虚拟内存管理技术。
CLinux对内存的访问是直接的,即它对地址的访问不需要经过MMU,而是直接送到地址线上输出;
所有程序中访问的地址都是实际的物理地址;
CLinux对内存空间不提供保护,各个进程实际上共享一个运行空间。
在实际上,µ
CLinux仍采用存储器的分页管理,系统启动时把实际存储器进行分页,在加载应用程序时,程序分页加载。
但是由于没有MMU管理,所以µ
CLinux采用实存储器管理策略(RealMemoryManagement)[4]。
作为操作系统,µ
CLinux除了具备处理器支持、内存管理、进程管理、文件系统管理这几种必不可少的功能外,还有着模块支持、网络支持、MISCbinarylibrary支持、能源管理、TCP/IP协议支持、提供网络、串口等设备驱动程序支持。
与其它的嵌入式操作系统相比,µ
CLinux具有以下优势:
(1)能满足绝大多数实时性要求。
实时性本身是个相对概念,绝对的实时性,其响应时间一般要求在微妙数量级。
这种实时性功能只是针对特殊设备、特殊应用场合(如数字信号处理)。
绝大多数嵌入式系统应用不需要这种严格的实时性。
另外,对Linux内核代码适当做些修改,如将Linux内核本身作为优先级最低的任务,实时任务作为优先级最高的任务,在实时任务存在的情况下运行实时任务,否则才运行Linux本身任务。
这样也能提高嵌入式Linux的系统实时性。
(2)Linux系统是模块化层次结构且内核完全开放,具有强大的网络支持功能。
Linux是由很多体积小且性能高的微内核模块和部件组成。
由于其内核代码完全免费开放,不同领域、层次的用户可根据自己的应用需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自主 移动 机器人 控制系统 软件设计
![提示](https://static.bdocx.com/images/bang_tan.gif)