一文读懂|Apollo自动驾驶平台9.0全面解读

图片

2023年12月19日,百度正式推出了Apollo开放平台的全新升级版本--Apollo开放平台9.0,面向所有开发者和生态合作伙伴,以更强的算法能力、更灵活易用的工具框架,以及更易拓展的通用场景能力,继续构筑自动驾驶开发的领先优势。此外,在自动驾驶教育、生态合作伙伴等方面,Apollo开放平台也带来了最新进展。

新阶段 · 新架构

自2017年发布以来,Apollo开放平台不断更新迭代,经历了基础能力、场景能力、系统易用三个阶段后,开启了全新的生态共创阶段,并迭代至第13个版本--Apollo开放平台9.0。在进一步让开发者易上手的同时,助力生态企业更易扩展。

图片

在Apollo开放平台9.0中,我们从工程、算法、工具和文档四个方向实现了全面升级,使得Apollo系统在使用上更简单、更灵活、更高效。同时,面向企业开发者推出了封闭园区低速场景的通用能力与服务,加速企业开发者快速扩展与落地。

图片

Apollo开放平台9.0全新架构图

接下来,本文将详细介绍Apollo开放平台9.0各方面的升级点和新增能力。

核心层

精易求精,灵活、简单、效率高

Apolo开放平台9.0在工程、算法和工具等方面实现了全面升级,整体操作更加灵活易上手。极大提升开发效率的同时,可帮助更多开发者快速搭建属于自己的自动驾驶系统。

一、工程框架全升级,包管理2.0上线,二次开发简单更多样

包管理整体进化,易于二次开发

在8.0版本中,我们重新整理了模块之间的依赖并引入了软件包的概念来管理和发布各个模块,优化了下载安装中出现的下载量大、无法按需使用、编译时间过长等问题,并在这个基础上更新发布了基于应用场景的扩展方案让更多开发者更好更快地使用Apollo。在9.0版本中,我们从以下三个方面做了进一步的升级:

1.模块组件更细粒度重构

感知、驱动、规划控制等模块按照功能粒度进行了拆分和重构,开发者可以根据需求更方便地选择使用,同时Apollo整体架构更加清晰,进一步降低了上手门槛。

图片

2.二次开发简单更多样

1)统一调度接口,最快1天内即可完成场景Demo搭建

针对需要实现自定义调度逻辑的自动驾驶应用的扩展场景,增加了统一的接口模块,并对已有的规划功能进行封装。只需基于接口开发调度模块,即可实现特定应用场景的自动驾驶,最快1天内即可完成场景Demo搭建。

图片

2)简化调参方式,调参效率提升1倍

针对具体应用调整参数配置的扩展场景,9.0版本对参数配置管理和说明做了优化和补充,方便开发者快速找到需要调整的参数配置,调参效率提升1倍。

3)新增插件机制,代码学习成本可降低90%,代码量降低50%

针对开发者需要添加自定义功能的扩展场景,9.0版本设计了新的插件机制,并对感知、规划、控制等模块中,常用的功能逻辑进行了插件化改造,提供了可继承扩展的插件基类,开发者只需重写基类接口便可轻松实现功能扩展,代码学习成本可降低90%,代码量降低50%。

图片

3.支持ARM编译

本次升级,适配了ARM架构,并支持在orin下编译和运行,在设备选型上为开发者提供了更多样的选择。

PnC包管理2.0,方便可扩展

1.重构分级,开发更简单

1)分级参数配置机制

Apollo开放平台9.0将参数划分为全局参数和局部参数,并将局部参数放在插件中独立管理,开发者可直接在插件目录中进行查询和修改。

2)内聚易复用的Task

按照功能进行路径处理Task类型重构,LaneChange、LaneBorrow、LaneFollow 等功能单独放在一个Task中,启用/禁用Task更快速。

2.统一接口

9.0版本的接口统一封装在external_command模块处理,并改用server-client的方式调用接口,解耦了上层业务调用和PnC模块,屏蔽了内部模块升级变化导致的影响。开发者可通过client查询任务执行状态,便于自定义扩展接口和底盘命令,同时精简了RoutingRequest导航命令。

3.全新插件机制

Scenario、Task和Traffic Rules插件化,可根据场景需要自定义添加场景、任务或交通规则。支持独立开发部署插件,通过配置流程启动和运行,并可随Apollo一起升级。

感知包管理2.0,既灵活又统一

1.功能组件拆分

我们将激光雷达、相机和红绿灯检测从功能层面拆分为独立的组件,使每个组件的功能更加集中和内聚。同时,支持这些组件的自由组合和定制不同的算法流程,以满足当前场景的需求。这使得学习和二次开发更加便利,提高了开发效率。

图片

2.感知配置项优化

针对之前感知配置复杂的问题,9.0版本采取了三个方向的优化措施。首先,通过减少每个组件的重复配置项,我们降低了配置的复杂性。其次,我们对组件的配置进行了统一管理,提高了配置的一致性和可维护性。最后,我们提供了详细的参数说明与修改文档,使得用户可以轻松地查阅和修改配置。这些优化措施不仅增强了系统的可维护性和可扩展性,而且提高了开发效率。

3.新增感知开发模式

支持组件开发和插件开发两种模式,以便在提供的感知框架下,更方便地替换原有算法,同时提高模块的复用性。这样的优化措施有助于增强系统的灵活性和可扩展性,并降低开发成本。

二、感知功能上新,支持4D毫米波,主模型更新换代,提供增量训练

支持4D毫米波雷达

从硬件驱动到感知模型层,9.0版本中增加了对4D毫米波的支持,可以测量目标高度信息,同时实现更高的角度分辨率、输出更密集的点云,有利于使用深度学习的3D目标检测方法进行更精确的障碍物检测,提高自动驾驶车辆在雨雪雾等天气下的安全性。

图片

引入全新模型,检测效果提升

在9.0版本中,我们引入了前沿的、泛化性更强的模型,在激光雷达检测方向,我们采用了较新的CenterPoint模型替代了原来的CNNSeg模型;在视觉感知方向,我们使用了Yolo X+Yolo 3D模型替换了老的Yolo模型,通过百度百万量级数据进行模型训练,在模型效果上大幅超越老的模型;在性能方向,我们做了深度优化,在Orin平台上模型推理时延<40ms,满足开发者实际生产需要。

图片

激光雷达检测效果

图片

相机2D检测效果

图片

相机3D检测效果

提供增量训练,适应多种场景

同时,我们提供了全面且详细的增量训练教程,开发者可以通过使用少量标注数据,用较低成本,来显著提升特定目标和特定场景下的检测能力。训练代码完全开源,开发者可独立自主完成模型训练。

图片

场景中的特殊车辆

图片

增量训练前-有漏检且大小不准

图片

增量训练后-无漏检且大小准确

三、全新Dreamview+,三大领域全面提升,个性化界面更高效

操作优化,模式导向的多场景工作流

Apollo开放平台9.0引入了全新的操作方式,以感知、PnC等具体开发场景作为模式分类,每个模式均针对特定任务或场景进行优化,为开发者带来高度优化、无缝且直观的操作体验。

图片

图片

图片

界面升级,可高度自定义的面板布局

在界面布局方向,我们了采用模块化策略,将每项可视化工具和功能均封装成独立的面板形式存在,并提供全套的面板操作工具,支持开发者自由配置可视化面板的布局、各面板内容以及大小。同时,开发者可以创建符合自身工作流的操作界面,使用更方便。

图片

面板数量自由配置

图片

数据丰富,本地+云深度集成的资源中心

在数据库方向,我们加强了与Studio云端资源的互动,开发者可一键下载各类资源,包括地图、场景、车辆配置、数据包等用于算法测试,进一步丰富开发资源库。

图片

四、文档平台全面升级重构,易搜、易用,进一步降低学习使用成本

支持导航栏快速跳转,搜索直达及模式切换,便捷获取所需内容

1.新增导航栏设计,方便开发者在使用文档过程中,可以随时掌握文档的整体目录结构,实现指定章节的快速跳转,满足开发者对文档的整体把控,方便进行内容切换。

图片

2.新增全局搜索功能,开发者可以通过关键词检索相关的文章内容、代码文件等,快速直达所需内容,并可以根据需要自由选择检索类型,精简检索结果,精准定位目标位置。

图片

3.新增护眼模式切换功能,开发者可以一键切换背景颜色和白天/黑夜模式,阅读时页面背景能更好的适应环境光照变化,体验更友好的交互服务。

图片

针对不同开发者需求,重构使用文档和开发文档,提升开发效率

面对不同开发者的使用需求,在9.0版本中我们设计了更适合的阅读文档,重构文档结构和内容,提供更多有侧重点的差异化设计,更符合不同开发者在阅读和使用文档的思维习惯和应用场景。同时,也对部分同质化内容做了过滤处理,增强了不同开发者文档的核心内容一致性,确保能够提供由浅入深、由易入难的顺畅阅读体验。

图片

新增代码说明及注释,降低开发者代码阅读量,降低学习使用成本

新增代码及包详细的说明解释文件,从功能简介、代码结构、代码流转解析、配置、参数等维度进行了完整说明,帮助开发者更好的理解代码内容,降低开发者代码阅读量和学习难度,配合上述的代码检索功能,可以更便捷、容易上手Apollo代码内容。

图片

应用层

价值共创,更强、更快、更丰富、更高效

为了加快企业开发者场景应用落地,Apollo开放平台9.0打造了面向封闭园区低速场景的通用能力,并从以下四个方面进行全面升级:

  • 自动驾驶功能增强及稳定性提升,缩短部署调试周期,加快自动驾驶实车闭环;

  • 丰富了场景功能,减少开发者场景功能开发量,缩短业务系统对接时长,助推场景应用更快落地;

  • 新增ARM、Orin适配及更丰富的传感器选择,提供成本更低性能更高的硬件选择;

  • 提供地图和传感器标定全流程的可视化操作工具,提高运营落地效率,降低场景运维成本。

一、开箱即用的自动驾驶系统,加快自动驾驶实车闭环

在自动驾驶能力方面,Apollo开放平台9.0针对企业开发者的使用问题和需求进行全面增强及升级:

定位能力:

在RTK定位的基础上,增加激光点云SLAM定位方案,解决了园区场景中的树木、建筑物遮挡导致的定位漂移问题。开发者通过该方案可以解决如下图所示的树木遮挡导致的定位漂移问题,也可以适配短距离建筑物、桥梁遮挡等场景。

图片

遮挡环境下SLAM定位

感知能力:

1.Lidar与Camera融合效果优化:在感知方面,我们简化了Lidar与Camera融合的难度,同时使用百万级别的标注数据对模型进行训练,使得感知的准召率大幅提升。

2.异形障碍物检测:针对园区场景普遍存在的异性障碍物、深度模型训练时无类似标注数据、无法较好检测等问题,我们新增了背景分割算法,可以与深度学习模型配合提升异形障碍物召回率。

图片

异形障碍物检测

安全性和稳定性:

除了功能增强,9.0版本在安全性和稳定性方面得到了大幅优化并通过多方验证:

1.安全性提升:9.0版本提供从信息采集、异常监测、故障报警、故障处理及展示的全流程功能安全机制,覆盖硬件、软件、车体、网络多种故障维度,同时支持企业开发者根据自身需要定制故障类型。

图片

功能安全故障检测及处置机制

2.稳定性保障:Apollo联合企业合作伙伴经过两个多季度的持续测试,并在教育、矿卡、物流、环卫、巡检等超5个场景落地,经过10余家合作伙伴验证,自动驾驶任务成功率稳定在98%以上。通过功能增强、安全及稳定性提升,结合核心层的工程结构、算法能力和文档升级,整体适配环节减少40%,代码阅读量减少90%,代码调试量减少80%,企业开发者一周内即可完成自动驾驶实车闭环。

二、丰富场景能力,助推场景应用更快落地

在自动驾驶车辆完成闭环的基础上,为了加快企业者场景落地,Apollo开放平台9.0在通用能力层进行了如下优化,帮助企业开发者更快完成业务系统闭环:

多样的场景功能:

基于各应用场景需求调研及经验积累,在9.0版本中,我们对场景功能进行抽象,并提供了指定速度、指定路线、贴边行驶、开放区域规划、挡墙检测、路权管理等多样的场景功能,企业开发者可以通过接口调用和参数配置快速获取这些能力。

图片

作业设备线控对接:

对于园区场景中所需的举升、清扫、喷洒、灯光语音特殊作业设备控制,我们提供了标准协议和测试工具,让企业开发者快速完成适配。

图片

业务系统对接:

对于自动驾驶车辆与业务调度系统、C端应用、V2X、远程驾驶等系统的配合,我们提供了参考示例和第三方方案,让企业开发者快速完成系统对接。

图片

经过以上优化,开发者更多的开发精力放到场景难题突破和业务系统优化中,1个月即可完成场景应用业务系统闭环。目前已有部分企业开发者基于Apollo开放平台提供的通用能力,在一个月内完成了零售、环卫场景的业务系统闭环,并圆满完成ITS大会展示。

三、丰富硬件设备选型,更低成本、更高性能

为了满足企业开发者对硬件的成本及稳定性的高要求,Apollo开放平台9.0实现了ARM架构Orin设备的良好适配,且可以支持3个Lidar和4个Camera的高性能运行,帧率在10HZ以上,CPU/GPU利用率均在50%以下。同时支持时间同步等功能,相比于X86工控机成本可降低30%以上。

图片

在感知传感器方面,Apollo也与硬件厂商和合作伙伴构建了共建共享的协作机制,丰富了大量的设备选型。如相机支持更多的主流厂商、相机接口也从USB3.0升级为GMSL,新增多品牌多型号激光雷达,定位设备也新增多家厂商适配。后续Apollo也将持续与企业开发者、硬件厂商紧密合作,协作构建更繁荣的硬件生态,为开发者提供更低成本更高性能的多样性选择。

四、运维工具高效集成,大幅缩短落地时长

相较于车辆闭环,在运维落地场景中,工具的可用性、易用性则需要更高的要求。对此,9.0版本面向企业开发者将工具从研发态的代码开发升级为运营态的界面化操作。

1.传感器标定工具:支持Lidar和Camera的可视化标定,标定成功率90%以上。企业开发者无需车端采集数据,再上传到云端等待数据解算,标定时长由天级别缩短为小时级别。

图片

图片

左:Lidar标定  右:Camera标定

2.高精地图制图工具:提供地图采集、制图、编辑全流程工具。企业开发者可以基于生成的底图来编辑与实际路况一致的地图数据,也可以在车端直接修改,快速完成数据更新,地图创建周期由周缩短至小时级别。

图片

地图采集

图片

地图编辑

人才培养

链接生态、赋能教育,助力自动驾驶行业发展

作为自动驾驶领域的先行者,百度Apollo十分重视自动驾驶领域的教育和人才培养。通过Apollo Studio开发者社区,构建了课程、实验、赛事一站式学习实践平台。目前,Apollo Studio开发者社区在线学习人次超过3.8万,累计覆盖全国开设自动驾驶相关专业类的理工院校超70%,985,211理工类院校覆盖率68%,成为国内自动驾驶在线培训规模最大和最有影响力的社区。

一、构建学 - 练 - 验 一体化开发者学习旅程

产业的发展繁荣离不开优秀的人才。针对自动驾驶技术门槛高、学习难度大、实操成本高的特点,Apollo Studio开发者社区从文档/课程、实验、赛事三方面持续迭代,构建了完整通过文档课程【学习】--通过实验【练手】--通过赛事【验证】的开发者学习旅程。过去一年里社区平均月活提升67%,社区课程的累计播放量达到200w次。

图片

1.赛事方面:Apollo开放平台与中国人工智能学会合作,连续举办了2届自动驾驶赛事,两年来赛事累计报名院校300余所,报名队伍数1500多支,参赛人数累计超5000人,是目前全国自动驾驶类别的赛项中,报名规模最大的比赛;

2.课程方面:Apollo开放平台坚持开放共享,连续3年举办星火培训系列活动,来自全球各地的开发者共聚社区,已有超过3.8w+人次在线学习Apollo。

3.院校方面:在过去的一年中,Apollo开放平台为高校提供的实训项目及配套的课程资源,助力院校开设自动驾驶相关课程及专业,通过赛+课的人才培养模式,累计覆盖全国70%的理工+综合类本科院校,其中985、211头部高校覆盖占比68%。

二、全面升级立体化校企合作新模式

2023年发布Apollo EDU高校计划,旨在助力院校开设自动驾驶相关课程及专业。2024年高校计划再升级,从原有的课程合作升级到包含教学、师资、创新到更深度的实训的多层合作模式,培养学生工程实践、创新实践能力,旨在快速帮助高校开展创新实训项目,进一步推动校企融合,共建人才生态。

图片

三、重磅打造智能网联汽车专业建设方案

面向职业教育,围绕智能网联汽车岗位技能图谱,Apollo开放平台构建了高层次技术技能人才培养方案。方案充分发挥了Apollo的产业实践能力及Apollo开放平台的生态优势,基于对智慧出行、园区,物流等多元产业领域的调研分析,输出集成类、测试类、运维类、服务类四大岗位群的典型工作任务和职业能力要求,聚焦教学资源建设、实践基地建设、服务能力三大方向,实现优化跃升。

图片

目前,Apollo开放平台汇聚了来自全球170多个国家和地区的16万多名开发者,在Apollo开放平台8.0至9.0开发过程中重构12万行代码,新增20万行代码。Apollo开放平台9.0的推出,在功能上更趋完整丰富,操作上更加灵活易上手,场景通用易扩展。开发者可以参考9.0文档(https://apollo.baidu.com/docs/apollo/latest/)即刻下载并体验全新的灵活易上手的Apollo开放平台9.0版本,任何问题欢迎关注Apollo开发者社区公众号反馈,与我们共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/459324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA创建Java类时自动添加注释(作者、年份、月份)

目录 IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09;如图&#xff1a; IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09; 简单记录下&#xff0c;IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09;&#…

GetBilibiliVideo:一个下载B站视频的开源神器,让你轻松管理你的二次元世界。

正文&#xff1a; 引言 在广大ACG爱好者和内容创作者之间&#xff0c;哔哩哔哩&#xff08;Bilibili&#xff09;已经成为了不可或缺的视频分享与学习平台。为了满足用户对B站视频离线观看及备份的需求&#xff0c;我精心开发了一个名为 GetBilibiliVideo 的开源工具&#xf…

Airtest实现在手机界面快速批量采集数据

Airtest实现在手机界面快速批量采集数据 一、问题 Airtest使用的poco方法比较慢,寻找差不多一周,看完这篇文章能节省一周时间,希望帮到大家。二、解决思路 使用Airtest图像识别,这样就会速度上提升效率。 三、解决办法 使用页面规律,要找到每条数据的附近规律(一般是图…

精酿啤酒:使用全麦芽酿造的优点与挑战

全麦芽酿造是指使用全部麦芽而非仅使用部分麦芽进行啤酒酿造的过程。近年来&#xff0c;全麦芽酿造在啤酒行业中逐渐受到关注。对于Fendi Club啤酒来说&#xff0c;使用全麦芽酿造也带来了一些优点和挑战。 使用全麦芽酿造的优点首先体现在啤酒的口感和风味上。全麦芽含有更多的…

【iOS】——使用ZXingObjC库实现条形码识别并请求信息

文章目录 前言一、实现步骤二、扫描界面和扫描框的样式1.扫描界面2.扫描框 三、实现步骤 前言 ZXing库是一个专门用来解析多种二维码和条形码&#xff08;包括包括 QR Code、Aztec Code、UPC、EAN、Code 39、Code 128等&#xff09;的开源性质的处理库&#xff0c;而ZingObjC库…

CSS:九宫格布局

九宫格布局效果如下&#xff1a; HTML 结构&#xff1a; <div class"container"><div class"item">1</div><div class"item">2</div><div class"item">3</div><div class"item&q…

MPLS VPN功能组件(2)

MP-BGP 采用地址族(Address Family)来区分不同的网络层协议,以便正确处理VPN-IPv4路由 传统的BGP-4(RFC1771)只能管理IPv4的路由信息,无法正确处理地址空间重叠的VPN的路由。 为了正确处理VPN路由,VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BG…

DevOps落地笔记-21|业务价值:软件发布的最终目的

上一课时介绍如何度量软件的内部质量和外部质量。在外部质量中&#xff0c;我们提到用户满意度是衡量软件外部质量的关键因素。“敏捷宣言”的第一条原则规定&#xff1a;“我们最重要的目标&#xff0c;是通过持续不断的及早交付有价值的软件使用户满意”。从这一点也可以看出…

spring boot整合 cache 以redis服务 处理数据缓存 便捷开发

我们常规开发中 就是程序去数据库取数据 然后返回给客户端 但是 如果有些业务业务量非常庞大 不断访问数据库 性能就会非常糟糕 从而造成不好的用户体验 那么 我们自然就可以将数据查到缓存中 然后 用户访问 从缓存中取 这样就会大大提高用户的访问效率 之前 我的文章 java …

踩坑实录(Third Day)

临近年关&#xff0c;同事们该回家的也都回家了&#xff0c;所以我对工作的欲望不是很强烈&#xff0c;所以就主要是自己学习了一下&#xff0c;在 B 站看看视频&#xff0c;自己敲代码&#xff0c;所以今天没遇到什么坑&#xff0c;但是可以分享一下之前踩到的两个坑。 此为第…

svg基础(四)模式(<pattern>)点阵图,棋盘图,网格图,坐标图

<pattern> 1 定义 <pattern>标签用于定义以重复平铺方式填充对象的图形 2 语法 <patternpatternUnits"units to define x,y, width and height attributes."patternContentUnits"units to define co-ordinate system of contents of pattern…

详述FlinkSql Join操作

FlinkSql 的 Join Flink 官网将其分为了 Joins 和 Window Joins两个大类&#xff0c;其中里面又分了很多 Join 方式 参考文档&#xff1a; Joins | Apache Flink Window JOIN | Apache Flink Joins 官网介绍共有6种方式&#xff1a; Regular Join&#xff1a;流与流的 Joi…