GPS(全球定位系统)由24颗卫星支持,具备全球性,全天候,连续的导航与定位。由于其高精度,高速度,低成本,使用方便的特点,不仅在军事上获得广泛的关注,在民用部门的应用也越来越多。
目前,国内对GPS的应用主要集中在车辆信息服务系统和铁路、公路施工勘测上。对铁、公路路线的勘测可分两种情况,一是建设路线的需要,利用 GPS进行初测导线点与水准点的定位,一是对现有路线通过GPS采集路线数据,还原出实际路线图。对后一种情况,由于路线采集点密度和测量误差的因素,在 实际应用中,需要利用所得数据进行一定的拟合。
2 课题背景
在国内 ,现有机车头灯都是固定的,当机车进入弯道时,光线并不能实时照射在前方铁轨上。设计一种活动头灯,以机车路线数据为基础,通过GPS获得机车当前位置,并实时调整头灯转角,可以大大提高机车行车安全。该系统框图如下:
图1 机车头灯控制系统框图
在车载控制器中,GPS接收机获得的位置、速度数据与预先存储的路线数据表进行比较计算,最终得出当前机车所在位置需要发出的控制转角信号量。预先存储的路线数据表需要在个人计算机机中提前进行处理,即前言提到的拟合。无论是在车辆信息服务系统还是其他与地理路线相关的应用系统中,路线数据的采集与拟合都是极为重要的环节。
3 GPS数据的采集
GPS接收机接收到的数据是按一定报文格式的数据流以串口方式输出的。其格式为:
$GP RMC,081546,A,105.7038,N,30.3624,E,0.000,0.0,220406,1.1,W*78
以逗号为分隔符,各数据项依次表示新数据帧的开始标志、格林威治标准时间、数据有效标志、纬度 、南北纬标志 、精度 、东西经标志、移动速度、日期 、磁变、东西磁变标志与校验和。对于路线的拟合,实际需要的只是每个点的经纬度,为此需要进行提取处理,具体可通过便携计算机随车采集,计算机与GPS接 收机之间通过串口通信, 通信控制可利用微软公司的MSCcomm串行通信控件进行简单灵活的编程,另外也可以直接调用Windows API函数或动态链接库进行更底层丰富的设计。这些方法有很多文章进行专门的论述,本文就该系统实际采用的PC104微型主板通过串口通信的方法做个简单 介绍。PC104微型主板体积小,加上GPS接收机仍然非常小巧,便于携带,采集路线数据时置于机车上,采集的数据存储在自身FLASH上,采集完毕可以 通过IDE接口拷贝到个人计算机硬盘上。PC104装载的是DOS6.0系统, 对串口操作分软中断和硬中断两种方式,硬中断相对效率要高些。采用C语言在DOS下进行硬中断方式的串口通信编程步骤及注意事项如下:
1. 串行通信以通用异步发送/接收器8250进行控制,8250有10个可编程的单字节寄存器,占用7个端口地址,复用地址通过读/写操作和线路控制寄存器的 第7位来区分。COM1、COM2对应的7个端口地址分别为3F8H~3FEH、2F8H~2FEH。初始化串口主要是写波特率因子寄存器以设定通信速 率,其次是读取接收寄存器和中断标志寄存器以清除现有的接收或发送中断标志。
2. 硬中断通道IRQ4(COM1)和IRQ3(COM2)分别对应中断向量0BH和0CH,在载入新的中断服务程序之前必须获取并保存原中断服务程序的入口地址,相应函数为getvect()和setvect()。
3. 中断控制器8259有两个口线用作COM1和COM2硬中断通道,可通过设置其中断屏蔽寄存器位(bit4对应IRQ4,bit3对应IRQ3)来开启或 屏蔽,中断屏蔽寄存器的端口地址为21H。每次中断服务程序返回必须往中断命令寄存器(地址20H)写入20H以使8259清除相关寄存器位。
4. 在中断服务程序中,通过读取中断标志寄存器判别中断类型。按优先级高低依次为:接收出错中断、接收到数据中断、发送寄存器空中断、MODEM状态寄存器改变中断。响应中断后,8250自动复位中断标志。
5. 采用硬中断方式的串口通信必须设置合适的接收和发送缓冲区,缓冲区的读取和写入可以通过缓冲区首尾索引变量来操作。
4 三次样条插值的原理
随车采集的路线数据是一个个离散的点,对这些点数据进行平滑过渡,形成一条平滑曲线便得到机车行车路线。一般一条机车路线的数据采集点是有限 的,对相邻点进行简单连线过渡是比较粗糙的。在工程上,通常采取插值的方法来构造曲线,插值也叫拟合。插值有线性插值,立方插值和三次样条插值等方法。线 性插值应用比较广泛,但它只适用于离散点变化缓和,波动不大的情况,对于波动较大的情况,三次样条函数具有优良的性能。目前GPS在民用定位上还有5米左 右的误差,考虑到该因素以及采集点相对稀疏,采用三次样条插值是比较合适的选择。
样条也就是弹性细木条或金属条,早期工程技术人员利用样条的弹性弯曲使之通过一系列离散点来得到平滑曲线。在数学上,利用样条函数进行插值的方法即为样条插值。
假设在区间[a ,b]上,存在n+1个点满足:a=x0<x1<x2<x3<…<xn-1<xn=b,且存在函数f(x),如果此时另有一函数S(x)符合如下条件:
1. S(x)在区间[xi-1,xi](i=1,2,…,n)上均为三次多项式
2. S(x)通过上述所有节点,即S(xi)=f(xi)=yi(i=0,1,…,n)
3. S(x)存在一阶二阶导数在区间[a,b]上连续
则S(x)即称为三次样条函数,三次样条函数以多项式的方式表示如下:
S(x)=aix3+bix2+cix+di xi-1<x<xi(i=1,2,…,n)
根据条件2和3,可以得出以下两个方程组:
Si(xi)=aixi3+bixi2+cixi+di=yi
Si(xi-1)=aix i-13+bix i-12+cix i-1+di=y i-1 (i=1,2,3,…,n)
3ai-1x i2+2bi-1x i+ci-1=3aixi2+2bixi+ci
6ai-1x i+2bi-1=6aixi+2bi (i=2,3,4,…,n)
这两个方程组共有4n个未知系数,确定的方程只有4n-2个,必须附加两个条件才能求解,
文章评论(0条评论)
登录后参与讨论