模型设计原因:
GPS有着全球性、全天候、实时性的导航优势,但是当遇到城市高层建筑物、林荫道、立交桥及涵洞隧道等卫星信号“盲区”时,GPS便不能为用户提供精确的导航信息,尤其是连续的导航信息。航位推算(DR,Dead-Reckoning)主要是利用方向传感器(陀螺仪)和速度传感器(里程仪)来推算车辆的瞬时位置,可以实现连续自主式定位。但由于其推算过程是一个累加过程,方向传感器的误差会随时间的延长而积累;另外,DR推算只能确定物体的相对位置和航向。考虑到GPS导航和DR自主式导航的优缺点,可以将GPS和DR结合起来可以起到互补的作用。DR可以有效的解决GPS的“盲区”现象,GPS可以抑制DR的误差积累,并且解决DR的相对航向问题。
GPS的工作原理:
GPS系统组成有三部分:空间部分、地面支撑部分、用户接收机部分。
我们主要关心的是用户接收机部分。GPS接收机按功能用途可以分为很多种,我们主要关心的是导航型。运用GPS进行测量和导航的方法也有很多种。
1. 单点定位:只要一部GPS接收机,主要接收卫星发射L1载波上的C/A码,误差一般在0-15米,其中5米左右的概率较大。当然型号不同可能可能精度也有所不同。但是最大误差不可能小于15米。
2. 静态测量:主要是三台GPS同时工作,精度较高,主要应用于控制点的测量。
3. 后处理动态(PPk):属于静态测量,需要两天GPS接收机同时工作,精度主要在0-1.5米,基本可以满足我们工作的需要。
4. 伪距差分(PDK):需要用到沿海地区的信标台,所以主要应用于沿海地区,精度在1米左右。它用到了差分技术。
5. 载波相位差分(RTK):也用到了差分技术,两台GPS接收机需要实时的通讯,所以对接收机的要求也比较高。所以造价也较高。
考虑这几种测量方法,我们可能主要用的是单点定位和后处理动态(PPK)所以主要了解的是这两种方法的工作原理。
单点定位:
GPS接收机主要接收卫星发射L1载波(L2C和L5目前只要几颗卫星上存在)上的C/A码,同时还要受SA(美国为了降低卫星精度而添加的干扰)
所以精度较低,一般为0-15米,其中误差主要集中在5米左右。
单点定位图
卫星通过L1载波向GPS接收机发射星历文件,星历文件主要包括每个卫星在WGS-84坐标系中的精确位置,卫星时间,卫星发射载波的时间等。如图:卫星1的坐标为(x1,y1,z1)卫星2(x2,y2,z2)、卫星3(x3,y3,z3)、卫星4(x4,y4,z4)。根据空间中求两个点直接的距离公式,我们只要三颗卫星就可以求出来GPS接收机在84坐标系中的位置,但是因为卫星的时间和GPS接收机的时间有可能不同步,它们之间有可能又时钟差,所以另外一颗卫星主要是求时钟误差。也就是为什么单点定位必须要有4颗卫星信号才行。这部分可能会牵涉到的程序设计主要是对星历文件和钟差(由于卫星时间和接收机时间不同步造成的)这些数据的操作,GPS接收机计算出来的坐标数据的读存操作。应该不是系统设计的重点和难点。况且销售GPS接收机的厂家也应该有相应的成品软件。
后处理动态(PPK):
需要两台接收机同时工作,一台放置在一个已知点上,作为基准站,另一台作为测量用,两台接收机之间不需要进行实时的通讯,每一台接收机的工作原理就相当于单点定位,两台接收机之间的距离不能太大,一般为15公里左右,另外:两台接收机需要同时接收五颗相同卫星的信号(其中一台主要用于参照)。主要原理:基准站的接收机接收的信号和用于测量的接收机接收的信号进行比对,从中除掉因电离层干扰、轨道误差、大气层折射等因素引起的误差。
后处理动态图
基准站要先开机,按时间段记录数据(比如一秒一次),第一秒它测出基准站的位置坐标为(X1,Y1,Z1),以后依次为:(X2,Y2,Z2)、(X3,Y3,Z3)、(X4,Y4,Z4)……..而用于测量的接收机在A点第二秒测得的数据是(xa,ya,za)。因为两台接收之间的距离和卫星与接收机之间的距离相比,两台接收机直接的距离可以忽略(15/20200),从而所受的电离层干扰、轨道误差、大气层折射等误差可以视为相同,因此先利用基准站求出误差常数,依次为:Tx =X2-X,Ty=Y2-Y,Tz=Z2-Z。所以A点的精确坐标应该为测量值加上A点的误差常数即为:(xa+Tx,ya+Ty,za+Tz), B、C点依次。两台接收机的数据必须进行比对才能求出比较精确的坐标值,所以这种方法实时性较差。这部分的程序设计和单点定位的程序设计一样主要是对星历文件和钟差还要两个接收机的数据进行比对,对大量数据的操作。程序也应该不是系统设计的重点和难点。
陀螺仪和里程仪:
陀螺仪按工作原理和功能也可以分为很多种,有:光纤陀螺、微机械陀螺、电子陀螺等。用于导航的主要是电子陀螺。电子陀螺主要是替代以前的磁罗盘,磁罗盘是依靠物理磁介质通过地球磁场来获取磁北方向,因为是物理磁介质所以很容易受到外界影响,然而电子陀螺可以克服这个缺点。所以电子陀螺的定位原理和磁罗盘一样:通过地磁场获得磁北方向,然后再获取汽车行使的方向,从中记录汽车行使方向和磁北方向的夹角(磁偏角),依靠此夹角对汽车进行导航。不同型号的仪器有不同的参数。陀螺仪通常和里程仪同时使用,里程仪主要通过获得的脉冲信号和所用的时间来获得汽车行使的即时距离。在它们的组合中我们可能主要关心的是夹角,角速度,加速度,脉冲数等参数。如果有方向(夹角),有距离,又有初时点的坐标,数学上很容易求得另一个点的坐标,无论是分散的还是连续的。
这部分的程序设计应该也是一些关于数据的操作和一些串口问题,还有一些数学公式的编写,也不应该是系统设计的重点和难点。
GPS接收机有自己无可比拟的优势,但是也有不可避免的缺陷,比如卫星信号盲区。DR推算也是一样,有自己的优势和缺陷,缺陷:需要初时化、存在误差累积,所以在汽车导航中将两种仪器结合是一种很好的方法。
系统设计方案一:
将单点定位和DR推算通过数据融合算法结合起来,目前用于汽车导航的数据融合算法主要是卡尔曼滤波算法,卡尔曼滤波又分为分布式卡尔曼滤波和集中式卡尔曼滤波两种,目前应用与汽车导航的主要是分布式卡尔曼滤波。将单点定位和DR推算通过卡尔曼滤波的融合,能够有效的防治GPS数据的漂移、DR推算过程中的误差积累。基本原理如图:
单点定位和陀螺仪结合使用图
开始时,GPS接收机接收GPS信息得到开始位置的坐标(xg,yg,zg),然后用这个值初时化DR推算,然后将两个值通过卡尔曼滤波融合,即得到开始位置的相对准确坐标(X1,Y1,Z1),开始的时候GPS的值必须相对精确(因为需要初时化DR推算的值),这样就要求GPS接收机在开机时需要在同一个地方停留一段时间,这样DR有了初始值就可以推算出一个值(xd,yd,zd)(对DR推算来说它只需要初时值就行了),然后将(xg,yg,zg),(xd,yd,zd)通过数据融合求出开始位置相对精确的坐标(X1,Y1,Z1)。当汽车行使到第二个点的时候,GPS接收机可以得到第二个点的坐标(xg2,yg2,zg2),通过开始位置的精确值(X1,Y1,Z1)初始化DR推算,再利用DR测出的方向和时间,即可推算出第二个点的坐标(xd2,yd2,zd2),然后再将DR推算出的值和GPS接收机算出的值通过卡尔曼滤波融合,这样就求出了第二个点的相对精确坐标(X2,Y2,Z2),以后依次。当GPS接收机接收不到卫星信号时,此时全部依靠DR进行推算,推算的初始值为上一时刻经过卡尔曼滤波输出的精确值。在没有卫星信号时,DR推算可能会出现误差的累计现象。
这种方法的重点和难点应该是卡尔曼滤波的融合算法,卡尔曼滤波也应该是整个系统的重点和难点。因为关于卡尔曼滤波的资料相对较少,另外卡尔曼滤波所涉及的数学知识较深,数学面也比较广,很难完全领悟其融合算法的实质。目前只能最简单的进行模拟(简化大量考虑因素),另外到目前为止还有很多关于卡尔曼滤波的问题没有解决,自己对卡尔曼滤波的理解也无法的到完全的肯定。这个系统中可能牵涉到的其它程序模块应该有不同坐标系的坐标转换、大量数据的读存、GPS信号传递协议、数据在仪器之间相互传递程序、DR推算的数据和GPS接收机测量的数据进行互操作,另外就是软件的界面等。在这些模块中,虽然有些功能无法完全模拟,但这些应该不是系统的难点。
方案的优缺点:
优点:系统的实时型较好,整个系统的造价(主要是仪器)不高,系统比较灵活,系统的误差比较稳定(能有效抑制GPS的漂移现象)。
缺点:误差范围可能较大(0—15米),数据需要实时处理。
第二种设计方案:
考虑到我们我们主要的应用是道路的测量,对实时性要求不高,所以我们可以将后处理动态(PPK)和DR推算结合使用。
工作原理如图:
用于测量的接收机和陀螺仪的结合使用
假设点A、B、C、D、E、F是将要测量地点,卫星信号在A、B、C、F处信号好(卫星数大等于4颗),而在D、E、处没有卫星信号,或者卫星信号差(卫星数小于4颗),同时基站的GPS接收机一直处于工作状态。用于测量的GPS接收机可以很顺利的获得A、B、C、F四点的坐标,分别为(xa,ya,za)、(xb,yb,zb)、(xc,yc,zc)、(xf,yf,zf),当接收机位于D点时,因为没有了卫星信号,系统作一个记录(比如以时间为纪录),表示此刻没有卫星信号或者信号不全,此时调用陀螺仪导航,系统取得上一个位置(C点处)的坐标,用上一个坐标值初始化陀螺仪。C-D的过程中陀螺仪记录了角度a1这个值,通过角度a1和里程仪再推算出D点的坐标,再用D点推算E点直到卫星信号丰富的F点,这里D、E两点的坐标虽然可以推算来,但因C点不够精确,所以DE两点的坐标也是不够精确的,我们只要记录下了C点到D点的角度和里程仪所接收到的脉冲数就行了,D点到F点也一样。用于测量的接收机存储的数据就有(xa,ya,za)、(xb,yb,zb)、(xc,yc,zc)、(xf,yf,zf),陀螺仪的角度a1,a2,a3,里程仪脉冲数m1,m2,m3;这几个主要的值,然后再将(xa,ya,za)、(xb,yb,zb)(xc,yc,zc)、(xf,yf,zf)这四个值和基站同一时刻所测量的值进行比对,除掉由于共同原因(电离层干扰、轨道误差、大气层折射)所产生的误差,也就是运用PPK技术得到相对准确的ABCF点的坐标,然后用相对准确的C点的坐标初始化陀螺仪,利用陀螺仪所记录的角a1,a2,a3和脉冲数m1,m2,m3,这几个量来推导出DE点的精确值。
当然测量数据的过程也可以用方案一的方法代替,也就是用于测量的GPS接收机和陀螺仪结合卡尔曼滤波求出每一个点的坐标值,同样这个过程也需要记录没有卫星信号的标记,然后再将融合后的数据和基站的测量数据进行比对,除掉一些误差,因为卡尔曼滤波除掉的误差主要是信号的漂移,和陀螺仪误差累计等,这些误差产生的原因和后处理静态(PPK)所处理误差的产生原因(电离层干扰、轨道误差、大气层折射)不一样。所以数据的精度原理上应该更高,但如果它们误差产生的原因相同,那么这种方法便行不通。
这个方案系统设计其实是分为两个过程的:第一:GPS接收机和陀螺仪这一部分,可能牵涉到的问题有:坐标的转换(包括坐标系的选择),GPS数据的接收,对GPS数据的分析(判断卫星个数),GPS和陀螺仪工作模式的互换,陀螺仪数据的接收等。如果运用滤波处理还要考虑卡尔曼滤波这一块。第二:基站的数据和测量的数据比对,可能牵涉到的问题有:对星历文件的分析,对大数据量的操作,数据在不同机器上的相互传递,求取没有卫星信号的那些点坐标的算法(主要是数学公式的编写),坐标的转换问题。
系统设计的缺点:可操作性差不够灵活(每测量一个区域需要先找到一个已知点),系统的造价高(需要两台接收机),实时性差(两台接收机上的数据需要进行比对才能得出比较精确的结果)。唯一的优点就是精度较高(1-1.5米)。
以上的对GPS接收机和陀螺仪的描述,主要是自己对它们的一些理解和认识,很多内容自己也无法得到完全肯定,另外第一种系统方案目前比较通用(主要应用于汽车实时导航),第二种方案完全是自己为了满足测量的需要而想象的,其可行性究竟有多高,自己没有更深入一步的去了解。两个系统涉及到程序模块的也只是自己想到的可能会用到的知识和可能会出现的问题,可能还有很多因素没有考虑。
作者:张宇
转载的朋友请一定注明出处谢谢!半支烟阿杰
http://blog.csdn.net/gisfarmer/