新阶段,新架构
12月19日,百度正式推出了Apollo开放平台的全新升级版本--Apollo开放平台9.0,面向所有开发者和生态合作伙伴,以更强的算法能力、更灵活易用的工具框架,以及更易拓展的通用场景能力,继续构筑自动驾驶开发的领先优势。此外,在自动驾驶教育、生态合作伙伴等方面,Apollo开放平台也带来了最新进展。
在Apollo开放平台9.0中,百度从工程、算法、工具和文档四个方向实现了全面升级,使得Apollo系统在使用上更简单、更灵活、更高效。同时,面向企业开发者推出了封闭园区低速场景的通用能力与服务,加速企业开发者快速扩展与落地。
接下来,本文将详细介绍Apollo开放平台9.0各方面的升级点和新增能力。
核心层:精『易』求精,灵活、简单、效率高
Apolo开放平台9.0在工程、算法和工具等方面实现了全面升级,整体操作更加灵活易上手。极大提升开发效率的同时,可帮助更多开发者快速搭建属于自己的自动驾驶系统。
一、工程框架全升级,包管理2.0上线,二次开发简单更多样
1.包管理整体进化,易于二次开发
在8.0版本中,我们重新整理了模块之间的依赖并引入了软件包的概念来管理和发布各个模块,优化了下载安装中出现的下载量大、无法按需使用、编译时间过长等问题,并在这个基础上更新发布了基于应用场景的扩展方案让更多开发者更好更快地使用Apollo。在9.0版本中,我们从以下三个方面做了进一步的升级:
1)模块组件更细粒度重构
感知、驱动、规划控制等模块按照功能粒度进行了拆分和重构,开发者可以根据需求更方便地选择使用,同时Apollo整体架构更加清晰,进一步降低了上手门槛。
2)二次开发简单更多样
* 统一调度接口,最快1天内即可完成场景Demo搭建
针对需要实现自定义调度逻辑的自动驾驶应用的扩展场景,增加了统一的接口模块,并对已有的规划功能进行封装。只需基于接口开发调度模块,即可实现特定应用场景的自动驾驶,最快1天内即可完成场景Demo搭建。
* 简化调参方式,调参效率提升1倍
针对具体应用调整参数配置的扩展场景,9.0版本对参数配置管理和说明做了优化和补充,方便开发者快速找到需要调整的参数配置,调参效率提升1倍。
* 新增插件机制,代码学习成本可降低90%,代码量降低50%
针对开发者需要添加自定义功能的扩展场景,9.0版本设计了新的插件机制,并对感知、规划、控制等模块中,常用的功能逻辑进行了插件化改造,提供了可继承扩展的插件基类,开发者只需重写基类接口便可轻松实现功能扩展,代码学习成本可降低90%,代码量降低50%。
3)支持ARM编译
本次升级,适配了ARM架构,并支持在orin下编译和运行,在设备选型上为开发者提供了更多样的选择。
2、PnC包管理2.0,方便可扩展
1)重构分级,开发更简单
* 分级参数配置机制
Apollo开放平台9.0将参数划分为全局参数和局部参数,并将局部参数放在插件中独立管理,开发者可直接在插件目录中进行查询和修改。
* 内聚易复用的Task
按照功能进行路径处理Task类型重构,LaneChange、LaneBorrow、LaneFollow 等功能单独放在一个Task中,启用/禁用Task更快速。
2)统一接口
9.0版本的接口统一封装在external_command模块处理,并改用server-client的方式调用接口,解耦了上层业务调用和PnC模块,屏蔽了内部模块升级变化导致的影响。开发者可通过client查询任务执行状态,便于自定义扩展接口和底盘命令,同时精简了RoutingRequest导航命令。
3)全新插件机制
Scenario、Task和Traffic Rules插件化,可根据场景需要自定义添加场景、任务或交通规则。支持独立开发部署插件,通过配置流程启动和运行,并可随Apollo一起升级。
3、感知包管理2.0,既灵活又统一
1)功能组件拆分
我们将激光雷达、相机和红绿灯检测从功能层面拆分为独立的组件,使每个组件的功能更加集中和内聚。同时,支持这些组件的自由组合和定制不同的算法流程,以满足当前场景的需求。这使得学习和二次开发更加便利,提高了开发效率。
2)感知配置项优化
针对之前感知配置复杂的问题,9.0版本采取了三个方向的优化措施。首先,通过减少每个组件的重复配置项,我们降低了配置的复杂性。其次,我们对组件的配置进行了统一管理,提高了配置的一致性和可维护性。最后,我们提供了详细的参数说明与修改文档,使得用户可以轻松地查阅和修改配置。这些优化措施不仅增强了系统的可维护性和可扩展性,而且提高了开发效率。
3)新增感知开发模式
支持组件开发和插件开发两种模式,以便在提供的感知框架下,更方便地替换原有算法,同时提高模块的复用性。这样的优化措施有助于增强系统的灵活性和可扩展性,并降低开发成本。
以下为官方的教学课程,感兴趣的小伙伴上课学习吧~
Apollo开放平台9.0专项技术公开课链接
https://apollo.baidu.com/community/activity/16
《Apollo自动驾驶技术详解25讲》https://apollo.baidu.com/community/online-course/77
《自动驾驶新人之旅》
https://apollo.baidu.com/community/online-course/11