基于GPS的机器人导航系统一、课题的来源及意义随着社会经济的飞速发展和科学技术的全面进步,以及人口老龄化、年青一代知识化、农林、水产、建筑、电力矿业、医疗等非制造领域中的熟练工人将日益短缺,智能机器人的出现成为不可阻挡的历史潮流。
但是如何实现机器人的高精度位移和动作成了当今时代的一大课题。
新一代智能机器人的研发在国内外已经受到越来越多的重视。
在工业发达的美、日等国,已研制出用于手工业、医疗、服务等领域的微小型机器人,如日本安川电机公司的SCORBOTER-V个人机器人,具有高轻度、高性能、高安全、高通用性的特点。
机器人的研究范畴将更加宽广,研究方法更加多样,研究对象更加复杂,与材料、物理、生物、信息等学科领域的交叉与融合更加深入。
二、方案设计及选择1. 总体方案设计本设计以新华龙公司的C8051F330单片机为控制核心,通过GPS模块C3-370C实现机器人的精确导航定位。
GPS模块实时接收卫星发射的时间、日期、经度、纬度、高度等信息,并通过RS232发送给单片机,单片机接收到信息后,根据GPS的NMEA-0183协议对接收到的卫星信息进行提取,获得所需要的时间、经度、纬度等有用信息,通过与当前所处位置坐标的比对计算,控制机器人的运行方向,从而实现机器人的精确导航。
由于卫星是不停地发送信息的,所以GPS 模块转发给单片机的数据量也是非常庞大的,所以,本设计采用外部扩展SRAM 来存储接收到的卫星信息。
并用LCD显示模块实时显示机器人当前所处的位置坐标和时间等信息,并给系统留有4 x 4的矩阵键盘接口,可以通过手动输入自行设定机器人的下一站位置坐标,实现机器人的灵活运动和控制功能。
冷启动时,系统启动时间1分钟以内,精度可达30米左右;热启动时,系统启动时间30秒以内,若上电发送定位修正信息,精度可达10米左右。
其系统框图如图1-1所示图1-1 系统框图2. 模块方案设计及方案选择1)系统控制核心----单片机新华龙公司的C8051F330 器件是完全集成的混合信号片上系统型MCU,采用高速、流水线结构的8051 兼容的CIP-51 内核,内含10位16通道高速ADC 和10位电流输出DAC,8k 具有系统重新编程能力的FLASH,可用于非易失性数据的保存,并允许现场更新8051固件,768(256+512)字节片内RAM,4个通用计时器,还有硬件实现的Smbus/I2C、增强型UART和增强型SPI串行接口、温度传感器等多种资源,并且内置25MHZ的高速晶振,可以有效减少系统电路的设计和系统的重量,使系统的应用更加灵活,不仅仅局限于机器人、机器鸽等。
是一款真正能独立工作的片上系统。
而且此单片机支持在片调试功能,片内调试电路提供全速、非侵入式的在系统调试(不需要仿真器),支持断点、单步、观察\修改存储器和寄存器,比使用仿真芯片、目标仿真头和仿真插座的仿真系统有更优越的性能。
故本设计采用这一型号单片机。
如图2-1所示为本设计控制核心的单片机最小系统原理图。
这是一帧GPS定位的主要数据,也是使用最广的数据。
$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。
标准格式:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR ><LF><1> UTC时间,格式为hhmmss.sss(时分秒)格式;<2> 纬度,格式为ddmm.mmmm(第一位是零也将传送);<3> 纬度半球,N或S(北纬或南纬)<4> 经度,格式为dddmm.mmmm(第一位零也将传送);<5> 经度半球,E或W(东经或西经)<6> 定位质量指示,0=定位无效,1=定位有效;<7> 使用卫星数量,从00到12(第一个零也将传送)<8> 水平精确度,0.5到99.9<9> 天线离海平面的高度,-9999.9到9999.9米M 指单位米<10> 大地水准面高度,-9999.9到9999.9米M 指单位米<11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量<12> 差分参考基站标号,从0000到1023(首位0也将传送)。
* 语句结束标志符xx 从$开始到*之间的所有ASCII码的异或校验和<CR> 回车<LF> 换行b.可视卫星状态输出语句($GPGSV)标准格式:$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…<4>,<5>,<6>,<7>*hh<CR><LF><1>总的GSV语句电文数;2;<2>当前GSV语句号:1;<3>可视卫星总数:08;<4>卫星号:06;<5>仰角(00~90度):33度;<6>方位角(000~359度):240度;<7>信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息);* 总和校验域;hh 总和校验数:78;(CR)(LF) 回车,换行。
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:<4>-卫星号,<5>-仰角,<6>-方位角,<7>-信噪比。
c.当前卫星信息($GSA)标准格式:$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><1>模式:M = 手动,A = 自动。
<2>定位型式1 = 未定位,2 = 二维定位,3 = 三维定位。
<3>PRN 数字:01 至32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
<4> PDOP位置精度因子(0.5~99.9)<5> HDOP水平精度因子(0.5~99.9)<6> VDOP垂直精度因子(0.5~99.9)<7> Checksum.(检查位).d. 推荐定位信息(RMC)标准格式:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<1> UTC时间,hhmmss(时分秒)格式<2> 定位状态,A=有效定位,V=无效定位<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)<4> 纬度半球N(北半球)或S(南半球)<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)<6> 经度半球E(东经)或W(西经)<7> 地面速率(000.0~999.9节,前面的0也将被传输)<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)5)通信模块串口是计算机上一种非常通用的设备通信协议。
RS232是美国电子工业协会推荐标准,全称为EIA-RS-232 标准。
RS232串口通信最远距离可达15米,双向传输,全双工通信,最高传输速率达20Kbps,但是RS232传输的数字量采用负逻辑,且与地对称,即:逻辑1 :-3V ~ -15V逻辑0 :+3V ~ +15V所以与单片机连接时常常需要加入电平转换芯片MAX232。
其电路原路如图2-6所示。
串口通信的传输过程:串口通信过程中,线路空闲时,线路的TTL电平总是高,经反相RS232的电平总是低。
一个数据的开始RS232线路为高电平,结束时RS232线路为低电平。
数据总是从地位向高位一位一位的传输,示波器读数时,左边是数据的高位,右边是数据的低位。
例如:对16进制数55aaH进行传输,当采用8位数据,一位停止位传输时,它在信号线上的波形如图2-3(TTL电平)和图2-4(RS232电平)所示图2-3 串口发送TTL电平图图2-4 串口发送RS232电平图串口通信的接收过程:a)空闲状态时,数据线为高电平,即逻辑“1”,当检测到数据线被拉低时,开始对接收时钟计数。
b)当计到8个时钟脉冲时,对输入信号进行检测,若还为低电平,则确认是起始信号,不是干扰。
c)接收端检测到起始信号后,每隔16个时钟脉冲读取一次数据线上的数据,直到读完所有传输的数据。
d)再依次读取奇偶校验位和停止位,停止位始终为高电平。
e)读完一次所传输的数据后,将数据线拉高,作为空闲状态。
等待下一次数据的传输。
其接收过程如图2-5所示图2-5 串口通信数据接收过程图由于GPS模块都留有串口接口,本设计中所使用的模块C3-370C的输出不能直接接到单片机,因此需要RS232转换电平后接入单片机,本设计中所使用的GPS模块为标准的N.8.1通信方式,没有奇偶校验位,1位起始位,8位数据位,1位停止位,数据传输的波特率为4800 bps。
R1 IN 13R2 IN 8T1 IN 11T2 IN 10R1 OUT 12R2 OUT 9T1 OUT 14T2 OUT 7C1+1C1 -3C2+4C2 -5U3MAX232C1104C2104162738495J1DB9RXDTXD图 2-6 串口通信电平转换模块原理图6)存储模块上电后,GPS 开始搜索卫星,当接收到卫星信号后就将接收到的信号通过串口的方式不停地发送给单片机,数据量比较庞大。
本设计中选用的单片机自带768字节的RAM ,但是,相对如此庞大的数据量来说还是有点小,因此,本设计采用外部扩展SRAM 芯片IDT71V124(128K x 8)来实现数据的存储和提取,SRAM 的数据存取速度相对较快,通过I/O 口实现与单片机的连接,操作方便、简单易行。