一种智能机器人系统设计和实现

2011-07-07 10:18:05来源: 互联网
我们从广泛意义上理解所谓的智能机器人,它给人的最深刻的印象是一个独特的进行自我控制的"活物".其实,这个自控"活物"的主要器官并没有像真正的人那样微妙而复杂。智能机器人具备形形色色的内部信息传感器和外部信息传感器,如视觉、听觉、触觉、嗅觉。除具有感受器外,它还有效应器,作为作用于周围环境的手段。这就是筋肉,或称自整步电动机,它们使手、脚、长鼻子、触角等动起来。我们称这种机器人为自控机器人,以便使它同前面谈到的机器人区分开来。它是控制论产生的结果,控制论主张这样的事实:生命和非生命有目的的行为在很多方面是一致的。正像一个智能机器人制造者所说的,机器人是一种系统的功能描述,这种系统过去只能从生命细胞生长的结果中得到,现在它们已经成了我们自己能够制造的东西了

  嵌入式是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。嵌入式技术近年来得到了飞速的发展,但是嵌入式产业涉及的领域非常广泛,彼此之间的特点也相当明显。例如很多行业:手机、PDA、车载导航、工控、军工、多媒体终端、网关、数字电视……

  1 智能机器人系统机械平台的搭建

  智能机器人需要有一个无轨道型的移动机构,以适应诸如平地、台阶、墙壁、楼梯、坡道等不同的地理环境。它们的功能可以借助轮子、履带、支脚、吸盘、气垫等移动机构来完成。在运动过程中要对移动机构进行实时控制,这种控制不仅要包括有位置控制,而且还要有力度控制、位置与力度混合控制、伸缩率控制等。智能机器人的思考要素是三个要素中的关键,也是人们要赋予机器人必备的要素。思考要素包括有判断、逻辑分析、理解等方面的智力活动。这些智力活动实质上是一个信息处理过程,而计算机则是完成这个处理过程的主要手段。

  机器人前部为一四杆机构,使前轮能够在一定范围内调节其高度,主要功能是在机器人前部遇障碍时,前向连杆机构随车轮上抬,而遇到下凹障碍时前车轮先下降着地,以减小震动,提高整机平稳性。在主体的左右两侧,分别配置了平行四边形侧向被动适应机构,该平行四边形机构与主体之间通过铰链与其相连接,是小车行进的主要动力来源。利用两侧平行四边形可任意角度变形的特点,实现自适应各种障碍路面的效果。改变平行四边形机构的角度,可使左右两侧车轮充分与地面接触,使机器人的6个轮子受力尽量均匀,加强机器人对不同路面的适应能力,更加平稳地越过障碍,并且更好地保证整车的平衡性。主体机构主要起到支撑与连接机器人各个部分的作用,同时,整个机器人的控制系统就安装在主体之中。后部机构与主体刚性连接,配备有电机驱动车轮,主要起支撑作用,并配合前轮实现转向。

  2 智能机器人控制系统硬件结构设计

  2.1 控制系统总体硬件结构

  智能机器人控制系统的硬件系统方案设计如图1所示。远程监控端由台式PC主机通过RS232或网络接口连接无线收发模块,完成图像、语音的收集和显示播放再现,监视现场机器人的周围环境,必要时可以通过无线收发模块发送控制命令,完成控制任务。由于研制的进度,本部分即虚线框内的功能正在开发,是今后研究的重点;现场机器人控制端由核心控制板模块、视频采集模块、语音采集模块、人机交互模块、程序下载模块、电机驱动模块、电源模块、无线收发模块等组成。

 

 

  2.2 语音视频采集模块

  因为机器人需要收集周围环境的信息,监听周围的情况,提供与图像信息同步的语音信息,以便控制人员准确地掌握周围所发生的情况,及时做出决策,所以设计了语音采集模块以完成此项功能。本设计采用了Philips公司的UDA1341TS芯片与微处理器S3C2410相连,提供了完整的语音录制和播放功能。S3C2410提供了IIS接口,能够读取IIS总线上的数据,同时也为FIFO数据提供DMA的传输模式,这样能够同时传送和接收数据。在S3C2410处理器中,音频数据的传输可以使用两个DMA通道。如声音播放,先将数据送到内存,然后传到DMA控制器通道2,再通过IIS控制器写入IIS总线并传输给音频芯片,而通道1则主要用于录音功能。

  本系统采用基于CMOS图像传感器直接输出数字信号的方案设计视频采集模块。此方案具有模块简单、外围电路少、直接输出数字信号、不用经过中间转换就可以提供进一步的图像处理的诸多特点。本课题选用C3188A摄像头构成视频采集模块。C3188A是1/3″镜头的彩色数字输出的摄像头模块,摄像头芯片采用OmniVision公司的CMOS图像传感器OV7620.C3188A摄像头模块采用数字和模拟信号输出接口,并提供8/16的数据总线宽度,通过I2C串行通信协议,可以对OV7620内部的寄存器进行编程,如修改曝光率、白平衡、窗口大小、饱和度、色调和图像输出格式等。

  2.3 电机驱动和电源模块

  驱动部分是机器人的重要组成部分,它和电机组成机器人的执行机构,完成机器人行走运动。直流电机具有良好的线性调速特性、简单的控制功能、较高的效率、优异的动态特性,被广泛应用在控制系统中。本系统将采用4片L298N电机驱动芯片驱动8个直流电机,采用PWM调速原理控制直流电机达到控制机器人的速度。

  为了消除电机运转对系统核心开发板SBC2410的干扰,从核心开发板的控制引脚输出的信号,经过16路光电耦合器(需4片TLP521-4)进行信号隔离,脉宽调制PWM控制光电耦合器的开关,以达到控制L298N驱动芯片的目的,并驱动电机按照所需的速度运转。

  在电源方面,设计的系统电源主要供给核心控制板模块、电机驱动模块、人机交互模块所用的640?鄢480TFT/LCD显示器、视频采集模块、无线收发模块(预留扩展)和语音采集模块。系统最终选用12 V的电瓶供电,可直接给电机驱动芯片和LCD显示器供电。但由于系统模块多,所需电流大,所以在提供12 V转5 V电压时,选择开关电源芯片LM2576作为电压变换核心器件,它能承受最大3 A的电流输出。

  3 智能机器人控制系统软件结构设计

  机器人控制系统的实时性好坏对于整个机器人系统的性能极其重要,控制系统的实时性越强,机器人处理异常情况的能力越强。由于μC/OS-Ⅱ是一种源代码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,所以本设计就采用μC/OS-Ⅱ提供多任务支持,再整合人机界面μC/GUI和底层驱动程序及应用程序等构建机器人软件控制系统,实现对整个机器人的实时控制,完成智能控制任务。

 3.1 控制系统总体软件结构

  软件系统主要由应用软件、内核、系统服务、驱动程序等组成。其构成示意图如图2.

 


 

  图2中硬件平台是指核心控制模块及其外围扩展模块,如视频采集模块、语音采集模块等;驱动程序是指系统对LCD、直流电机、摄像头模块、语音采集模块等程序;内核是指嵌入式操作系统,本系统采用的是μC/OS-Ⅱ操作系统;系统服务是指图形界面μC/GUI和文件系统等;应用程序是指为完成控制系统所规划的任务等程序。

  3.2 基于μC/GUI的界面设计

  μC/GUI是嵌入式应用中通用的图形软件,是为带LCD的图形应用系统提供高效的图形用户接口而设计的,它不依赖于处理器和LCD控制器。μC/GUI在多任务环境下工作与在单任务环境下工作性能同样卓越,任何尺寸大小的显示设备,不管是物理的或是虚拟的,只要具备LCD控制器和处理器,都可以运用μC/GUI.μC/GUI产品包中包含有所有的源代码。实际上,在所有的嵌入式图形用户接口中,μC/GUI提供的源代码是最整洁最统一的。μC/GUI提供的所有服务都以该模块相关的前缀开始(如:GUI,WM),这将易于理解应用程序中与μC/GUI相关的函数。同时,μC/GUI所有的服务都有很明晰的分类:GUI表示二维图形,GUI_AA表示反锯齿等。

  中间件μC/GUI界面应用程序向用户提供了丰富的API接口函数,为窗口设计提供了方便。在设计中,为了绘制一幅背景图片,首先使用位图转换工具把bmp格式的位图转换成μC/GUI支持的C文件,供μC/GUI函数调用。然后根据μC/GUI提供的API函数设计系统界面。用到的API函数主要有位图显示函数、窗口创建函数、窗口客户区句柄获取函数、按钮创建函数、文本框创建函数和滑动进度条创建函数等。设计的界面最终在8英寸LCD液晶屏上显示。本系统设计的窗口主要由两个子窗口组成:上方窗口主要用于视频显示,可以通过触摸屏点击开始或结束,视频数据将自动存入规划好的内存图像存储区,以便进一步处理利用,并可选择机器人所处环境的特定算法程序,且运行相应的程序;下方的窗口工具条主要完成机器人现场音频数据的收集、播放及停止采集,录制的音频信息将自动存入规划好的内存音频数据存储区Sound_Buffer中,而播放的音频数据放在内存Play_Buffer中,它们采用的都是内存映射技术。

  3.3 用户任务设计

  基于μC/OS-Ⅱ的任务管理机制,根据系统的功能要求,划分为6个系统任务,并设置每个任务的优先级,如表1所示。

 

 

  (1)Motor_Drive_Task——定时中断节拍进行计时,在任务循环块中,接收图像处理控制算法中形成的电机驱动参数,即Image_Analyze_Task任务中产生的电机驱动参数,更新PWM输出,完成机器人所需运动轨迹姿态的调整,随后挂起自身。

  (2)Image_Analyze_Task——获取在内存循环队列中的图像数据,在任务循环块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;若有则对获取内存循坏队列中的图像数据进行分析处理,得出电机驱动参数并发送该信息至消息队列中,然后释放图像信号量,再挂起自身。

  (3)Sound_Record_Task——用于采集、存储机器人周围环境声音信息数据到声音队列中。

  (4)Sound_Play_Task——定时从内存声音播放存储处,即Play_Buffer中提取数据放到队列中进行播放。

  (5)Image_Collect_Task——建立窗口界面,在任务循坏块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;如果检测到图像信号量,则采集一幅图像到图像存储循坏队列中,采集完成,再释放图像信号量,挂起自身。

  (6)GUI_Update_Task——按照μC/GUI手册规定,当其使用窗口回调机制,建议把它设为最低优先级别的任务,用来更新回调信息,并且该任务必须实现,且要定期调用。

 4 试验研究分析

  设计并完成装配的机器人的样机如图3所示,其中A为摄像头模块,B为麦克风,C为液晶屏,D为喇叭,E为12 V电瓶。摄像头离地的高度为450 mm,摄像头光轴与水平面角度为60°。

 

 

  4.1 视频图像采集试验

  由于本文采用的核心控制板的I/O口资源有限,因此,对图像采集的控制信号线用普通的I/O口,而不是用中断I/O口与其摄像头模块相连,因此只能用软件实时检测I/O的电平状态,决定何时采集开始,何时读数据,何时结束。为了能够采集到图像数据并能分辨出来,必须能够跟踪控制信号的变化状态,如果不对摄像头模块进行降频处理,则由于I/O口电平的变化频率远低于摄像头控制信号的变化频率,将导致I/O口无法跟踪控制信号变化,即将无法判断帧、行、点何时开始与结束这些状态信息。当摄像头的最高频率(点像素频率最高)降到1 MHz左右,系统就能跟踪并完整地采集到图像信息,并进一步处理之后完好地显示出来。采集到的实验数据如表2所示(示波器采用x10档)。

 

 

  从以上的图与表可以清楚地看出:系统的控制信号非常完整和稳定,没有出现毛刺、变形等情况,给检测读取带来了方便。Y0数据信号也很规整,其他数据信号,如Y1~Y7也是如此。Y0的波形图中有些段是低电平,出现的位置不一样,这是因为摄像头移动的时候,环境光发生了变化,引起整个Y数据变化,从Y0数据也可以清楚看出这一点,并且从图像上也能很明显地感到图像在实时移动变化着。

  4.2 直线爬坡试验

  对于移动机器人来说,在非结构化环境中,最典型的情况就是平地、斜坡与台阶,对其走直线与爬坡的试验如图4所示。

 

 

  实验场地是绿色毛毯状物质。机器人上电工作之后,就开始在控制算法下运行电机控制任务,输出控制信号,驱动电机运行,机器人就沿着直线方向以0.17 m/s(理论计算值最高可达0.183 m/s)的速度前进。反复进行10次路径长为5 m的直线行走实验,发现最大偏差为0.25 m,最小偏差为0.08 m,平均偏差为0.184 m。分析其原因,是由于电机的负载能力、启动特性、机械结构、机器人的重心位置及轮子与地面的摩擦阻力等因素所造成的。

  在爬坡实验中,主要测试的是机器人单侧爬坡的能力和效果。斜坡的倾斜角度是可调整的。对其进行了9次的爬坡实验,角度从20°~60°的范围变化,发现随着角度每增加,爬坡的难度将变得越来越困难。当在36°左右时,机器人还能够保持整体结构平衡,能够沿着斜坡运动前进并能越过障碍,而在41°左右时就无法前进。这些结果显示,机器人爬坡能力较强,能够翻越比较大的斜坡。但有些地方需要改进,如运动轮子摩擦不够,轮子宽度较窄,后轮驱动力稍有不足,与其相连的机械结构臂刚度不够等。今后需对其进行仿真优化。

 4.3 智能巡线试验

  机器人的巡线可用于机器人比赛、自动化无人工厂、仓库、服务机器人等领域,因此研究巡线实现过程有一定的现实意义。试验如图5所示。

 


 

  实验场地是绿色毛毯状物质,其中白线宽度为30 mm。在启动试验平台之前要调整摄像头视角,如果视角太大,则循线精度很难保证,甚至会脱离预期的轨迹。经过试验验证,当摄像头光轴与地面夹角大约为60°左右时,其循线可靠性及精度能够得到很好的保证。

 

 

 


 

  ②把图像分成三个图像带:A0,像素从L0~L1;A1,像素从L2~L3;A2,像素从L4~L5;再把每个带分成左右两半,其像素从中间开始向两边递增,即从p0~p159,并分别给出权值,求其每点的灰度值与相应点权值并求出总和,其表达式为:

  Sj=V1*1+V2*2+…+Vi*i+…+Vn*n
    (Vi为灰度值,i为权值;0≤n≤159,n为整数;L0≤j≤L1或L2≤j≤L3,j整数)

    ③用Ai右边区的总和减去Ai左边区的总和的差值,看是否落在误差的允许范围[-δ,δ]之内,即表达式为:
    Tm=(Sj右-Sj左)∈[-δ,δ] (m=0、1、2)

    ④根据Tm值的大小就可以确定机器人的位置是左偏、右偏,或在误差范围之内,随之就能产生机器人的控制策略。

    实验结果表明,本课题设计的机器人能够很好地实现直线爬坡、巡线行走等功能,并可以实时采集声音和图像信息。在数据处理上,采用ARM9核的S3C2410处理器,数据处理快、实时性强、稳定可靠、效率高。移动机器人随其应用环境和移动方式的不同,研究内容也有很大差别。其共同的基本技术有传感器技术、移动技术、操作器、控制技术、人工智能等方面。它有相当于人的眼、耳、皮肤的视觉传感器、听觉传感器和触觉传感器。移动机构有轮式(如四轮式、两轮式、全方向式、履带式)、足式(如 6足、4足、2足)、混合式(用轮子和足)、特殊式(如吸附式、轨道式、蛇式)等类型。轮子适于平坦的路面,足式移动机构适于山岳地带和凹凸不平的环境。移动机器人的控制方式从遥控、监控向自治控制发展,综合应用机器视觉、问题求解、专家系统等人工智能等技术研制自治型移动机器人。

 

 

  (1)控制算法描述:机器人的动态巡线过程,需要提取并能检测判断机器人相对白线的位置情况,形成控制策略,完成机器人的运动姿态调整。其算法实现流程如图6所示,巡线偏移情况如图7所示。

 

 


 

  (2)特征匹配:图像匹配技术是数字图像处理领域中的一项重要研究,基本原理就是根据已知模式(模板图),到另一幅图中搜索相匹配的子图像,该过程被称为模板匹配。通常,图像的模板匹配技术可以分成直接基于灰度值的方法以及基于特征提取的方法两大类。

  这两种算法共同的缺陷是时间复杂度高,不利于实时操作,特别是在在线检测、机器人视觉伺服等需要从大量视频信号实现数字处理海量图像的匹配场合。由于本课题采用的处理器S3C2410硬件不支持浮点运算,无法采用上述方法识别机器人相对于白线的位置是左偏还是右偏。为此,结合机器人应用环境的特殊情况,对二维图像匹配算法进行了改进与简化,其基本思路和实现过程如下:

  ①在现场采集一幅图像,如图8(a)所示(理想情况),大小为320×240像素。

关键字:机器人  实现

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0707/article_6953.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
机器人
实现

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved