【Apollo】建立对自主的信任:阿波罗的尖端技术

在这里插入图片描述
前言

  Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统
开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、成熟、安全的自动驾驶技术和数据开放给业界,旨在建立一个以合作为中心的生态体系,发挥百度在人工智能领域的技术优势,为合作伙伴赋能,共同促进自动驾驶产业的发展和创新。
  Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。


作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
本文收录于Apollo的学习录系列,大家有兴趣的可以看一看
相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
Python零基础入门系列,Java入门篇系列、docker技术篇系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下哦!

阿波罗的尖端技术

  • 1、更清晰的模块结构,降低学习门槛
  • 2、更快速的部署方式,提升编译效率
  • 3、更便捷的扩展方案,方便二次扩展、验及实践

  百度Apollo开放平台自上线以来始终保持着创新和高频的自我迭代,从最开始聚焦于基础能力的搭建,走向侧重场景能力的发展,再升级为对平台工程易用性精益求精的追求。12月28日,百度Apollo开放平台面向所有开发者,正式推出了Apollo自动驾驶开放平台的全新升级版本——Apollo 8.0,进一步夯实了平台的易用性,让开发者操作更简单易上手。

Apollo 8.0版本在以下几个功能点做出升级:

软件包管理

  在最新的8.0版本中,我们重新整理了模块之间的依赖并引入了软件包的概念来管理和发布各个模块,优化了下载安装中出现的下载量大、无法按需使用、编译时间过长等问题,并在这个基础上更新发布了基于应用场景的扩展方案让更多开发者更好更快的使用Apollo。
  (*关于【软件包管理】:包管理既将Apollo的编译产出按照“模块化”粒度进行规范化组织。一方面支持直接使用产出包的方式直接使用组件;另一方面规范组件的依赖关系以及组件的粒度,从而降低组件的使用/复用难度,提升自动驾驶系统的研发效率。详细规范介绍可以参考文档 Introduce to Package of Apollo。)

1、更清晰的模块结构,降低学习门槛

1、更清晰的模块结构,降低学习门槛
  相较于以往Apollo里各个模块间的依赖关系错综复杂,开发者要想了解和学习Apollo往往容易陷入代码阅读的困难中。在Apollo 8.0中,我们将Apollo各个模块进行重新梳理,去掉了不合理的依赖关系,整合了通用的模块,使Apollo整体结构更清晰简洁。此外,我们将各个模块依赖关系的明确声明放在包的描述文件(cyberfile.xml)中,方便开发者统一查看。同时,我们也提供了快速查看工具,方便开发者了解学习相关代码,整体降低开发者的学习门槛。
【Apollo】建立对自主的信任:阿波罗的尖端技术_第1张图片

2、更快速的部署方式,提升编译效率

2、更快速的部署方式,提升编译效率
  以往开发者安装Apollo都需要下载源码再全量编译才能完成整个部署,这个过程环节多耗时长,往往需要天级别的时间,且失败率高,成为开发者使用Apollo的第一道门槛。为了提升开发者编译效率,我们在Apollo 8.0引入了包管理的概念,在模块化的基础上对Apollo各个模块作了预编译和发布,并提供更细粒度的包以方便开发者按需获取和使用。无论开发者是想快速体验或是快速使用Apollo,都可以直接通过我们提供的工具快速安装部署,整个过程耗时缩短至30分钟内即可完成,大大减少了下载和编译的时间。

3、更便捷的扩展方案,方便二次扩展、验及实践

  在Apollo 8.0中,我们升级了更加便捷的二次扩展方案,开发者可针对自己的场景轻松的进行扩展、验证及实践,不再需要经过冗长的步骤修改源码和编译,只需要简单地声明一个cyberfile.xml即可轻松构建出一个端到端的工程。

3、更便捷的扩展方案,方便二次扩展、验证及实践
  以扩展修改Planning模块为例( Demo 工程的代码可参考 https://github.com/ApolloAuto/application-demo ),只需创建如下示例声明文件(Planning以源码形式安装),再执行编译指令即可将Planning源码安装到工作空间当中,同时也会将Planning调试相关必要模块以二进制包的形式安装。然后我们便可以直接修改工作空间下的Planning源码、编译、调试,从而构建出适用于所需场景的Planning模块。而构建一个完整的端到端自动驾驶软件系统,也只需要在上述基础上再添加相应的模块即可,如Perception、Prediction、Control等。

<package>
  <name>planning-customization</name>
  <version>1.0.0</version>
  <description>
   planning_customization
  </description>
  <maintainer email="apollo-support">[email protected]</maintainer>
  <type>module</type>
  <src_path>//planning_customization</src_path>
  <license>BSD</license>
  <author>Apollo</author>
  <depend>bazel-extend-tools-dev</depend>
  <depend type="binary" repo_name="dreamview">dreamview-dev</depend>
  <depend type="binary" repo_name="routing">routing-dev</depend>
  <depend type="binary" repo_name="task-manager">task-manager-dev</depend>
  <depend type="binary" repo_name="monitor">monitor-dev</depend>
  <depend type="src" repo_name="planning">planning-dev</depend>

  <depend expose="False">3rd-rules-python-dev</depend>
  <depend expose="False">3rd-grpc-dev</depend>
  <depend expose="False">3rd-bazel-skylib-dev</depend>
  <depend expose="False">3rd-rules-proto-dev</depend>
  <depend expose="False">3rd-py-dev</depend>
  <depend expose="False">3rd-gpus-dev</depend>
  
  <builder>bazel</builder>
</package>

  更多场景的示例可以参考文档 Apollo 8.0 Quick Start。
更全面的Apollo社区官网文档
  Apollo社区官网文档,主要为新手开发者提供Apollo相关介绍、以及上机场景和上车场景的实践说明,让新手开发者能快速了解Apollo并上手实操。在8.0中,我们优化了社区官网文档的结构,从开发者使用场景出发,针对不同场景提供应用实践案例指导以及扩展开发指导。

  社区官网文档:https://apollo.baidu.com/community/Apollo-Homepage-Document/Apollo_Doc_CN_8_0。
  另外还有活动任务《星火培训》:星火培训。
  Apollo 8.0从“新架构”、“新能力”两个重要层面进行了全面升级,从开发者的实际需求出发进行改良,帮助开发者更好、更快地熟悉和使用Apollo开放平台。此次Apollo开放平台8.0的推出,再次让Apollo开放平台在工程易用性上向前迈进一大步,降低操作难度、操作成本的门槛,让更多开发者可以简单方便地上手Apollo开放平台、投身自动驾驶技术领域。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

你可能感兴趣的:(Apollo的学习录,自动驾驶,人工智能,机器学习,运维,大数据)