航位推算法(Dead reckoning,简称DR)是一种比较经典的导航方法,广泛使用在航海、航空和车辆自动定位系统中。航位推算法是利用初始位置,结合移动速度与方向来计算出位置的过程,即通过前一个计算历元的己知位置与时间间隔,以及从前一个历元到当前解算历元的平均速度及方向来进行计算完成。通过方向角将速度分解成东向速度与北向速度两个速度分量,各分量乘以时间间隔,得出位置的变化量,通过对初始位置矢量与位置的变化量求和,获得当前位置。
平台式惯性导航系统是INS惯性导航系统(Inertial Navigation System,简称INS)的其中一种,工作原理为:在稳定平台上安装陀螺仪和加速度计,通过加速度计测量载体沿平台坐标系各轴的加速度分量计算出载体速度、位置和对陀螺仪的加矩信息,而陀螺仪输出的信号则通过平台稳定回路,使平台跟踪导航坐标系。平台式惯性导航系统具有较高的精度,但系统设备的体积比较大,成本也比较高,故只适用于对精度要求比较高的导航定位系统。
GPS和INS都是独立的系统,导航信息也均由各自独立解算,采用卡尔曼滤波的方法对导航信息进行融合,并估计出组合导航系统的误差状态,然后再以误差状态的最优估计值来校正组合导航系统,最后解算出载体的位置、速度和姿态信息。组合导航系统一般采用反馈控制,以减小低精度IMU的输出误差。在反馈控制结构中,将滤波器估计出的传感器误差反馈给INS解算模块以补偿IMU输出误差。松组合方式提高了组合导航系统的可靠性,低精度INS与GPS多采用松组合。
GPS和INS也是作为两个独立的传感器进行信息融合。在到达4颗可见GPS卫星的情况下,紧组合和松组合导航精度基本相同,如果少于4颗星,紧组合依然可以跟踪航迹。紧组合算法的估计量为GPS与INS测量计算出的伪距与伪距率。上述两种组合模式下,均通过GPS测量值实现对INS误差漂移的控制,因此松组合与紧组合统称为GPS辅助INS的组合方式。
以位置、速度、姿态以及传感器误差作为卡尔曼滤波器的状态量进行估计,以INS与GPS解算的位置与速度信息作为滤波器的观测量,滤波器估计出的误差状态量用以修正INS的导航解算,从而输出车载组合系统的导航信息。
嵌入式组合导航系统硬件平台包括处理器模块、A/D采样模块与智能多串口通讯模块,计算机系统。
在组合导航系统基于车载的应用背景下,采用松组合的方式进行信息融合并设计卡尔曼滤波器作为组合导航滤波算法,以位置误差、速度误差、失准角及惯性仪表随机误差作为状态量,通过卡尔曼滤波进行估计。
卡尔曼滤波器得出估计值后,利用估计值进行校正,校正方法分两种:开环法和闭环法。开环法估计值仅校正系统的输出量,不对系统进行校正,输出校正的滤波器采用IMU原始测量值;而闭环法则将估计值反馈到系统中以校正系统状态,反馈校正的滤波器采用修正后的IMU测量值。IMU原始测量值数值大,修正后的IMU测量值数值小,如果系统状态方程为经过一阶近似的线性方程,那么状态量的数值越小近似的准确性就越高,因此两者相比,反馈校正的系统状态方程更为接近真实的系统状态动态变化过程。
信息融合算法是组合导航系统设计的核心工作之一。通过对卡尔曼滤波技术的设计改进可以有效提升低动态与窄带宽的GPS与高动态与宽频带的INS结合的互补优势。
DR 定位利用载体航向和里程信息,以相对定位的方式推算载体的当前方位。随着多种定位技术的交叉融合,现代车辆 DR 定位技术是传统意义上的 DR(罗盘、里程计定位)和惯性导航(陀螺、加速度传感器定位)的组合,典型方式有惯性陀螺与轮速传感器构成 DR 子系统。惯性导航的基本原理是根据牛顿提出的相对惯性空间的力学定律,利用陀螺、加速度传感器等惯性元件测量载体的角速度和加速度,对观测量进行积分,在已知初始方位的基础上推算载体的当前方位。现代陆地车辆都装备有精确的轮速脉冲传感器,利用轮速脉冲测量里程信息比用加速度传感器信号进行两次积分计算里程更加方便和准确,因而现代车辆导航系统广泛采用轮速传感器测量行驶里程。
DR 定位传感器主要包括角速率陀螺、轮速脉冲传感器和加速度传感器等。
数字计算误差和传感器观测误差。
所有传感器信息集中输入到一个滤波器方程,估计系统状态,并用估计的误差校正传感器参数和定位输出。在 GPS 失效时,采用DR 定位。这种方式典型代表是集中卡尔曼滤波,优点是实现统计最优估计,精度高,缺点是计算量大影响到实时性,系统容错性差,一个传感器故障可能对整个系统产生“污染”,容易导致系统发散。
用局部滤波方程对 GPS、DR 子系统滤波,由主滤波器融合局部滤波器的输出。这种方式有分散滤波、联合滤波、加权融合、模糊融合等。分散的信息融合技术降低了系统维数,计算量小,便于并行处理,且各子系统的耦合程度降低,单个传感器故障不会对其它子系统滤波方程产生严重影响,提高系统的容错性。Calson 提出的联合滤波器以其设计灵活、计算量小和容错性好而受到广泛重视。
利用导航计算机的处理资源,在导航主机上实现组合定位算法,实现原理如图所示。由 MCU 采集 GPS 和 DR 传感器的信息,通过串口发送到导航 CPU。处理串口接收的信息有两种实现方法,第一种方法是不对串口驱动做任何修改,组合定位算法为一个单独的进程或线程,独占串口资源,采用标准的串口操作函数对串口进行读写,获取到 GPS 和 DR 传感器信息后进行滤波融合,通过适当的机制(如事件机制、消息机制或动态内存交换技术)将融合后的定位信息传送给导航软件。因为通常导航软件是通过对串口(或其他通信设备)的读写获取 GPS 定位信息,因此这种方法要对导航软件的定位信息获取方式进行修改。
重写串口驱动 PDD(Platform Dependent Driver)层,组合定位算法在串口驱动中完成,实现原理如图所示。CPU 接收到串口数据后,产生中断信号,中断首先由 MDD(Model Dependent Driver)层处理,调用串口驱动硬件相关层 PDD。PDD 层的一般处理方法是读取中断类型(接收事件、发送事件、错误事件等),然后返回给 MDD 层,MDD 层再调用 PDD 层的相应处理函数,如读取硬件接收缓冲区的数据等。这里修改了这一实现机制,直接在 PDD 层处理接收的数据,并传送到组合定位算法线程,在该线程处理接收的定位信息,若算法线程已经完成了一次融合运算,则将融合输出传送到接收缓存区,并向 MDD 层返回一个接收事件,由 MDD 层通知应用程序有接收事件发生,否则返回一个空事件,使 MDD 不做任何处理。这种实现方法的优点是串口的处理效率提高,并且不需要对应用软件做任何修改。为了方便调试与升级维护,算法的核心部分为一个单独的动态连接库,在串口驱动初始化时加载。
卡尔曼滤波理论是 Kalman 在 1960 年提出来的一种线性自适应滤波算法,具有两个显著的特点:
(1)用状态空间方程描述对象的数学模型;
(2)求解过程是递归计算,可以不加修改的应用于平稳和非平稳对象过程。
状态的更新都由前一次估计和新的输入观测值计算得到,使用的存储空间小。卡尔曼滤波器的基本结构是预测器—修正器,如下图所示,这一结构包括两步:
(1)利用观测值计算称为新息(innovation)的前向预测误差;
(2)利用新息更新与随机变量的观测值线性相关的最小均方估计。
基于卡尔曼滤波的多传感器信息融合方法可以得到线性随机系统的统计最优(或次优)估计,但实际应用中存在下述问题:
1)滤波器性能取决于所建模型的准确度,GPS 噪声是一种非平稳随机噪声,建模难度大,对状态方程和观测方程线性化也引入建模误差;
2)矩阵运算的计算量大,为保证实时性,要求采用较高性能的处理器,成本高,并占用较多的内存资源;
3)算法本身存在数值稳定性问题。
模糊逻辑等计算智能技术对复杂非线性系统具有很强的建模和学习能力,有研究者将其应用到 GPS/DR 组合导航中,用模糊逻辑对卡尔曼滤波增益、观测噪声和过程噪声进行调整。通过引入模糊逻辑,一定程度上改善卡尔曼滤波算法的精度和稳定性,但没有根本解决计算量大(实时性)的问题。Carlson 提出的联合卡尔曼滤波实质是按协方差阵加权的信息融合算法,与其相似,模糊多传感器信息融合以各子系统的估计误差为输入,用模糊逻辑计算子系统的置信度(或加权因子),算法具有计算量小、容错性好和便于调整的优点。
GPS 和 DR 子系统独立工作,产生各自的定位输出,两个误差估计器分别估计 GPS 和 DR 子系统的输出误差。主模糊融合器有三个输入变量:DR 子系统输出误差估计、GPS 子系统输出误差估计、DR 与 GPS 子系统输出的偏差,融合器根据三个输入量计算DR 误差补偿,与 DR 输出结果相加,得到模糊融合结果。DR 误差随时间累积,需要经常重置或校正 DR,模糊推理器根据各子系统的误差估计,以及偏差的大小,控制 DR 系统的重新初始化和实时校正。
IntervalZero 公司研发的 RTX 系统是 Windows 环境下纯软件实现的硬实时操作系统,其拥有采用抢占式优先级的高效任务管理器,同时可以支持大部分C/C++语言函数库和 Win32 API。 RTX 通过对 Windows硬件抽象层(HAL)进行扩展来实现独立的内核驱动模型,并增加与 Win32 子系统并存的实时子系统(RTSS)来保证系统的实时性,RTX的体系架构如图所示。在RTX 环境下进行实时系统的开发,有以下几点优势:
1)能够保证程序的实时性;
2)实时接口 RtApi 的使用与Win32 环境类似, 便于程序的开发;
3)RTX 支持使用C/C++的集成开发环境进行程序开发。
RTK(Real-Time-Kinematic)技术是GPS实时载波相位差分的简称。这是一种将GPS与数传技术相结合,实时解算并进行数据处理,在1~2秒时间内得到高精度位置信息的技术。与动态定位方法相比,定位模式相同,仅要在基准站和流动站间增加一套数据链,实现各点坐标的实时计算、实时输出。
基准站建在已知或未知点上;基准站接收到的卫星信号通过无线通信网实时发给用户;用户接收机将接收到的卫星信号和收到基准站信号实时联合解算,求得基准站和流动站间坐标增量(基线向量)。站间距30公里,平面精度1-2厘米。
高精度的GPS测量必须采用载波相位观测值,RTK定位技术就是基于载波相位观测值的实时动态定位技术,它能够实时地提供测站点在指定坐标系中的三维定位结果,并达到厘米级精度。
(1)在RTK作业模式下,基准站通过数据链将其观测值和测站坐标信息一起传送给流动站。
(2)流动站不仅通过数据链接收来自基准站的数据,还要采集GPS观测数据,并在系统内组成差分观测值进行实时处理,同时给出厘米级定位结果,历时不足一秒钟。
(3)流动站可处于静止状态,也可处于运动状态;可在固定点上先进行初始化后再进入动态作业,也可在动态条件下直接开机,并在动态环境下完成整周模糊度的搜索求解。
(4)在整周未知数解固定后,即可进行每个历元的实时处理,只要能保持四颗以上卫星相位观测值的跟踪和必要的几何图形,则流动站可随时给出厘米级定位结果。
总结:RTK就是实时动态差分测量,其原理简单来说就是,基准站用一个固定坐标来做参考,以后基站每通过接收卫星算得一个坐标,就跟固定坐标作比对,得到差值,然后将这个差值发送给移动站,移动站用卫星接收到的坐标再减去基站发过来的差值就得到了改正后的坐标。