能力风暴机器人用于灭火比赛的策略开发概要.docx
《能力风暴机器人用于灭火比赛的策略开发概要.docx》由会员分享,可在线阅读,更多相关《能力风暴机器人用于灭火比赛的策略开发概要.docx(9页珍藏版)》请在冰豆网上搜索。
能力风暴机器人用于灭火比赛的策略开发概要
收稿日期:
2002-12-26
作者简介:
李春香(1965—
女,辽宁沈阳人,硕士,副教授,主要从事自动化专业教学和科研工作,主要研究方向为计算机控制技术和人工智能控制技术。
文章编号:
1000-8829(200306-0051-04
能力风暴机器人用于灭火比赛的策略开发
StrategyDevelopmentofPuttingOutaFireforAbilityStormRobot
(茂名学院,邬文辉,钟碧良
摘要:
C语言开发环境,开发机器人灭火比赛等项目。
重点分析研究能力风暴机器人进行“灭火比赛”的策略。
关键词:
能力风暴机器人;硬件;灭火比赛;控制策略中图分类号:
TP399文献标识码:
A
Abstract:
Firstly,thesignificanceofthedevelopmentandthefunctionsofabilitystormrobotareexplained.Then,thehardwarecontrolsystemandtheprincipleofabilitystormrobotareintroduced.Finally,somefunc2tionsofabilitystormrobotforthegameofputtingoutafirebasedondevelopingenvironmentofJCaredevel2oped.Toanalyzeandstudythestrategyofthegameofputtingoutafireistheemphasesofthispaper.
Keywords:
abilitystormrobot;hardware;gameof
puttingoutafire;controlstrategy
自从人类创造了第一台机器人以后,机器人就显示出它极大的生命力,在几十年间,机器人技术得到迅速发展[1]。
能力风暴机器人(以下简称机器人是能够自主运行的智能机器人,它有自己的运行环境———交互式C语言(简称JC,该语言具有出色的交互式功能[2,3]。
利用这个环境,机器人可以与外界环境进行交流,即通过这个交互式平台实现人类赋予它的某些智能行为的能力,如观察、行走、避障、说话、听话、跟随等。
机器人是融合了光学、机械、电子、计算机、人工智能等多学科知识的成果。
开发本机器人项目具有三方
面的意义:
①它采用模块化结构,可以从中了解并掌握光学、机械、电子、计算机等学科知识;
②它提供强大的交互式C语言(JC,便于学习和进行软件开发;
③它运用开放式接口,可以从各方面扩展它的功能,使它能够完成多种极具挑战性的任务。
本文用机器人开发灭火比赛项目,赋予它灭火的功能。
1 机器人的硬件
人们对周围环境反映的主要过程是:
感觉→大脑
思考→作出反映[4]
。
机器人信息控制处理流程也是如此。
这个信息控制处理流程的3个阶段分别由传感器、微控制器和驱动器来实现,从而构成了机器人控制系统的三要素。
1.1 传感器
感知环境的能力是产生智能行为的前提。
机器人有多种传感器,可根据需要进一步扩展其他传感器,使它拥有多种感知环境的手段,再配合它的先进大脑(微控制器,就能在实际环境中完成一些特定任务,产生丰富的智能行为。
1.1.1 碰撞传感器
碰撞传感器是使机器人具有感知碰撞环上的碰撞信息能力的传感器。
在机器人的左前、右前、左后、右后4个方向各设置一个碰撞开关(常开,它们与碰撞环共同构成了碰撞传感器。
1.1.2 红外传感器
在机器人上,由两只红外发射管(970nm和一只红外接收模块构成红外传感系统。
主要用于检测前方、左前方和右前方的障碍,检测范围为10~80cm。
1.1.3 光敏传感器
机器人上有两只光敏传感器,可以检测到光线强弱。
光敏传感器其实是一个光敏电阻,它的阻值受照射在它上面的光线强弱的影响。
如果改变照射在光敏电阻上的光线强弱,可观察到读数值的变化。
光线越
・
15・能力风暴机器人用于灭火比赛的策略开发
暗,数值越大;光线越强,数值越小。
1.1.4 光电编码器
光电编码器是一种能够传递位置信息的传感器,由光电编码模块和码盘组成,靠发射与接收红外光来工作。
在能力风暴机器人上有两只光电编码器,通过它们可知道机器人行走的距离和转弯角度。
1.1.5 麦克风
机器人上的麦克风(microphone是能够识别声强大小的传感器。
1.2 机器人的控制单元
1.2.1 微控制器
控制器,即MotorolaPLCC封装形式的52条引脚的方形MC68HC11A1芯片[5,6]。
这样就以极少的周边芯片获得了齐全的功能。
68HC11是增强型的8位机,有8个模拟口,5个输入捕捉,3个PWM输出,16位地址,8位数据总线,串口,以及4个通用I/O口。
1.2.2 外部存储器
机器人扩展了32KB的静态不挥发RAM,其优点是既有静态RAM的速度和方便(70ns,又有E2PROM或FlashROM的掉电不丢失性,从而能令程序和数据合用一个芯片。
AS62256写入的数据可保存10年以上,同时具有可靠的上电、掉电、强静电等数据保护功能。
1.2.3 通信
机器人采用MAX232串口驱动芯片,有2路输入输出,PC发过来的信号再经过一路输入去驱动发光二极管,当PC传送数据给机器人时,它上面的黄色发光二极管会闪动。
1.2.4 复位系统和电源
计算机有多种复位方式:
上电自动复位、外部RE2SET复位、看门狗复位(软件工作不正常时、时钟监视复位。
机器人采用前两种复位方式。
1.3 驱动器
机器人作用于环境的驱动器有3种:
直流电机、喇叭和LCD。
1.4 硬件扩展
1.4.1 灭火风扇
为使机器人具备完好的灭火能力,笔者在机器人上扩展了灭火风扇装置。
此装置用于吹灭蜡烛火焰,由支架、直流电机、扇叶、导线及螺钉等组成,是一个简单易用的扩展装置。
1.4.2 火焰传感器
要进行灭火项目,必须让机器人对“火”具有敏感性。
若只利用机器人上的光敏传感器是远远不够的,因此又扩展了一对火焰传感器(远红外火焰探头,利用它可以探测火源或其他一些波长在700~1000nm范围内的热源[4]。
2 开发机器人灭火比赛项目
机器人的硬件系统和硬件执行机构决定机器人的极限潜能,。
开发机器人用的是基于C语言(JC。
1
:
有4个形状、大小一样的房间,,让机器人像消防队员一样,自己能找到火源(蜡烛并完成一系列灭火动作。
这个比赛项目由3部分组成,即避障、找火、灭火。
2.1.1 “避障”
机器人在行走过程中必须能避开障碍物,所以在考虑“行走”时必须分两种情况:
正常行走(无障碍物和避障行走(有障碍物。
对于第一种情况,可以调用drive(inttrans,introt函数。
为了避免左右轮的速度偏差,也可调用driveb(inttrans,introt函数,必要时配合sleep(floati函数。
通过取用不同的trans值、rot值和i值,来确定行走方向和速度。
当遇到第二种情况时,利用红外传感器来检测前方10~80cm距离内的障碍物,再结合碰撞传感系统,就可以较好地避开障碍物。
碰撞环检测系统,调用库函数bumper(;红外线传感器检测系统,调用库函数ir-detect(来检测障碍,调用一次,红外探测系统就开启一次。
2.1.2 “找火”
为了找到火源,必须有探测火源的装置。
笔者选用火焰传感器(火焰探头。
在寻找火源时,可以不用光敏传感器,而在机器人的左前、右前、左后、右后4个方向各装上一个火焰探头,以提高探火效率。
其中前方的火焰探头装在原来光敏传感器的位置,后方的探头通过扩展,即在PE6、PE7口分别扩展了右后方和左后方的火焰探头。
“找火”分成3部分:
一是确定机器人感应到“火”时的光强临界值,包括感觉到或找到火光的临界值和机器人处在合适灭火位置的临界值;二是收集探测数据,包括碰撞检测数据和光强检测数据;三是对收集的数据和基准值进行比较,从而控制机器人的找火行为和灭火行为。
在进行项目之前,必须根据实地情况确定3个光强临界值:
即感应到或找到火光的临界值、机器人处在合适灭火位置的临界值和“无火”(蜡烛熄灭的临界值。
对这3个值,可以先编制一个简单的光强检测程序,在不同环境下取多次测量的平均值来确定。
基准值的合适与否将最终决定整个“找火”过程乃至“灭火”过程的成败。
因此,对这3个数据必须进行严格测量。
为得到在不同外界环境下的临界值,测量了白天(分关
・
2
5
・《测控技术》2003年第22卷第6期
窗和不关窗两种情况和晚上(分关灯和不关灯两种情况时的临界值。
测量步骤如下:
①在房间内合适的位置点燃蜡烛,下载并运行光强检测程序;
②把机器人放在刚好使蜡烛光强数据与蜡烛周边其他光强数据形成区别的位置;
③观察火焰传感器的检测值,并将这些值不断地记录下来,记完后熄灭蜡烛,并停止运行程序(注意控制蜡烛的高度,高度也会影响测量值的大小;
④将测得的值进行平均,
光”的临界值;
⑤(如离蜡烛10cm,重复步骤“能够灭火”的临界值;⑥熄灭蜡烛后,再运行检测程序,按照步骤③以确定“无火”临界值。
通过测量,发现前方左右两个探头在同一位置相同光强下,左边返回值一般比右边大。
所以,对于“找火”临界值和“灭火”临界值必须分别确定左右两个值才行。
对探测数据的收集,可利用左前、右前、左后、右后的4个火焰探头探测,并通过调用库函数analog(0、analog(1、analog(6、analog(7来获得这4个方向的火光测量数据。
根据函数返回值的变化来判断红外光线的强弱和火源的远近,从而控制机器人的“找火”行为。
控制方法步骤如下:
①在前方的探测值都小于“找火”临界值,但两个值之差的绝对值大于10(暂时确定10的情况下,若左边探测值大,则向右转一定角度(初步确定转15°左右,调用drive(0,60和sleep(0.05,里面的函数值根据不同地面而作相应调整;反之,则向左转一定角度。
当后方的任何一个火焰探头探测值小于“找火”临界值时,则向后转,然后再根据前方探头的探测值决定是左转还是右转。
②如果前方火焰探头的探测值都小于“找火”临界值,并且前方两个探测值之差的绝对值小于10,则向前方缓慢行走。
③如果前方两个探测值都小于“灭火”临界值,那么机器人停止“行走”。
(4如果后方火焰探头的探测值小于“灭火”临界值,则机器人向后转,再根据步骤③的方法为机器人定位。
2.1.3 “灭火”
在机器人能很好地“行走”、
“找火”之后,要解决的问题就是怎样去“灭火”了。
要想灭火,就得采用合适的灭火方法。
灭火方法有很多种,可以喷水或用化学物质灭火,也可以用风扇来灭火。
由于风扇在使用上比水和化学物质更方便,因此,采用风扇装置灭火。
在硬件部分已经扩展了该装置,通过调用dcmotor3(1和dcmotor3(0函数,就可以控制灭火装置的开和关。
在“找火”过程中,完成了机器人灭火的合适定位。
当前方火焰探头或者后方火焰探头检测的数据都近似于灭火定位的基准值时,调用(1函数,开启灭火装置。
一边开风扇,
调用dc2,。
。
机器人在四室一厅的房间中,遇到不同环境时能走出合适的路径(也就是如何控制转向问题。
所以在项目实施时,必须认真考虑drive(和sleep(函数的参数设置问题。
本项目以多进程来实施,具体实施时进程间是同步并行的,但有些资源不允许同时使用,所以进程间还是有优先级的。
优先级由高到低为:
避障、灭火、找火、路径规划。
只有这样,才能保证机器人找到火源并把火熄灭。
2.2 软件开发
鉴于“灭火项目”的复杂性,实施“灭火”的关键点往往交叉存在,充分利用JC开发环境的多任务和库函数齐全的特点,采用多进程编程方法。
现给出主模块程序:
voidmain( /3主函数3/
{ int-motors(;
start-process(sensing(,1; /3环境检测模块3/
start-process(run(,1; /3电机运行模块3/
start-process(avoid(,1;
start-process(escape(,1; /3碰撞避障模块3/
start-process(fireseek(,1; /3找火模块3/
start-process(fight(,1;
start-process(ctrl-drive(;/3行走速度控制模块3/
}
/3碰撞避障模块3/
intescape-trans,escape-rot;
intescape-flag;
voidescape(
{
while(1
{
if(bmp==0b0011
{ escape-flag=1; /3激活避障行为3/
escape-trans=-70;
escape-rot=0;
sleep(0.1; /3后退一定距离3/
escape-trans=0;
escape-rot=803direction; /3随机转向3/
sleep(0.1;
}
elseif(bmp==0b0010
{ escape-flag=1;
escape-trans=0;
・3
5
・
能力风暴机器人用于灭火比赛的策略开发
escape-rot=-80; /3右转3/
sleep(0.1;
}
elseif(bmp==0b0001 /3右前方碰撞3/
{ escape-flag=1;
escape-trans=0;
escape-rot=80; /3左转一定角度3/
sleep(0.1;
}
elseif(bmp==0b1100 /3后方碰撞3/
{ escape-flag=1;
escape-trans=80;
escape-rot=0;
sleep(0.;33/
escape-0
escape-rot=3; /3随机转一定角度3/sleep(0.1;
}
else
escape-flag=0;
}
}
3 调试运行
笔者按照灭火比赛规则规定的场地制作一个模拟赛场,将编好的应用程序下载到机器人上。
调试过程和步骤如下:
①按照比赛规定,在场地的任一“房间”里放置一根足够高的蜡烛,并点燃;
②掌握好当时环境的“三个临界值”,置机器人于赛场指定的位置;
③按下机器人的“运行”键,观察机器人的行走路径及其反应能力。
通过调试,,灭火效率较高,智能性较好,
4
扩展硬件选择适当与否直,必须认真考虑。
比如,灭火比赛项目必须使用火焰传感器而不是光敏传感器。
②通过开发灭火比赛项目,并进行模拟实际比赛环境的调试,能够较好地完成任务,使机器人具备了较强的智能性。
③开发的机器人还存在性能不稳定的问题,即通用性不够强。
在某个环境开发的项目程序不能在别处不同的环境下直接让机器人完成任务,而必须重新检测,确定某些参考值,再进行相关调试才能达到目的。
参考文献:
[1] 王信义.机电一体化技术手册[M].北京:
机械工业出版社,1994.[2] 广茂达公司.能力风暴个人机器人操作手册[Z].2001.
[3] 广茂达公司.JC使用手册[Z].2001.
[4] 王化祥,张淑英.传感器原理及应用[M].天津:
天津大学出版社,2002.
[5] 邵贝贝,程建平.微控制器开发技术[M].北京:
清华大学出版社.[6] Motorola.82bitMCUapplicationsmanual[Z].1996.□
威达电精进创新SAGP2648展翅翱翔
威达电于日前针对市场的需求,以及为破除PICMG长久以来的限制,开发出新一代的PIAGP系列产品,透过主板上的AGP接口金手指,将AGP总线信号转换至背板上,让背板可提供一组AGP(8XMax=2132MB/s扩充槽,如此不必再迁就PCI频宽的慢速限制(Max=133MB/s,引领工业计算机进入高速影音多媒体的时代。
在主板部分推出SAGP2815EV跟SAGP2845EV后,因为其价格与效益比,市场反应相当良好,像韩国体铁道局及日立计测等单位都相继导入。
由于各界热烈的支持,威达电又新推出PIAGP主版第三款成员“SAGP2648E”。
SAGP2648E支持IntelP4/CeleronCPU及Hyper2Threading技术,外频最高可达533MHz,采用SiS963/648芯片组,兼顾价格、弹性与效能。
SAGP2648E支持到最新的AGP8X规格,可达2.1GB/s的数据传输速度,兼容各式的高速AGP显示卡,同时,威达电也特别研发并推出AVGA2X400显示卡来与SAGP2648E做完美的搭配。
AVGA2X400采用SiSXabre400+SiS301芯片,支持AGP8X数据传输速度以及双屏幕输出之特殊功能。
SAGP2648E身兼多项优质规格,是其他工业计算机所无法比拟的,如最新一代的双信道的Serial2ATA,数据传输量可达150MB/s,仅72pin传输接线埠,比传统IDE402pin线材更少、宽度也更小,但传输距离却更长(100cm了。
而且Serial2ATA支持热插拔,不但整线方便、组装容易,而且不易阻碍系统散热,对于系统硬件配置与整合来说,可是一大福音。
SAGP2648E同时支持4个USB2.0埠和2个IEEE21394埠,方便连接高速外接式装置,以及数字相机、
甚至SAGP2648E本身就是一组剪辑平台,透过IEEE21394或USB2.0连接影音装置,经过AGP8X的显示卡与高效能Hyper2Thread2ingCPU处理,再加上Serial2ATA的高传输速度储存资料,一机搞定。
另外,SAGP2648E还提供CompactFlashTypeII的插槽,能让用户将系统软件或固定执行的程序,烧录在CompactFlashCard中,一者不怕病毒入侵,二者程序不怕毁损,三者可随时替换FlashCard,以维持系统自动化的高可靠性。
另外要注意的是,需加上LPISA2KIT01模块后,才可以提供ISABus信号。
SAGP2648E能搭配的背板已多达二十几款(PCIAGP/PX2AGP,其螺丝孔位与旧背板系列相同,因此可直接放入既有之威达电机箱内,对于长期使用工业计算机解决方案的厂商而言,可以从传统的PICMGCPU卡,在不需更换机箱设计的情况下,直接升级到具备AGP总线的PIAGP解决方案,大大降低转换之成本,真是一个升级快速,能立即享受的好产品。
・
4
5
・《测控技术》2003年第22卷第6期