自动驾驶框架 Apollo 1.0 -源码分析

自动驾驶框架 Apollo 1.0 -源码分析

开篇


最近没有更新文章,是因为我暑假回家了。 
当然,也抽空去看了看Apollo的代码。存了几篇文章是因为我想看完后,做一个总结,然后再发布。 
所以接下来的几天都会更新关于Apollo的源码分析文章。 
可惜我的公众号每天只能发一篇,不然可以连续更新9篇了。


ok,话不多说,开始。


Apollo源码分析之 (安装)。


Apollo的代码看了一段时间了。觉得应该写一点源码分析文章来鞭策自己更加细致的研究Apollo的各个模块框架。 
--8月语


【1】安装Apollo-Kernel:

1.

在以下网址

 
  
  1. https://github.com/ApolloAuto/apollo-kernel/releases

下载已经官方已经编译好的Apollo Linux Kernel 内核二进制文件。

2.

最开始我是git clone代码下来准备自己从源码编译,但是由于我个人用的是阿里云的学生机,太慢了,所以Ctrl+C后老老实实的执行

 
  
  1. wget https://github.com/ApolloAuto/apollo-kernel/releases/download
  2. /1.0.0/linux-4.4.32-apollo-1.0.0.tar.gz

3.

按照README.md一步一步安装。由于G-W-F的存在,上述文件花了好一段时间才下载下来。然后开始执行以下代码

 
  
  1. tar zxvf linux-4.4.32-apollo-1.0.0.tar.gz
  2. cd install
  3. sudo ./install_kernel.sh

4.

然后vim test_rt test_rt.c,输入README.md的代码。 
编译:gcc -o test_rt test_rt.c -lrt 
最后运行没问题的话就表示安装成功。

5.

安装的内核的时候把我的虚拟机搞崩了一次,内核升级导致无法开机导致我重装了虚拟机的系统。 
原则上阿里云是不支持内核升级的。所以如果用虚拟机玩Apollo,最好安装之前先用阿里云官方的快照功能备份一下系统,这样即使安装失败不行后,也可以马上恢复系统,不至于像我一样还得重新安装系统。 
另外虚拟机的内存需要大于2G,Apollo最低要求2G内存。

【2】安装Apollo

1,下载Apollo源代码: 从github source下载Apollo的源代码:

 
  
  1. git clone git@github.com:ApolloAuto/apollo.git
  2. cd apollo

2,参考以下命令设置环境变量 APOLLO_HOME:

 
  
  1. echo "export APOLLO_HOME=$(pwd)" >> ~/.bashrc && source ~/.bashrc

3, 在一个新的终端或者已有的终端中输入source ~/.bashrc

【3】 设置Docker支持

1,运行以下命令来安装Docker:

 
  
  1. cd $APOLLO_HOME
  2. bash docker/scripts/install_docker.sh
  1. 脚本完成后,注销并重新登录系统以启用Docker。

  2. (可选)如果您已经安装了Docker(在安装Apollo内核之前),请在其中添加以下行 /etc/default/docker:

 
  
  1. DOCKER_OPTS = "-s overlay"

【4】 自定义你的发布容器

  1. 通过运行以下命令下载并启动Apollo 发布的 Docker映像:
 
  
  1. cd $APOLLO_HOME
  2. bash docker/scripts/release_start.sh
  1. 通过运行以下命令登录Apollo 发布的 Docker映像:
 
  
  1. bash docker/scripts/release_into.sh

【5】运行Offline Demo

 
  
  1. rosbag play docs/demo_guide/demo.bag --loop

如果运行失败: 
按照https://github.com/ApolloAuto/apollo的README.md的说明,执行以下命令:

 
  
  1. 设置Docker环境请运行如下命令
  2. bash docker/scripts/install_docker.sh
  3. # 退出并重新登录,这样可以非sudo运行Docker
  4. docker ps # 确认Docker可以非sudo运行
  5. bash docker/scripts/dev_start.sh
  6. bash docker/scripts/dev_into.sh
 
  
  1. 基于源代码搭建Apollo
  2. bash apollo.sh build
 
  
  1. 启动Apollo
  2. # 启动人际交互界面(HMI)
  3. bash scripts/hmi.sh
 
  
  1. 访问 HMI
  2. 使浏览器打开人机交互界面(HMI), 地址是:http://localhost:8887。 然后点击Dreamview启动HMI。

由于各种各样的原因,不要期望一次性就能安装好。如果有运行失败的提示可以按照官网的指导自己解决。另外,由于涉及到内核升级,所以最好用备份系统来安装。整个过程还是挺复杂而漫长的。

我安装参考的官网指导有: 
【1】https://github.com/ApolloAuto/apollo/blob/master/README_cn.md 
【2】https://github.com/ApolloAuto/apollo/blob/master/docs/demo_guide/README_cn.md 
【3】https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_quick_start_cn.md 
【4】https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_hardware_system_installation_guide.md
【5】https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_quick_start_developer.md 
【6】https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_build_and_release.md

【6】播放演示rosbag

启动一个终端窗口,进入apollo目录

 
  
  1. bash docker/scripts/dev_into.sh # 进入docker环境
  2. rosbag play -l ./docs/demo_guide/demo.bag

如果一切顺利的话,可以得到和官网一样的效果图。这时,Dreamview会播放一辆带着预测轨迹的行驶中的汽车。

安装步骤就是这些了。建议多看官网的指定,多看github上的issue,说不定你遇到的问题别人也遇到过,比如:

 
  
  1. command " rosbag " not fonud

注释版源码以后会放到我的github上。


本文首发于微信公众号slamcode。

自动驾驶框架 Apollo 1.0 -源码分析_第1张图片

你可能感兴趣的:(Apollo)