文章目录
- 平台架构:
- 基础环境:
- 开始使用:
- 体验心得:
在自动驾驶技术飞速发展的今天,成为这个领域的一名开发者是一次挑战、一次冒险,更是一次心灵之旅。作为这个领域的先锋之一,Apollo开放平台9.0于12月19日发布,同时Apollo开放平台9.0为开发者提供系统且全面的入门开发指南,让刚接触这个领域的开发者非常容易上手,下面与大家分享我在平台搭建中的成长与心得体会。
平台架构:
因为项目需要搭建自动驾驶系统平台,从社区活跃度、框架工具、文档教程、平台功能等方面进行了调研最终选择了Apollo开放平台作为我们的自动驾驶系统开发平台。搭建的首要任务是需要了解平台架构。其分别由硬件设备平台、软件核心平台、 软件应用平台和工具服务平台四层组成。
自底下向上,硬件设备平台主要解决了自动驾驶系统搭建过程中的线控车辆以及传感器等硬件设备问题。软件核心平台提供了自动驾驶车端软件系统框架与技术栈。其包括底层的操作系统,中间层的实时通信框架,以及上层的自动驾驶应用层,如感知、预测、规划、控制、定位等。软件应用平台面向不同应用场景的工程以及自动驾驶应用模块的能力扩展。通过应用平台层,开发者可以更方便的基于平台各模块能力进行裁剪组合并扩展。工具服务平台提供了自动驾驶研发过程中的研发基础设施,提升自动驾驶研发效率。
自动驾驶系统开发最大的痛点是实测成本,数据量也非常大,Apollo 开放平台云端服务平台通过云端的方式解决了数据利用效率的问题,通过与仿真结合降低了实车测试成本,能够极大的提升基于 Apollo开放平台的自动驾驶研发效率。这也是我们选择Apollo开放平台做我们自动驾驶系统平台的原因。
基础环境:
Apollo开放平台需要安装必备的基础软件才能开发运行,由于Linux系统分Redhat、Centos、Fedora等多个分支,我们在选择系统时候最好选择官方建议的Ubuntu 18.04做基础环境,因为官方已经验证过也为了避免少走些坑。Apollo开放平台基于Docker容器运行非常方便进行启动与管理而且也不用学习Docker如何安装,直接运行官方提供的脚本即可。
Apollo开放平台9.0的环境管理工具可以帮助我们管理和启动平台环境容器,安装也简单按照社区文档操作就可以了。
开始使用:
官方提供的Dreamview+功能非常强大可视化显示当前自动驾驶车辆模块的输出信息。例如:规划路径、车辆定位、车架信息等。
为使用者提供人机交互接口以监测车辆硬件状态,对模块进行开关操作,启动自动驾驶车辆等。提供调试工具。例如:PnC 监视器可以高效的跟踪模块输出的问题。 不过,Dreamview+ 的大部分的功能,主要是为了在实际上车调试中使用的。
进行感知模块开发的开发人员,提供感知开发调试相关的数据操作流程选项、可视化数据展示面板与调试信息面板。PnC 开发调试模式适用于进行规划与控制模块开发的开发人员,提供 PnC 开发调试相关的数据操作流程选项、可视化数据展示面板与调试信息面板。
Dreamview+帮助我们在场景仿真方面用于运行并监测规控算法效果,可设置规划、控制、路由算法的开启与关闭,从云端同步场景后运行,为场景添加不同行驶轨迹,可在运行过程中可查看模块时延、控制台日志、通过监控模块查看 PnC 算法的数据记录,以及各通道内报文信息。只需要从Apollo Studio 云端下载需要的场景集并在本地场景列表中选择要运行的场景,然后在自动驾驶系统资源中选择 车辆,开启模块、轨迹绘制、运行仿真即可完成。此功能可以帮我们模拟出各种复杂的道路车况场景。然后查看模块延时、控制台等信息并根据您自己的需求进行代码调试。
体验心得:
Apollo开放平台9.0提供了全面的开发工具和文档。通过详细的文档,我们可以轻松了解整个平台的架构、功能模块以及使用方法。Apollo开放平台的开发工具涵盖了传感器模拟、地图数据管理、车辆控制等方面,让开发者可以一站式完成整个自动驾驶系统的构建。文档的详细程度和示例代码的完备性为开发者提供了强有力的支持,大大降低了学习和使用的门槛。
在社区中还可以与来自世界各地的同行进行交流、分享经验,解决问题。这种开放式的交流氛围为解决实际问题提供了便利,同时也促进了自动驾驶技术的不断进步。在我的体验中,社区的支持让我能够更加迅速地解决遇到的困难,获得反馈和建议。
Apollo开放平台9.0的模块化设计让系统搭建更加灵活。我们可以根据项目需求选择合适的模块进行集成,避免了从零开始的开发,提高了开发效率。平台支持多种传感器数据的输入和输出,使得系统适用于不同的场景和车型。这种灵活性使得我们可以更好地适应多样化的应用场景,提高了系统的可扩展性。
总的来说,我深刻体会到了平台的强大功能、友好的开发环境以及丰富的社区支持。随着自动驾驶技术的不断发展,相信Apollo开放平台将继续发挥重要作用,推动自动驾驶领域的创新与进步。