之前做了基于某流行的导航SDK开发车机导航App的项目,现在做一个总结,仅仅总结与特定导航无关的基础知识和概念。
介绍
车载导航系统由硬件和软件组合而成,按功能可划分为由定位系统、系统软件、导航应用软件等。定位系统包括GNSS天线、各种传感器、滤波器、DR模块等;系统软件目前较流行的是Android系统;导航应用软件即常说的某某导航App,正式名称为导航电子地图,可通过触摸显示屏或者语音等进行交互操作, 实现实时定位、 目的地检索、路线规划、画面和语音引导等功能,帮助驾驶者准确、快捷地到达目的地。
车载导航与手机导航的最大的优势是,一,提供更加精准的定位,尤其是在GPS信号不好的时候,对比更加明显;二,更大的显示屏、更好的散热、更好的稳定性等。
定位系统
在信号弱或者高速行驶时,仅依靠卫星定位是困难的,目前的定位不只是卫星定位,也会有硬件或软件的参与。硬件一般包括:GNSS信号接收机或称天线、DR微处理器(也可能由软件处理)、车速传感器、陀螺仪、加速度计等。 目前定位一般是通过包括GNSS信号在内的许多信号一起通过航位推算算法(DR)计算得到的,下图是DR模块位于硬件或软件系统中时的信号流程图,MMF表示地图匹配反馈信号。
目前普通民用 gps 和 dr 组合定位设备 (gps 惯性设备 ) 已经可以达到 1 000 m 无 gps 信号的情况下的航向精度和 10 m 的距离精度。
车载天线接收GNSS信号的频率是有规定的,比如10Hz,频率太高对系统要求也会高,必定提高成本。10Hz的情况下,如果车速为36km/h(10m/s),间隔1m接收一次定位信号,似乎可以接收,如果车速为33m/s(120km/h),则间隔3.3m才接收一次定位,对于一些路口区域,很容易错过。
航位推算:这种根据已知信息(当前位置、速度、加速度、方向等)推算经过一段时间后的位置的方法称为DR,dead reckoning。
卫星定位系统:一般称为全球导航卫星系统( Global Navigation Satellite System,GNSS),GPS是美国的全球定位系统的简称,一般应该使用GNSS代表卫星定位或导航系统的总称。
陀螺仪:一般指三轴陀螺仪,是用于获取车辆三个轴向的角速度值,如果是单轴陀螺仪,则一般指Z轴,用来测量车辆的左右转向角度值。
地图匹配
地图匹配(Map Matching,简称MM):将经过处理的信号中的位置、角度信息在实际道路线上显示出来的过程。我们认为车辆应该行驶在道路上,但实际信号的位置与角度一般不会跟道路数据吻合,所以需要选择一条与信号最为符合的道路段或路径段将车标展示在上面,此过程就称为地图匹配。 地图匹配的输入源包括信号与道路数据,地图匹配的输出结果为位置信息,包括经纬度、角度、速度等。
实际场景中,手机自带 GPS 的定位精度在 10 米上下,单车道的宽度一般是 2-3 米。实际上,手机 GPS 定位不足以精确判断车辆行驶的实际道路。但大家会发现,通常情况下导航的道路定位都是很准确的,导航过程中地图会知道用户在某某道路而不是附近小区或者沟河中。
究其原因,用户导航过程中,系统一直在计算 GPS 位置和导航路线&路网间的配准关系,从而进行一定程度的纠偏,这也是提高定位精度的重要手段。
地图匹配可分为两类:一类是导航和偏航,匹配非闭环路线;另一类为巡航,匹配路网。
地图匹配的核心是匹配算法,常见算法有离散点集匹配和曲线拟合:
- 离散点集匹配。相对简单,随机离散点没有形状和拓扑关系,用欧氏距离作吸附即可,典型应用如离散热力图。效率低。
- 曲线拟合:评价曲线相似性的一般要素有长度、形状、曲率、拓扑关系、方向比如正向逆向、距离、属性例如交通规则左转右转禁行等信息。曲线拟合基于几何、拓扑、概率等可细分为多个方法。
地图匹配反馈(Map-Matching Feedback)简称 MMF,将地图匹配的结果通知给 DR(推算及位置融合模块) 模块。
导航电子地图
用户最终看到的导航应用软件是由定位和地图共同组合的结果。导航电子地图包含的地图数据有道路数据(路段和节点)、 POI数据(特征点数据,兴趣点)、背景数据(建筑层、水系、植被)、行政区域数据、图形文件(高速出入口等)、语音文件等。其主要功能为地图显示、地图匹配、路线规划、路线引导等。
路网与拓扑
现实世界中的道路是千变万化的,一般需要将这些道路抽象为基本的路段和节点(路网),再建立它们之间的拓扑关系,以实现地图匹配、路线规划等功能。路网的基本要素:点实体(节点)和线实体(路段)。
路段。路段一般作为道路的最小空间描述单元,即路段是具有同一属性在路网中相互独立且最小的道路图形特征。路段属性有:编号、路段、长度、宽度、道路等级、最高速度限制、是否收费与收费标准、实时路况信息(交通事故、堵塞程度等)、允许车辆类型,等等。
每一条道路,对应一些属性信息,例如道路的交通限制、道路名称、道路宽度等,所以需要根据属性信息的变化把一些道路拆分为更小的路段,现实世界里的一条道路一般会划分为多个路段。
节点。节点并不是一个实际意义上的点,它是一个抽象的概念,即可能使车辆行驶路线发生改变的控制点:
- 道路的交叉口或者路的终点。
- 道路特性发生改变的点,如在该点道路的宽度显著增加或者减少,或者从该点开始道路需要收费行驶等。
- 可能进行转向操作的点,如进行物理分隔的道路中间将隔离栏(带)打开,专供车辆掉头的点。
- 快速路的出入口等。直接影响车辆导航系统路线计算的结果的点。
常见节点:多道交叉口、环岛型交叉口、快速路的出入口、U型转弯口、道路连接点、复杂的立交桥等。
节点的属性有:编号、坐标、灯控路口的时间配时、节点的车辆行驶平均时间延误、交叉口转向限制等。
路网拓扑结构
路段之间的连接关系的表达即路段通过节点建立拓扑关系。建立拓扑关系的路网可以方便的执行地图匹配、路线规划等道路计算。
拓扑,就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而以图的形式来表示这些点与线之间关系的方法。其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图被称为拓扑结构图。
常用模型为路段-链数据模型,基本思想:将路网的基本单元“路段”作为图的顶点,而将路段之间的允许转向行为(这种转向行为称作“链”)作为图的弧。
导航路线与路段分析
一个完整的导航路线(path),会被划分为多个聚合段(group segment),聚合段一般对应实际的道路;一个聚合段包括对应多个导航段(segment),导航段对应导航播报的基本单位,但未必对应最小的路段单位;导航段可以包含多个路段(link),路段表示道路的最小空间描述单元。用户关心的是导航段和聚合段。
- Link:路段,道路的最小描述单元。比如两个指示牌间的路段、路口与指示牌间的路段等、。
- Segment:导航段,导航播报最小单元。两个转弯路口或道路有明显改变的节点之间的道路。
- GroupSegment:聚合段,从一条路完全进入另外一条路之间的路段,与物理道路对应,但不一定完全对应。
地图和图层
目前的GIS软件都采用分层结构组织地图数据,把同一类或几类地理要素的信息放在同一个图层,整个地图数据按照图层->地图->地图集来组织,每个图层存储管理同类地图元素:
- 地图集:地图集包含了导航软件所能加载的所有地图数据, 它是一个存放地图的容器。
- 地图:地图是通过地图集检索得到一个对象,它包含的是一个行政区划的地图数据。同时地图也是存放图层的一个容器。
- 图层:一个图层代表的是一种地图数据元素的集合。
其他相关概念
车辆坐标系
与机动车相关的坐标系有许多,常见的有:
- 世界坐标系:用于描述车辆在世界的位置。
- 车辆坐标系:用于描述车辆的速度、旋转等,原点位于车辆中。
- 车内设备坐标系:比如车机的坐标系,用于描述设备自身的速度、角速度等,原点在设备中。
- 设备芯片:比如加速度计、陀螺仪等,用于描述芯片原始的值。原点在芯片中。
车辆坐标系
由于XYZ坐标系不能很好地描述车辆的转动,因此一般用RPY(Roll-Pitch-Yaw)轴表示:
- Roll轴。滚转轴,轴正方向指向车辆前方,绕轴转动表示车辆在做滚转的动作。对应X轴或Y轴。
- Pitch轴。俯仰轴,轴正方向指向车辆右侧,绕轴转动表示车辆在做俯仰的动作。对应Y轴或X轴。
- Yaw轴。偏航轴,轴正方向指向车顶上方或车底下方,绕轴转动表示车辆在做偏航(转弯)的动作。对应Z轴。
明确了轴正向方向后就可以确认正负值定义。对陀螺仪来说,需借助右手法则,拇指朝向轴正向,屈指方向为输出正值的方向;对加速度计来说,轴正向的加速度为正值。
一般设备芯片与车机的坐标系并不一致,而是存在角度差,称为安装角。安装角会导致传感器输出值计算过程中的误差,因此需要提前测出安装角并传给相关处理单元。
加速度计
加速度计(Accelerometer),用于获取车辆三个轴向的加速度值,常见三轴数值规定如下:
- Roll轴。车尾指向车头 车辆向前加速输出变大,刹车输出变小
- Pitch轴。车左侧指向车右侧,车辆向右横移输出变大,向左横移输出变小
- Yaw轴。车底指向车顶,车辆水平静止,输出+1.0;垂直向上加速,输出大于+1.0;垂直向下加速,输出小于+1.0。静止时的1.0表示一个重力加速度g。
陀螺仪
陀螺仪(Gyroscope),用来测量角速度或保持方向器具。它是一个旋转的轮子或圆盘,其中的自旋轴可以是任何方向。根据角动量守恒,当旋转时,自旋轴的方向不受影响。一般指三轴陀螺仪,是用于获取车辆三个轴向的角速度值,如果是单轴陀螺仪,则一般指Z轴,用来测量车辆的左右转向角度值。
陀螺仪零偏。指陀螺仪在无外部输入(车辆静止或匀速直线行驶)状态下,所输出的值不等于0的状态,零偏亦指这种状态下输出的误差值。
陀螺仪温漂。指陀螺仪零偏随着传感器本身温度不同而变化的特性。
陀螺仪轴向验证。
航向
中文里航向对应英文里的Course或Heading,但这二者是有区别的:
- Course。表示机车(或飞机或船)的实际航行轨迹的方向,是机车本身的速度、风速等叠加后的合速度的方向。
- Heading。仅仅指机车(或飞机或船)车头指向的方向。
上图中AB是飞机的Heading方向,由于风速的影响,飞机的航向偏移到AC方向即Course。一般意义上,中文里航向指的就是Course,实际航行的路径方向。
常用术语
术语缩写 | 全称 | 描述 |
---|---|---|
EGL | Embedded Graphics Library | 嵌入图形库 |
GPS | Global Positioning System | 美国的全球定位系统 |
GNSS | Global Navigation Satellite System | 全球导航卫星系统 |
HMI | Human Machine Interface | 人机交互接口,通常指SDK之上的开发 |
POI | Point of Interest | 兴趣点 |
TBT | Turn By Turn | 逐向导航 |
TMC | Traffic Message Channel | 交通实时信息频道 |
TTS | Text To Speech | 从文本到语音 |
TR | Traffic Radar | |
MM | Map-Matching | 地图匹配 |
SA/PA | Server Area / Parking Area | 服务区、停车区 |
DR | Dead Reckoning | 航位推算 |