4.8 定位基础知识

2023-01-05  本文已影响0人  Geniune

4.8.1 概念及术语

地图匹配

导航(路线匹配)

导航是指规划出一条路径,开始引导后的一种有目标地点的路径匹配模式。导航的数据输入是一条有起始点的非闭环路线。
偏航是指实车驶离当前规划路径的一种行为,对定位来说是信号逐渐远离当前路径,并达到一定的预设条件(防止信号漂移导致的误偏航)才确认是偏航。
重算是指一般偏航条件达到后定位会通知引导(或TBT)模块进行重新规划路线,起点是实车的最新位置,以满足用户的实际定位需求。

巡航(路线匹配)

巡航是主图界面下的一种无目标性的路网匹配模式。巡航的数据输入是路网,也就是数据中的所有道路对于巡航来说都是可见的。

定位模式

GNSS

纯GNSS模式

只有GPS或其他卫星定位信号下的地图匹配模式。

GNSS+脉冲车速模式

相对于纯GNSS模式增加了单独的车速脉冲信息输入,目前定位引擎对于车速脉冲的使用仅限于隧道推算场景。这种模式可以优化纯GNSS模式中隧道推算不准确的问题。

DR

DR是dead reckoning的缩写,意为航位推算。在车载导航中,航位推算是使用先前确定的位置,通过测量移动的距离和方位,计算出经过的时间后的位置。

航位推算受误差累积影响,即随着时间的推移,推算出的位置误差会越来越大,需要使用GNSS位置修正。

地图匹配反馈

地图匹配反馈(Map-Matching Feedback)是指将地图匹配的结果通知给 DR 模块。

影响地图匹配精度的因素

  1. 路况复杂 真实的道路情况是复杂多变的,要保证车辆在各种复杂路况上都能够实现正确定位是比较困难的。下面是地图中经常出现的路口:

(1)普通路:普通就是没有特殊形状的道路,可为高速路,也可为一般路。此时,选择正确道路较容易实现,但也有错误匹配、超前滞后等现象发生。
(2)平行路:所谓平行路,就是两条或两条以上形状相似、距离相近的道路。
(3)微小角分岔路
(4)密集道路
(5)停车场
(6)高架桥
(7)立交桥
(8)隧道
(9)高架下、高楼附近
(10)小区道路
(11)盘山路

  1. 底层数据存在误差 进行地图匹配需要利用传感器的测量信息(如GPS、DRS)和地图数据,这些数据都可能存在误差。
    (1)地图数据误差 尽管一般认为地图数据的精度较高,但是在作图中仍可能存在较大的误差。地图误差主要有两种:几何误差和拓扑误差。几何误差是指地图数据与实际道路的位置、形状不相符。地图数据中记录的是道路的中心线,但在实际情况中,道路是有宽度的,道路越宽,车辆行驶的轨迹与道路形状可能就越不一致。另外,地图数据是二维平面的,没有高度信息,与实际情况存在一定的偏差,这种情况常见于立交桥、高架桥、盘山路等。除此之外,地图数据库中的道路和实际情况可能不一致(如新修的道路、现实世界中实际存在,但在地图中没有相应的数据)或连接关系与实际情况不相符。这种误差属于拓扑误差。
    (2)传感器误差
    就车辆定位导航系统比较常用的传感器GPS和DRS来讲,GPS信号在有电磁干扰、都市内有高大建筑物、车速慢(小于30km/h时误差较大)、GPS接收机性能不好等情况下定位精度很差。即使是在GPS状态较好时(DOP值较小、车速较快)也可能会有较大误差甚至出现突跳。GPS状态不好(DOP值较大、车速慢)的情况又往往出现在复杂路况,这时候即使是较小的误差(30m以内)也会造成错误匹配。航迹推算系统会随着时间推移产生积累误差,如果长时间不进行修正,其测量数据将不可用。

  2. 算法引入误差
    (1)错误匹配引入的误差 在地图匹配过程中不可避免的会发生错误匹配,发生错误匹配必然会对以后的地图匹配产生恶劣的影响。
    (2)匹配修正引入的误差 可以利用匹配结果(匹配位置、道路方向)修正传感器误差。但是即使在正确选择道路(匹配的道路是车辆真实所在的道路)情况下也会引入误差,尤其在发生超前滞后或地图数据本身存在误差时。

  3. 车辆行驶中存在特殊情况 地图匹配的基本前提假设是“车辆行驶在道路上”,但实际情况中车辆有时会离开,如路边停车场、加油站等;在车辆行驶过程中,由于超车、变换车道等原因出现S行走现象;司机在驾驶过程中可能会出现违反交通规则的情况,例如在道路中间直接掉头行驶、单行线逆行等,都会影响选择的正确性并引起误差。

定位坐标系

WGS84

World Geodetic System 1984,一种国际上采用的地心坐标系,坐标原点为地球质心。GPS芯片或者北斗芯片获取的经纬度一般为WGS84坐标系。

GCJ02

GCJ02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差。国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。 可以将GCJ02理解成是由WGS84坐标系经某些规则加密后的坐标系。

4.8.2 传感器基础知识

导航坐标系

导航坐标系.png

定位引擎后端融合使用的坐标系为右前上-XYZ坐标系,如上图所示。

X轴正方向指向车辆右侧,因为绕着X轴转动时车辆是在做俯仰的动作,所以也称为俯仰轴-Pitch。
Y轴正方向指向车辆前方,因为绕着Y轴转动时车辆是在做滚转的动作,所以也称为滚转轴-Roll。
Z轴正方形指向车顶上方,因为绕着Z轴滚转时车辆是在做偏航的动作,所以也称为偏航轴-Yaw。
明确了轴正向方向后就可以确认正负值定义。对陀螺仪来说,需借助右手法则,拇指朝向轴正向,屈指方向为输出正值的方向;对加速度计来说,轴正向的加速度为正值。

陀螺仪

定义

陀螺仪,这边指的是三轴陀螺仪,是用于获取车辆三个轴向的角速度值的器件,如果是单轴陀螺仪的话一般就是只有Z轴,用来测量车辆的左右转向角度值。

数据结构

struct SLocGyro
{
    ELocDataType     dataType;    // 本结构体所表示的数据类型,赋值:LocDataGyro 
    ELocThreeAxis    axis;        // 有效数据轴 
    float           valueZ;      // 上,单位:度/秒 
    float           valueX;      // 右,单位:度/秒 
    float           valueY;      // 前,单位:度/秒 
    float           temperature;  // 温度。单位:摄氏度。陀螺仪芯片上的温度传感器的读值
    int         interval;    // 前后两个信号的间隔时间,单位:毫秒 
    unsigned long long        tickTime;    // 时间戳,推荐输入系统滴答数,某些系统取不到系统滴答数时取1970年01月01日00时00分00秒以来的时间戳。单位:毫秒 

};

相关知识

  1. 陀螺仪零偏
    指陀螺仪在无外部输入(车辆静止或匀速直线行驶)状态下,所输出的值不等于0的状态,零偏亦指这种状态下输出的误差值。

  2. 陀螺仪温漂
    指陀螺仪零偏随着传感器本身温度不同而变化的特性。

3.陀螺仪轴向验证

3D加速度计

定义

加速度计,用于获取车辆三个轴向的加速度值。
//TODO:图标

g为重力加速度,也就是9.8m/s2。如果系统方提供的加速度计信号单位是m/s2,那就需要上层先转换为单位g再传给定位引擎(除以9.8)。

加速度计数据结构

struct SLocGyro
struct SLocAcce3d
{
    ELocDataType     dataType;  // 本结构体所表示的数据类型,赋值:LocDataAcce3D
    ELocThreeAxis    axis;      // 有效数据轴
    float           acceZ;     // 上,单位:g(9.8米/秒^2)
    float           acceX;    // 右,单位:g(9.8米/秒^2)     
    float           acceY;    // 前,单位:g(9.8米/秒^2) 
    int         interval;  // 前后两个信号的间隔时间,单位:毫秒
    unsigned long long        tickTime;  // 时间戳,推荐输入系统滴答数,某些系统取不到系统滴答数时取1970年01月01日00时00分00秒以来的时间戳。单位:毫秒
};

设备安装角

什么是安装角?
安装角如何获取?
设备安装角数据结构
typedef struct LocInstalledDegree
{
    bool            isValid;
    double          roll;                 // 单位:度 陀螺仪或者ACC 翻滚角 敏感轴y轴的安装角度,绕X轴旋转的角度
    double          pitch;                // 单位:度 陀螺仪或者ACC 俯仰角 敏感轴Z轴的安装角度, 绕Y轴旋转的角度
    double          yaw;                  // 单位:度 陀螺仪或者ACC 偏航角 敏感轴x轴的安装角度,绕Z轴旋转的角度
} SLocInstalledDegree;

对接陀螺和加速度

陀螺仪和加速度计的对接需要额外注意。对接之前需要先确认已了解如下信息

  1. 芯片坐标系
  2. 导航坐标系,即SDK定义的车身坐标系
  3. 芯片相对于设备的位置及姿态
  4. 设备相对于车辆的位置及姿态
  5. 安装角
  6. 系统侧输出的值如何与芯片坐标系对应上

4.8.3 参数持久化

存储的信息

当车辆停止时会保存当前车辆最后的位置、航向、传感器标定等信息

存储位置

//TODO:保存文件格式、目录修改
保存在 model.bin 文件

4.8.4 位置回调说明

开始条件

GNSS 模式下,收到GNSS (包括网络定位)信号时,启动位置回调定时器,触发位置回调接口。

回调频率

首次坐标

注:客户端对接saveLocStorage()用以保存定位上下文信息。

车标纠正

由于台测时,一般是没有接入车速信号,会导致车标无法纠正回实际位置。

上一篇 下一篇

猜你喜欢

热点阅读