自主式移动机器人的无线控制实现_第1页
自主式移动机器人的无线控制实现_第2页
自主式移动机器人的无线控制实现_第3页
自主式移动机器人的无线控制实现_第4页
自主式移动机器人的无线控制实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自主式移动机器人的无线控制实现The Realization of Wireless Control on Autonomous Mobile Robot同济大学信息与控制工程系(200092)陈华东 周健 蒋平【摘要】如何提高自主式移动机器人对各种传感器信息的处理能力是一个关键技术问题。在机器人自身有限负重能力情况下,通过无线通信方式,借助外部计算机和工作站处理传感器信息成为一种可行方案。本文以一种轮式移动机器人作为控制平台,成功地实现了自主式移动机器人的无线控制。【关键词】机器人,控制,无线,通信Abstract: It is a key technology how to improve

2、 the ability of autonomous mobile robot to process information from sensors. Under the condition of its limited load ability, it is possible for robot to process the information through other computer or workstation via wireless communication. This paper describes the implementation of wireless cont

3、rol based on a wheeled mobile robot.Key words: robot, control, wireless, communication1. 引言自主式移动机器人是一个对外界环境高度开放的智能系统,能够按照预先给定的任务指令,根据已知的地图信息作出全局路径规划,并在行进中不断感知周围的局部环境信息,自主地作出各种决策,自动避开障碍物,引导自身安全行驶到指定的目标,执行要求的动作和操作。它与固定式机械手相比具有更广阔的运动空间,更强的灵活性。移动机器人可广泛应用于工业、国防、航空航天以及服务性行业,如工业上危险地区的标本采样和故障处理、国防上无人驾驶战车等。随

4、着人口老化和工作、生活节奏的加快,人类在服务性行业迫切需要助手。无论是家庭、医院,还是在宾馆、商店,都有移动机器人的用武之地。全球来看,美国的火星登陆者和日本的无人看护病房已走在前列。12近年来,在机器人和自动化领域里移动机器人的研究吸引了众多研究者的注意力,其中轮式移动机器人以其结构简单、容易实现成为受到欢迎的控制平台。另外一方面,移动机器人在与外部的通信方式选择上,由于其具有广阔的运动空间,无线通信成为移动机器人所必须具备的通信方式。在这种背景下,有关机器人无线控制的课题便应运而生。本文以一种轮式移动机器人作为控制平台,在计算机与单片机之间实现无线通信进而通过单片机与机器人之间的接口,成功

5、地实现了无线方式控制移动机器人。2. 机器人平台实验中采用能力风暴个人机器人作为控制平台。该机器人与传统意义上的工业机器人不同,体积微小,外形呈宇宙飞船形,直径约30cm,重量仅1kg。该机器人采用Motorola单片机68HC11作为微控制器,主要具有如下特点:1 属轮式移动机器人,采用左右两轮驱动,前后两轮随动。当两轮转速相等转向相同时,机器人沿直线行走;当两轮转速相等转向相反时,机器人沿原地旋转;当两轮转速不等转向相同时,机器人沿弧线行走。电机偏差可通过在软件中设置偏置量得到校正。2 机器人带有自己的专用开发系统,即交互式C语言(简称JC)。JC由两部分组成:编译环境(包含交互式命令行编

6、辑和调试功能)和机器人操作系统。JC实现了C语言的一个子集,它包括控制语句(for, while, if else)局部变量和全局变量,数组,指针,结构体,16位和32位整数,和32位浮点数。JC的一大优点是支持多任务程序的运行。68HC11支持串口功能,只需要在PC机上运用JC编程,通过串口线下载到机器人上后,拔掉串口线,机器人即可自主运行。3 机器人带有一定数量的传感器,初步具有感知周围环境的能力。机器人上带有碰撞传感器( bumper),光敏传感器,主动式红外测障传感器,旋转角度编码器和麦克风。其中麦克风没有方向性,能感知声音的强弱;光敏传感器能感知所在方向上的光强;主动式红外测障传感器

7、能感知前方40厘米以内的障碍物。碰撞传感器有效范围最小,能感受到四个方向上的碰撞;旋转角度编码器不是用于探测外部环境,而是测量轮子旋转的角度数。机器人仅依靠初始程序和自身传感器来运行,已具自主式移动机器人雏形。为了让机器人更准确地感知周围的局部环境信息,机器人往往需要处理周围的语音信息和图像信息。对这类信息的处理,一般有两种方式:(1)机器人用自己的“大脑”处理这些信息,然后分析、判断、执行动作,但这需要机器人具有功能强大的“大脑”;(2)机器人再添加一个“大脑”来处理这些信息,最后在几个“大脑”之间通信就行了。实验中,由于机器人自己的“大脑”还不够十分强大,不具有处理图像等复杂信息的功能,我

8、们利用计算机来处理这类信息,然后计算机通过无线通信以控制指令的形式将这些信息传给机器人,同时机器人响应计算机以确认信息。机器人设计了硬件扩展总线ASBUS,这样为机器人功能扩展提供了方便,也为计算机控制机器人提供了前提条件。硬件扩展总线ASBUS共提供了二十多条信号线,实验中将用到下面一些信号线: VCC:+5V电源GND:地PC0PC7:数据总线IS0IS3:输入选择线0-3OS0OS3:输出选择线0-3PA1PA2:输入捕捉口PA3:输出比较口3. 计算机与单片机间的无线通信3.1 无线通信模块计算机与机器人的通信,考虑到自主式移动机器人的特点,无线通信是较为理想的通信方式。实验中,无线收

9、发模块采用基于RF401无线通讯单片机的PTR2000微小型、低功耗、高速率19.2K无线收发数传MODEM。该无线收发模块主要有以下特性:1 体积微小,约40mm*27mm*5mm,且接收发射合一。2 工作频率为国际通用的数传频段433MHz,FSK调制,工作电压2.75.25v,功耗小,使用无需申请许可证。3 工作最高速率可达20k bit/s,也可在较低速率如4800bps、9600bps下工作,无需设置模块通信速率。PTR2000模块共有七个引脚,分别定义如下:VCC:正电源,接2.75.25VCS:频道选择,CS=0选择工作频道1,433 .92MHz,CS=1选择工作频道2,434

10、.33MHzDO:数据输出DI:数据输入GND:电源地PWR:节能控制,PWR=1正常工作状态,PWR=0待机微功耗状态TXEN:发射接收控制,TXEN=1时模块为发射状态,TXEN=0时模块为接收状态3.2 无线通信协议及校验没有信号时,PTR2000的串口输出是随机数据,因此需要定义一个简单的指令协议,如在发送时在有效数据前加几个字节的固定起始字节,在接收一方的软件中,检测到该固定标志后作为正式数据的开始。本实验中,传输协议定义为:开始1 开始2 开始3 数据1 数据2 数据3 8位校验 数据结束标志其中开始1是0XFF,开始2是0XFF,开始3是0X00。选择它们作为有效包开始的原因是:

11、测试和试验表明,255(0XFF)后跟0(0X00)在噪声中不容易发生。实验中通信有效数据有三个字节,分别表示能力风暴机器人的控制命令、平移速度和旋转速度。机器人的控制命令定义为:0b00000001表示前进,0b00000010表示左转,0b00000100表示后退,0b00001000表示右转,0b00000000表示暂停,等等。平移速度和旋转速度分别取0到100之间任一值,表示0到1m/s之间的一个速度。需要指出的是,通信中的有效数据可根据需要任意扩展。8位校验是对通信中有效数据的校验。实验中用“”作为数据收发结束标志。无线通信中信道的不确定性决定了对其必须进行通信校验。实验中采用CRC

12、校验3。在各种校验方法中,奇偶校验容易实现,但却是最不可靠的,因其只能发现奇数个错误。校验和能够检测到比奇偶校验更多的错误,但当字节顺序颠倒时,校验和不能发现,因其不能发现次序错误。CRC比校验和可靠。实验中生成多项式G(X)= X8+X6+X2+1,最后生成8位校验数据。单片机是汇编语言环境编程,计算机采用的则是Visual Basic语言环境。实验中为了提高通信的实时性,CRC校验采用了生成CRC校验表的方法,即从0到255生成256个字节组成的CRC校验表,放在一数组中,在CRC校验表生成后,对通信数据的有效数据只需进行查表工作,即可生成通信数据中的8位CRC校验码。下面写出了CRC校验

13、表的VB生成程序,生成的校验表放在数组crctable()中。 For i = 0 To 255 Step 1 count = i For j = 0 To 7 Step 1 If (count And &H80) = 0 Then count = count * 2 '用乘2来实现位的左移 Else count = count - &H80 count = (count * 2) Xor &H45 '与生成多项式g(x)= X8+X6+X2+1异或 End If Next j crctable(i) = count Next i3.3 计算机与2051

14、间的无线通信实验中,两个PTR2000模块用于计算机串口与单片机2051之间进行无线通信。单片机2051支持串口通信功能,性价比高,是计算机控制机器人的理想中介4。PTR2000模块与计算机串口的连接中,由于PTR2000模块支持TTL电平,计算机串口的RXD和TXD线需经电平转换5后分别与PTR2000模块的DO和DI相连。PTR2000模块与单片机2051的连接中,PTR2000模块的DO和DI分别与单片机2051的RXD(P3.0)和TXD(P3.1)连接。计算机和单片机2051与对方的通信流程分别见图1和图2。单片机2051可直接通过将P3.7位置1或置0而将无线收发模块置于发射或接收

15、状态。计算机串口对无线收发模块收-发状态转换的控制,由于实验中计算机采用的是Visual Basic 6.0的开发环境,可通过设置MSComm控件的RTSEnable属性6来实现。RTSEnble属性设为False时,串中RTS输出高电平,电平转换后将PTR2000置为发射状态;RTSEnble属性设为True时,串口RTS输出低电平,电平转换后将PTR2000置为接收状态。计算机与单片机的通信速率约定为9600bps,为了获得精确的波特率,2051选用11.0592M的晶振。串口端口初始化等待控制命令收到控制命令后,生成信息发送数组由信息发送数组生成CRC校验位,一起组成数据发送数组打开串口

16、发送数据检测单片机数据返回有数据返回吗?返回正确信息吗?否是否是检测是否收到计算机数据收到数据吗?将数据放入内存,取出信息数据生成CRC校验位,与收到的校验位比较两个校验数据一致吗?将数据送至机器人,并向计算机返回正确信息向计算机返回错误信息是否是否图1 计算机与单片机通信流程 图2 单片机与计算机通信流程4. 机器人与单片机间的通信由机器人硬件扩展总线ASBUS可知,机器人提供了8位的数据总线扩展口,由此可实现与单片机2051的通信。机器人的PC0PC7经过数据锁存器后分别与2051的P1.0P1.7连接,之所以用到数据锁存器,是因为机器人提供的数据扩展口是总线口,而不是具有保持功能的I/O

17、口,因此数据交换时,必须进行数据锁存。另外,机器人提供了输入捕捉扩展口PA1、PA2和输出比较扩展口PA3,实验中取PA1和PA3分别与单片机2051的P3.4和P3.2相连,构成通信握手信号。单片机2051和机器人与对方的通信是双向的,下面以单片机向机器人发送数据为例,作出单片机2051和机器人与对方的通信流程分别见图3和图4。检测PA1PA1=1?PA3=1,并接收单片机数据PA3=0,通知单片机已接收数据是否收到数据?数据接收完?机器人处理程序否是否是P3.4=1,向机器人发握手信号检测机器人握手信号P3.2P3.4=0,并向机器人发送数据,后检测P3.2执行下面程序是否P3.2=1?P

18、3.2=0?数据发送完?是否否是图3 单片机与机器人通信流程 图4 机器人与单片机通信流程5. 机器人无线控制的实现基于上面的计算机与单片机之间的无线通信和单片机与机器人之间的通信,设计无线控制机器人的总体框架如图5所示。计算机电平转换无线收发模块1无线收发模块2单片机数据锁存机器人无线通信图5 计算机控制机器人的总体设计从图中数据流向(箭头方向)可看出,整个通信过程均是双向的。计算机可用VB控件制作一个简单的机器人控制界面,在此界面上,可非常方便地设定机器人的平移速度和旋转速度,实时地控制机器人前行、后退、左转和右转以及运动的停止。机器人主程序如下所示,非常简单:void main ( )start-process (billiards_drive();start-process(billiards_bmp();start-process(billiards_command();其中billiards_drive( ) 为电机驱动进程,billiards_bmp( ) 为碰撞处理进程,billiards_command( )为响应计算机命令进程。每个进程运行5毫秒,然后交给下一个进程运行,这样便实现了多任务设置,也以后程序扩展提供了方便。在这个程序里,碰撞处理要优先于计算机命令的响应:一旦机器人遇上障碍物,机器人马上停下来,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论