新背景下的自动驾驶仿真后台与全栈工程师 - ITS文库 - 智慧交通网 ITS114.COM|中国智能交通领先的门户网站
  • 首页 > ITS百科 > ITS文库 > 正文

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

    2021-01-29 09:44:55 来源:自动驾驶仿真 作者:David 评论:
    分享到:
    自动驾驶仿真的“后台”在做什么?
    “全栈工程师”与自动驾驶仿真后台可以怎么耦合?

    新背景下的全栈

    自动驾驶全栈,一个狭义的解读就是:高精地图、定位、融合、决策、控制都懂的人。在强调算法/功能的早期阶段,是比较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生态,打通生产环境中的各个节点。通过快速试错,小步快跑,最终给用户提供持续的小惊喜。特斯拉就是这样子嘛。当然,最难的是改变团队的文化。扁平化管理、提高个人主观能动性、提倡分享、充分信任等等。

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

    总结

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

  • 关键字:
  •    责任编辑:黑萝莉
  • 延伸阅读!

  • 每周新闻精选

  • 关于我们
  • 联系我们
  • 广告赞助