最近百度终于把很久之前就宣称要开源的自动驾驶平台开源了,叫apollo。我也借这个机会学习一波,看看百度是怎么做的。
一、下载源码
首先,进入apollo的官网,这里有对apollo的介绍
接着,进入apollo的github,有个apollo,这就是我们主要需要关注的项目了。
然后
git clone https://github.com/ApolloAuto/apollo
由于硬件要求,安装和使用apollo平台的方法在github的页面上都有详细说明,我在这里就不细说了。
需要指出的是,目前百度使用docker来部署apollo的运行环境,因此准备环境的时候你会发现有个步骤会从dockerhub下载docker容器。
如果想要脱离对docker的依赖,可以自己查看dockerfile里面的步骤,也许我会写一篇文章来说明,不过肯定是很久以后了。。。
二、源码结构
这里我们先来看一下源码的结构
docker文件夹放的是和docker容器有关的文件
docs文件夹放的是说明文档
modules放的是apollo中各个模块的源代码,也是之后我们将要详细说明的部分
scripts放的是一些百度写的部署和运行apollo的脚本
third_party存放了第三方的依赖库
tools文件夹和其他文件都是和apollo构建有关的配置文件
进入modules文件夹
可以看到每个模块都分得很清楚,而且模块的功能通过文件夹的名称也能很直观的看懂。
canbus代表从CAN获取数据或将控制指令传给CAN的模块
common表示不同的模块都有可能用到的功能,比如日志,比如工厂模式的实现
control就是控制车辆的部分
decision就是决策的部分
dreamview是webUI显示的一部分
hmi以web UI的方式提供了当前车的状态
其他文件夹的内容还没看,今天就先写这么多吧