8

高德车载导航Android平台DR回放技术方案

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=Mzg4MzIwMDM5Ng%3D%3D&%3Bmid=2247485874&%3Bidx=2&%3Bsn=5d4db22db5cc90689af0b7d1224d04b9
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

导读

DR:(英文为Dead Reckoning,航迹推算)。用于推算的传感器大致有:陀螺仪、四轮速、车速脉冲、3D加速度计等。在车载导航中,航位推算是使用先前确定的位置,通过测量移动的距离和方位,计算出经过的时间后的位置。航位推算受累加误差影响,随着时间推移,推算出的位置误差会越来越大,需要配合GNSS位置修正。

高德车载导航和业内主流的汽车厂商有很多合作,在 前装项目中,汽车厂商为了能更好地为用户提供更为准确的导航定位功能,大多都会选择DR+GNSS的定位方案,而这种定位方案数据源除了GNSS信号外,还有传感器的信号(陀螺、加速度计和车速等)。市面上现有的GPS回放APP和方案只有针对GNSS的,这样车载导航内部在进行需求验证、问题修复验证时就需要实车路测,需要占用很大的人力投入和时间。但在真实的业务场景中,不是每个项目都能满足有实车的条件。

本文将介绍目前高德车载导航Android平台的DR+GNSS回放方案。

高德车载导航DR模式

前端融合模式

DR又分为前端融合和后端融合。 前端融合指的是信号融合的工作是由系统方/硬件方负责的,高德车载导航只负责地图匹配工作。也就是车载导航收到系统传过来的信号是经过系统方/芯片融合计算后的信号,与纯GPS的区别在于未定位状态下也会有信号传到HMI层。前端融合模式也包含前端融合+MMF模式,MMF是指地图匹配反馈信息,由于GPS和陀螺仪等信号都不能保证百分百准确,前端融合的推算也会产生偏航,尤其在隧道场景,所以需要MMF在适当时机纠正融合信号。

融合信号是将GPS信号、陀螺仪、加速度计和脉冲等信息综合处理后得到的轨迹信号。

yABvqiy.png!mobile

后端融合模式

简单点说是指融合信号的生成工作是在车载导航定位引擎内部实现的。对于定位引擎来说,后端融合模式的输入信息是GPS、陀螺仪、脉冲、加速度计等原始信号。

所谓“后端融合”是指惯导系统推算出的融合信号,是与地图数据和导航引擎通过通信协议紧密配合的,导航系统仅在汽车启动时使用GPS信号进行定位,车辆行驶过程中始终以惯导系统推算出的融合经纬度信息为主进行导航,只有当导航出现偏差时,才选用GPS信号精准时的数值进行实时校正。因此,在GPS信号出现折射、反射、衍射、漂移、甚至失去GPS信号时仍能精准导航。

F7JvqiA.png!mobile

之前了解到的Android平台信号回放都是通过记录的经纬度等信息,通过调用Android原生模拟信号接口进行设置,而应用从原生接口接收到的定位信号就是模拟信号。

缺点

依赖原生模拟信号的方式只支持GPS模式,对于DR定位模式还需要依赖传感器信号的输入,目前Android原生还未支持这块数据的模拟。

在DR回放工具之前车载导航定位相关场景问题验证流程如下图:

iEj2AfA.png!mobile

DR回放工具前的QA验证流程

对于DR定位模式项目,之前都是上路验证测试,人力和时间成本高。

解决方案设计

高德车载导航信号输入方案大部分都是跨进程通讯,所以回放工具设计最大化模拟了原来车载导航数据获取的方式,使用了独立进程进行回放。

回放工具分为前端融合、后端融合模式,目前两种模式回放的通讯方式都是通过自定义AIDL协议。

回放文件选择

回放文件的选择有两种,一种是车载导航HMI将收到的信息自定义格式保存到文件中;另一种是使用定位引擎已有的定位信息日志文件。

3YFZfuF.png!mobile

综合考虑到两种回放文件的优缺点,决定复用引擎的定位信息文件,车机性能比较吃紧,不能因为这个功能增加车机消耗。

回放方案选择

实现回放有两种方式:

一是通过跨进程方式,外部程序通过AIDL传输数据给到车载导航。

另一种是将回放功能集成到车载导航中,做为车载导航中的一个彩蛋功能。

以下为两种方案的优缺点:

qaemiyM.png!mobile

综合以上问题,我们最终选择了独立进程回放的方式。

该方案是通过模拟跨进程传输信号方式,自定义的JSON格式复用了高德车载导航标准的后端融合传输方案的格式,最大程度还原了后端融合高德车载导航APP端接收、解析的流程。

工具回放实现流程如下图:

nUNFbu2.png!mobile

从上图可知,DR工具实现了DR项目台面回放验证问题能力,大大缩短了QA同学验证定位场景问题的时间,如原本实车路测需要2个小时,而现在只需要0.5小时则可以实现从打包到回放查看。而对于外地路测发现的问题复现和问题修复验证则从无法验证到本地实现验证。

旧方案反馈和新的优化

旧方案反馈

以前的工具已经在Android平台高德车载导航项目上广泛使用,带来便利的同时,也发现了一些需要优化改进的地方,该工具在后端融合回放时存在几个问题:

1、人为操作步骤多,需要操作5步才会开始回放。

2、恢复定位上下文经常失败,且失败原因没法快速调查定位到。

3、前装车机自定义数据存储路径情况较多,导致每次使用工具回放都需要先去了解车机具体路径再进行修改。

优化规划

针对以上问题,对工具执行步骤进行缩减,将5步缩减至一键回放,对于车机自定义路径问题,通过已有AIDL通道新增获取车机自定义数据路径,去掉人为填写必要。至于恢复定位上下文经常失败问题,目前总结多是因为自定义数据路径没有权限导致,可通过命令方式尝试赋值权限,如果失败则做个原因提醒。

优化后的方案如下:

QRneAbm.png!mobile

小结

通过回放工具的推广使用,大大缩短了高德车载导航Android平台的定位问题修复验证、路测问题的回放复现等工作量,大大减少了实车路测带来的时间成本和人力消耗,提高了研发和QA团队的效率。

juqUBvZ.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK