查看原文
其他

进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战

阿波君 Apollo开发者社区 2022-07-29


循迹自动驾驶是指让车辆按照录制好的轨迹线进行自动驾驶,其涉及到自动驾驶中最基本的底盘线控能力、定位能力、控制能力,是自动驾驶系统的一个最小子集



上周阿波君为大家详细介绍了「进阶课程㊶丨Apollo实战——本机演示实战」


此课程介绍了Apollo项目的基本代码结构包括:DockerDocs(主要放置一些文档)Modules(核心模块算法都在该文件夹下)以及ScriptsTools等。此外,还介绍了软件的安装流程。


本周阿波君将继续与大家分享Apollo实战——车辆与循迹驾驶能力实战的相关课程(本节课程基于Apollo 3.0版本)。下面,我们一起进入进阶课程第42期。


完整版视频学习  请戳『阅读原文』



  以下,ENJOY  


在搭建完自动驾驶车辆的软、硬件环境以后,通常采用循迹测试进行验证,如图1所示。


图1 循迹测试涉及的Apollo模块


循迹测试涉及最底下的几个模块,只需要定位、控制以及Canbus这三个模块,是Apollo的最小子集,通过循迹可以验证车的线控能力以及模块的整体集成能力。


那么如何做循迹测试呢?首先在硬件上,我们需要一辆线控车辆、一个工控机以及惯导系统GPS和IMU,如图2所示。


图2 Apollo循迹测试硬件需求


如果大家使用的是参考硬件搭建的车辆,不需要进行适配,可以直接进行验证。


如果你不是用参考车辆来做这件事,需要做以下几步:


首先是实现一个适配层。通过代码里的Vehicle模块添加一个新Vehicle,其实就是从代码逻辑上添加一个车辆的设备层。具体包括添加一个新车控制器,再实现一个新消息管理器,然后在工厂类中注册这个新车和更新配置文件,如图3所示。


图3 添加一个新的Vehicle


第二步是Can卡的管理。Canbus通过CAN Card硬件去完成沟通,默认有一个叫ESD的CAN Card。如果我们新添不同的厂家,且它的驱动数据格式不一样,需要按照以下方式去集成一个新CAN Card。


图4 Can卡的集成方法


最后是控制模块。控制模块是一个非常开放的模块,大部分情况下,不需要定制。当然如果整个车辆的控制,底层的车辆有很大的差别,在个别情况下需要用自己的控制算法。新增控制算法的流程如图5所示。


图5 新增控制算法的流程


接下来就是定位,它是非常核心的一部分,图6是目前定位整体的逻辑框架。


图6 Apollo中定位模块的整体逻辑


目前Apollo提供两种定位方式,一种是RTK定位方式,基于基站的方式,需要GPS和IMU惯导。另一种方案是MSF(多传感器融合)的定位方式,除了GPS和IMU之外,还通过Lidar的3D点云来做认证匹配定位。循迹测试的定位只需要一个GPS即可。如果使用的不是Apollo推荐的参考硬件,就需要新添加,具体过程就是新建一个GPS解析类去解析GPS 的数据格式,然后再配置就可以实现。


设备搭建完成之后,可以通过HMI界面启动循迹测试,如图7所示,包括录制和执行两步。在录制之前,需要确认已经启动了所有相关的GPS, CAN Card模块。


图7 启动循迹自动驾驶的步骤


以上就是本节课程的主要内容了,更多话题讨论、技术交流,可以添加『Apollo小哥哥』为好友,进开发者交流群。





  




阿波君说:


在学习过程中,开发者不仅可以在Apollo开发者社区小程序上对课程内容进行提问,还可以在开发者微信群中交流学习心得,共同学习自动驾驶技术。

开发者社区还将在公众号上定期推送课程相关的技术干货,全程陪伴大家共同进步。祝Apollo开发者们顺利完成《Apollo自动驾驶进阶课程》的学习,在自动驾驶道路上越走越远!

阿波君还欢迎大家在小程序内晒出学习笔记,也可以加入开发者交流社群与大家交流互动,有好礼相送!



观看/阅读完该节课程后

在开发者社群

及小程序「社区问答」版块内

上传你的课程笔记截图

手写笔记/电脑文档均可

即可联络社区小助手获取

百度周边纪念品1份

赶快来撩吧~比心~





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存