0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高精地图数据格式NDS了解一下

jf_C6sANWk1 ? 来源:阿宝1990 ? 作者:阿宝1990 ? 2022-12-13 11:23 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

NDS背景简介

当今时代,说起汽车,人们自然会提到智能驾驶,而说起智能驾驶,人们则自然会提到高精地图。高精地图是离我们这么近又那么远的一个概念。说起高精地图,相信即使是行外人士,也不会完全不知道它是什么意思,毕竟我们手机上的地图APP通常都不止一个,大家用起来都十分利索。

实际上高精地图的发展与智能网联汽车密切相关。相对于以往的导航地图,高精地图是智能驾驶汽车规划道路行驶路径的重要基础,能为车辆提供定位、决策和交通动态信息等依据。另一方面,高精地图也能为智能驾驶汽车上的传感器补位,增强超视距的感知,提高系统安全性。当功能丰富、使用场景多样的高精地图需要落实到汽车上下游产业链,并适应日益提速迭代的汽车及其应用开发周期,就对制定通用的地图标准提出了需求。而今天我们要探讨的NDS就是其中最常用的导航地图数据标准。

NDS的全称是Navigation Data Standard,亦即导航数据标准,由NDS组织制定及维护。NDS格式是高精地图的常用格式,也是国际OEM的普遍选择。NDS可以用于移动应用程序、互联汽车云解决方案和自动驾驶

6a8b381a-7a8a-11ed-8abf-dac502259ad0.png

图1:NDS的口号 (来源:NDS组织官网)

每每谈论到标准,我们都容易想起行业圈子,因为标准组织内有哪些玩家往往能体现标准分量。而从行业背景来看,NDS是为汽车行业服务的,由汽车行业负责。具体的协会成员直接看下图,囊括中外,我们耳熟能详的OEM、Tier1和图商都位列其中。

6aafb348-7a8a-11ed-8abf-dac502259ad0.png

图2:NDS协会成员

NDS.Classic和NDS.Live

这些年汽车的发展异常迅速,越来越多的车辆配备了联网功能,车云协作越来越主流,与车辆地图相关的APP应用也是层出不穷。这就对地图数据格式提出了新的要求。为了应对这种趋势,NDS自身也在蜕变和革命。在2019年NDS正式对外公布了其新一代的导航数据格式NDS.Live,并把之前的NDS命名为NDS.Classic以示区分。

6ac67312-7a8a-11ed-8abf-dac502259ad0.png

图3:2019年NDS在公开会议上正式提出了下一代数据格式NDS.Live

NDS.Classic

目前量产车上用的NDS数据格式大部分都是NDS.Classic,它已经在30多个不同品牌的数百万辆汽车上部署,用于导航、ADAS和自动驾驶等,有着良好的记录。它本质上是为嵌入式设备使用而设计的。之前很长一段时间,导航地图数据都是存储在数据载体(DVD、USB、HDD、SD卡)上,而且对应的数据只会在车上用。相信有资历的车友都能想起以前手动升级一版导航地图是如何大费周章。基于此,NDS.Classic的存储格式实质上是数据库类型的。它作为一个嵌入式数据库,可以渐进式更新。当然随着技术发展,NDS.Classic后来也支持OTA。

举个例子,下图就是一个应用NDS导航系统的系统示意图。虚线左边是NDS规范的主体内容,通过编译器将原始的地图输入生成满足NDS规范的数据库(一般以SQL文件格式存储),然后数据库提供操作接口给不同的业务应用,例如地图显示、地位和路径规划等应用。

6ae98d52-7a8a-11ed-8abf-dac502259ad0.png

图4:NDS格式数据库及其接口示意图

NDS.Classic是一个基于瓦片(Tile-based)的组织结构,支持瓦片级的更新。瓦片可以理解为地球面上的一个四边形。我们在手机上看地图的时候,数据经常是一个方块一个方块地加载出来,背后也是因为数据是基于瓦片来存储和传输的。四维图新在《智能网联汽车高精地图白皮书》中提到,其向某OEM 最终交付 2.5.4 版本的 NDS 规格的中国全境高速和部分城市道路的高精地图数据,平均一个瓦片的数据大小大约在 60-80kb。

NDS.Live

相比之下,NDS.Live就不再是一个数据库,而是一个分布式地图数据系统。这其中包括数据服务以及应用服务,比如路径生成、电动车里程计算和POI搜索等功能。这些服务的应用接口在NDS.Live中定义,但规范中并不包括底层通讯传输。NDS.Live的用户能够自由选择NDS数据或应用服务的部署位置,这可以是在云端、车载娱乐控制器或者手机APP等其他任何地方。NDS.Live可以说是NDS的新一代规范,更具生命力。

NDS.Live支持多种数据传输协议,包括常用的从云端到车端通讯的HTTP/REST和车载通讯SOME/IP。但无论选择哪种传输协议,接口层的互操作性都由NDS.Live来维护,因为数据在被传递到传输层之前是以互操作、跨平台、跨语言的方式进行序列化的。如下图示例,底层采用HTTP传输,然后在标准的HTTP协议之上设计应用接口作为适配参考层,同时根据NDS.Live规范可以设计统一的服务层,供不同的上层应用模块调用。如果例子中的HTTP协议换成SOME/IP协议,则只需设计对应的参考层,可以最大限度地复用上层应用和底层标准传输协议。而下图示例中的参考层虽然不属于NDS.Live的规范内容,但是NDS组织也提供了针对HTTP和SOME/IP的参考层实现样例。

6b12b718-7a8a-11ed-8abf-dac502259ad0.png

图5:NDS.Live与不同传输层接口层次示意图

NDS.Live架构介绍

在传输协议和API适配之上,则是NDS.Live规范的主体部分。如图5所示,我们可以分两个层次来进一步理解:模块(Module)和服务层(Service Layer)。

模块(Module)

NDS.Live是一个基于模块的分布式地图系统,因此规范和文档也是按模块安排的。模块代表相关数据的集合,例如数据类型、定义和接口。下图是NDS.Live所定义的模块概览。

6b36a1c8-7a8a-11ed-8abf-dac502259ad0.png

图6:NDS.Live模块概览

模块分为5种类型:

-Common:通用模块,用于可以全局复用的通用数据,例如基础的数据类型等。

-Feature: 特征模块,用于定义地图特征和几何数据。

-Attribute: 属性模块,用于定义属性,可以简单理解为是对地图特征的更细致描述。例如ADAS、定位等都是在属性模块中定义。

-Reference: 参考模块,实际上是特征模块和属性模块之间的接口。通过参考模块引用数据,可以降低模块之间的耦合度。

-Service:服务模块,提供数据访问的接口。服务的终端访问定义都在该模块定义,例如常见的“请求-应答”和“发布-订阅”服务接口都在这类模块中定义。

这些不同的模块之间不同的排列组合,可以满足不同的用例。例如在ADAS应用场景下,基于车道的特征模块、ADAS属性模块、数据类型定义的通用模块和定义具体服务接口的服务模块之间就可以满足。而在不同的应用场景和不同的模块下,NDS.Live还抽象出了不同的数据层(Data Layer),用来定义具体的数据结构。这背后同样是“高内聚、低耦合”的思想。如下图所示,不同用例可以取5种数据层中的若干种。例如普通ISA(Intelligent Speed Assist)场景下,业务只需要道路基础信息和限速信息,可以只获取底下两层。更复杂的功能业务,则可以用更丰富的层次。当然这只是在功能逻辑层面的区分,实际上在数据二进制存储和通讯等实现过程中,不同层次的数据层会打包进一个数据容器(Data Container)中。

6b5de026-7a8a-11ed-8abf-dac502259ad0.png

图7:不同用例下数据层的复用示意图

另外,在数据压缩和安全方面,NDS.Live也提供了针对数据层的解决方案,有利于满足汽车行业的功能安全和信息安全等要求。NDS.Live中明确了支持的压缩算法。而关于数据签名,NDS.Live也提供了一个预定义的哈希和签名机制列表。签名算法可以用专有的签名算法接口进行扩展。用于签名和加密的密钥管理不在NDS.Live的范围内,但它提供了URL或密钥ID接口。结合AUTOSAR中的密钥管理模块,可以快速高效地部署数据安全系统。

服务层(Service Layer)

服务层可以理解为NDS.Live中定义的通信中间件。NDS.Live规范是针对多个网络参与者的分布式系统开发的。每个参与者由一个网络节点代表,由该节点来提供或请求与地图和导航有关的信息。

NDS.Live系统内的每个通信事件都涉及两种类型的网络节点:服务端节点和客户端节点。服务层所定义的服务接口,就是用于服务端节点和客户端节点之间的信息传递。服务端和客户端之间可以通过“请求-应答”和“发布-订阅”模式进行通信。而NDS.Live中定义的服务接口分两种类型:通用服务接口和基于模块的服务接口。

两种服务接口类型的主要差别就是是否对不同的模块通用。通用服务接口如下图左侧所示,如果客户端发起一个请求,来获取不同模块所提供的不同数据内容。这时候服务接口可以把不同数据源拼接在一起,统一通过同一个服务响应来传递数据。这种汇纳多个数据源后由统一的服务响应传递数据的方式,在NDS.Live中也称为智慧层(Smart Layer)。

智慧层的设计也是基于终端使用场景出发的,例如客户端传来基于瓦片ID的请求,服务端可以把对应瓦片内不同模块不同层次的数据都放在同一个数据容器内后响应。除了支持NDS.Classic的基于瓦片的方法,NDS.Live还增加了路径和对象作为容器的额外选项。例如ADAS客户端发来基于路径几何特性的请求,服务端可以把该路径对应的数据统一响应。这样可以为基于路径的自动驾驶和ADAS用例减少数据带宽。又例如针对泊车场景,需要单独下载一个停车场的高清地图时,可以通过对象作为容器和服务接口来传输。

6b69b4be-7a8a-11ed-8abf-dac502259ad0.png

图8:NDS.Live两种服务接口类型对比

NDS应用例子

NDS作为导航数据标准,致力于标准化流程和接口,以支撑更多产业创新。那么它在汽车行业中是怎么应用的?接下来我们看一个NDS官网上展示的实际例子。这个例子是BMW和dSPACE两大巨头联手打造的HIL(Hardware In the Loop,硬件在环测试)方案,架构如下所示。

6b79fac2-7a8a-11ed-8abf-dac502259ad0.png

图9:NDS 2022大会上展示的一种应用NDS的HIL架构

从连接的其他模拟模型可以猜测,被测ECU是ADAS的域控制器。对于毫米波雷达、激光雷达等传感器,通过仿真环境配合各个传感器的内核算法模型,可以仿真感知数据,然后提供给被测ECU。而跟NDS息息相关的主要是图9中上部分的链路,也就是NDS和OpenDrive的双向格式转换的打通。

OpenDrive是dSPACE仿真环境对于地图数据的统一接口,可以被输入到仿真环境中,以开发和验证ADAS功能。但原生OpenDrive生成的场景往往缺乏实际驾驶区域旁边的环境细节。而这些细节又往往影响到所需验证的功能。因此在打通NDS和OpenDrive双向转换之前,对于某些测试用例,可能需要手动修改三维场景。但有了上图所示的双向转换之后,当需要把采集的真实数据回灌到被测ECU时,基于NDS的丰富的导航地图数据可以经过车机后自动转换为OpenDrive格式,提供给仿真环境,然后生成相对更真实的3D环境进行测试。而当采用dSPACE搭建虚拟环境时,生成的OpenDrive地图数据也可以转换为NDS,供车机渲染酷炫的动画。

来自两大巨头将接口标准的打通,相信也会加速NDS的应用推广。方案中呈现的NDS和OpenDrive双向转换,相信也会商业化成为产品。这样一来,在推广应用NDS作为高精地图数据标准的同时,原有的硬件在环测试设备和方案也可以沿用,是一个共赢的局面。

写在最后

随着智能驾驶技术的日益成熟,高精地图已经成为了各大厂家的新战场。高盛对全球高精地图市场的预判是,到2025年市场规模会扩大到94亿美元。行业普遍认为,未来15年高精地图行业将进入黄金发展期。而在这个过程中,最好的选择肯定是制定标准。如果不能,那选择一个有前景的标准进行跟随和应用也是提升自身核心竞争力的有效手段。那么你觉得NDS是这个有前景的标准吗?

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智能驾驶
    +关注

    关注

    5

    文章

    2861

    浏览量

    50324
  • 自动驾驶
    +关注

    关注

    790

    文章

    14469

    浏览量

    172323
  • 高精地图
    +关注

    关注

    0

    文章

    27

    浏览量

    2880

原文标题:高精地图数据格式NDS了解一下

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    地图与通义实验室达成深度合作

    在AI原生浪潮推动,阿里巴巴集团旗下地图与通义实验室宣布达成深度合作,并在近日发布的地图2025版本中落地多项共建成果。
    的头像 发表于 08-15 17:23 ?951次阅读

    康谋方案 | LiDAR+神经渲染3DGS的完美融合实践

    在自动驾驶仿真测试刚需,数字孪生成提升保真度关键。本文介绍传统与前沿结合的构建流程,先通过数据采集、点云聚合等完成地图重建,再以NeR
    的头像 发表于 06-11 13:51 ?1260次阅读
    康谋方案 | <b class='flag-5'>高</b><b class='flag-5'>精</b>LiDAR+神经渲染3DGS的完美融合实践

    LPC55S28修改音频数据格式后USB Aduio类异常的原因?

    您好 NXP 前辈,我已经更改了 LPC55S28 官方 SDK 上的 USB 音频数据格式。 我的主要问题是修改音频流格式类型描述符。 我的想法是将 USB Aduio 每个通道的数据字节数从 2
    发表于 03-20 07:33

    使用RDATAC指令后,ADS131E04传送的数据格式以及内容是怎样的?

    请问使用RDATAC指令后,ADS131E04传送的数据格式以及内容是怎样的,数据手册是按照ADS131E08为例来说明有27个BYTE,不知道ADS131E04是不是只用15个BYTE?
    发表于 01-10 07:19

    从《自动驾驶地图数据规范》聊地图在自动驾驶中的重要性

    从技术、管理和应用等多个维度规范自动驾驶地图数据的生产与使用。 引言 随着全球范围内自动驾驶技术的加速发展,自动驾驶地图新型数字基础设施正逐渐成为智能汽车产业的核心支撑。不同于传统
    的头像 发表于 01-05 19:24 ?2490次阅读
    从《自动驾驶<b class='flag-5'>地图</b><b class='flag-5'>数据</b>规范》聊<b class='flag-5'>高</b><b class='flag-5'>精</b><b class='flag-5'>地图</b>在自动驾驶中的重要性

    ADS1298R将每信号都以12位的位压缩格式进行存储并传输,会不会对ADS1298采集的数据造成大的影响?

    ADS1298R采集的数据是24位的,我现在需要按照MIT-BIH 的数据格式:将每信号都是以12位的位压缩格式(即“212”格式)进行
    发表于 01-02 06:16

    调试TL16C752B收发数据,TL16C752B直没有数据出来是哪里出了问题?

    正在调试TL16C752B收发数据,读写寄存器都没有问题,但是TL16C752B直没有数据出来,求解决,附件中有我的代码,数据格式是8个数据
    发表于 12-31 08:12

    ads1158读取数据,得到的数据格式是什么样的啊?

    = SPDR; return data; } 想请教一下,其他两种读数据,得到的数据格式是什么样的啊?
    发表于 12-24 08:28

    FP8数据格式在大型模型训练中的应用

    本文主要介绍了 FP8 数据格式在大型模型训练中的应用、挑战及最佳实践,展示了 FP8 在提升训练速度和效率方面的潜力和实际效果。
    的头像 发表于 11-19 14:54 ?2469次阅读
    FP8<b class='flag-5'>数据格式</b>在大型模型训练中的应用

    ADC3561转换成什么数据格式便于高速实时通过WIFI发送?

    5MHz的16位采样率,LVDS格式数据输出,使用串口转WIFI模块受限于串口波特率无法实现实时发送,请问转换成什么数据格式便于高速实时通过WIFI发送
    发表于 11-18 08:06

    PCM2707的S/PDIF输出的数据格式是什么?

    我想问一下PCM2707的S/PDIF输出的数据格式是什么? 在网上查到的资料说是S/PDIF是用来传输数字信号的,可以传输PCM形式的信号,那是不是就是说带有S/PDIF输出的声卡(比如说
    发表于 11-07 06:33

    请问AIC3106怎么设置成单声道32位数据格式

    AIC3106 怎样设置成单声道 32位数据格式
    发表于 11-04 08:17

    SRC4192能否支持输入TDM格式音频数据,输出I2S,进行数据格式转换?

    如下: 输入格式没有提到TDM,输出提到了TDM格式。 我就想确定下这款芯片能否支持TDM转换成I2S。如果不能的话能否推荐一下我需求的这款芯片,感谢!!! 附件是SRC4193资料。
    发表于 10-25 11:41

    激光焊接了解一下

    功率密度是激光加工中最关键的参数之。采用较高的功率密度,在微秒时间范围内,表层即可加热至沸点,产生大量汽化。因此,功率密度对于材料去除加工,如打孔、切割、雕刻有利。
    的头像 发表于 10-17 08:38 ?1138次阅读

    请问TLV320AIC3268的ADC转换后的数据格式是什么样的?

    我在使用TLV320AIC3268,但是不知道ADC转换后的数据格式是什么样的?比如是二进制补码吗?转后的数据与输入的模拟信号的电压值有什么关系?
    发表于 10-14 07:48