首页 > 汽车技术 > 正文

新背景下的自动驾驶仿真后台与全栈工程师

2021-01-25 16:48:41·  来源:自动驾驶仿真  
 
新背景下的全栈自动驾驶全栈,一个狭义的解读就是:高精地图、定位、融合、决策、控制都懂的人。在强调算法/功能的早期阶段,是比较common sense的。但随着量产
新背景下的全栈

自动驾驶全栈,一个狭义的解读就是:高精地图、定位、融合、决策、控制都懂的人。在强调算法/功能的早期阶段,是比较common sense的。但随着量产的节奏越来越近,只提供纯算法解决方案已不能满足需求。

回过头看,狭义的解读围绕的只是“大系统”中的一个核心模块:ads core。一个更广义的“自动驾驶全栈”,则涵盖了更多非功能的模块/服务,自动驾驶仿真会覆盖一些非核心模块,是比较合适切入“自动驾驶全栈”的节点。

新背景下的自动驾驶仿真“后台”

一些大厂的自动驾驶仿真后台在做什么?为什么大厂都会尝试切入自动驾驶仿真后台?各家服务的区别点在哪里?

腾讯
·  数据采集
·  数据管理, 定义数据接口,数据dashboard,同时接入腾讯云(存储/计算)
·  数据应用,数据诊断、 ads core迭代
·  回归测试,数据注入仿真引擎
·  仿真kpi

cognata/经纬恒润
·  
场景库, 在线编辑、第三方导入
·  仿真引擎,包括场景生成、交通流、传感器模型、车辆动力学模型、仿真评价系统。实现热插拔,所述模块都可以通过sdk导入引擎,配置非常灵活,配置ui也非常美观。单从用户操作上,是体验和设计感最好的一款吧。
·  数据kpi分析

百度
·  vehicle log
·  场景集合,实现场景重现、动态参与物、自车manuver提取
·  仿真引擎,基本模块都类似,也定义了自己的场景评价系统。分别对理想完美仿真和真实数据回放定义了:worldsim,logsim。是国内有产品也有工具链的团队。主观感受比腾讯靠谱。

华为
·  数据采集,华为的(tbox)硬件方案
·  数据传输, 华为的5g车路协同网络
·  数据处理
·  dashboard, 定义 corner case, 场景统计,回放等功能
·  数据接口,可以接AI训练、仿真、以及第三方(政府、保险)等

如上,百度、华为、腾讯,还有阿里、滴滴、美团等,大厂都较快的基于其”大后台“去构建/拓展了自动驾驶仿真流程。大厂的优势是,软件栈,包括中间件、大数据、AI等栈都是ready-to-go的,云服务也是成熟的。而且大厂都有意识打通各个业务模块(AI、算法模型、仿真等),没有孤岛。其实想想,腾讯没几辆自动驾驶车,可以快速推出一套自动驾驶仿真PaaS,可想其中多少是源自自动驾驶业务需求,而多少是源自腾讯在游戏领域的积累和成熟。

各家的仿真PaaS所提供的服务/功能都很类似。最定制化的细节,都是在业务中反复实践出来的。传统汽车主机厂,缺乏成熟可用的”大后台“积累,各个组件相对孤立的。一方面是可以考虑购买大厂基于自家公有云的PaaS服务,但难免跟原来的开发实践不能很好的融合。引入了一些新问题。另外,就是迅速转变,提高自己“大后台”构建的能力。

我们需要什么技术栈

大厂里面对“大后台”有不少成熟的实践了。诸如,微服务,DevOps。各家也有不少开源的框架、中间件。下面可以从自动驾驶仿真的几个环境,简单总结下所依赖的技术栈。

场景库

真实数据在自动驾驶领域场景的使用包括:数据服务,包括大数据挖掘、传感器验证、数据诊断等;仿真服务,生成场景,即建立场景库;AI训练

对于生成场景,技术栈主要围绕真实数据解构展开,包括清洗、分类、标签、入库、检索、回放、数据可视化、数据资源url访问、真值系统计算等。

需求层面的细节问题较多,诸如,数据如何采集、采集车队管理监控、数据如何回传本地数据中心/远程数据中心、数据格式、存储系统(nfs, ceph, s3)、数据备份恢复、数据安全等。

也有一些很大厂的技术实践:大规模图片数据分布式存取的缓存设计,大数据io的批处理设计,基于AI的场景推理/提取/生成等技术(roman roads)。

实现上述场景业务需要的“大后台”包括:分布式数据存储访问、数据库、web服务开发、数据可视化、数据接口设计、服务监控管理、包括分布式运维等。

仿真引擎

引擎的开发,在前面提到了很多,cognata的实践是很好的参考。需要强调,仿真引擎的评价能力,尤其对于自动化测试,非常需要;sdk接口的设计,对ads core一般采用ros协议,对第三方动力学一般采用fmi;对数据注入的支持,也逐渐成为考量仿真引擎的指标。

还有一类仿真引擎,更像是数据批处理业务:数据回放,然后分析,统计。

这些业务需要的“大后台”包括:分布式DevOps, docker 化,运行管理k8s、工作状态监控、任务/消息队列、配置管理、数据接口、通信协议、数据流业务缓存、批处理等。

KPI

数据呈现、回放、问题诊断、corner case分析提取、评价指标统计等。需要的“大后台”包括:大数据套件、数据可视化套件等。

开发阶段。在传统主机厂的v-型开发思路下,引入一些agile的思想:快速迭代,持续集成,持续部署。采用gitlab/jekins/jira等DevOps生态,打通生产环境中的各个节点。通过快速试错,小步快跑,最终给用户提供持续的小惊喜。特斯拉就是这样子嘛。当然,最难的是改变团队的文化。扁平化管理、提高个人主观能动性、提倡分享、充分信任等等。

量产阶段。在量产阶段,需要的“后台”是车-云方案。仍然要解决:车端数据收集、数据诊断、系统(仿真)验证等,在研发阶段的数据链路,仍然是有效的。但是,规模成本、系统稳定性、用户可用性等因素也必将考量,需要更深的后台技术栈。

总结

从“狭义全栈“自动驾驶到“广义全栈”,围绕核心功能模块,拓展了更多外围非功能模块/服务。强调“大后台”并不是简单的邯郸学步:把互联网的成熟经验简单套用到自动驾驶的开发运维上。而是自动驾驶发展到了一个需要全盘规划非功能性业务的阶段了。在当今的微服务架构下,强调可用性,高拓展性,这样的推进是自然又必然的。另外,数据驱动的自动驾驶队伍,也会越来越加强“后台”的建设。 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号