Ubuntu14.04搭建GPU版本的百度Apollo3.5自动驾驶平台

https://mp.weixin.qq.com/s/c3eeIjZBx4Fd76sbAtvvhA

 

操作系统

目前可以选Ubuntu 14.04, 以后会继续讨论16.04的安装。

下载源码

git clone https://github.com/ApolloAuto/apollo.git#获取源码,默认为3.5版本
git checkout r3.0.0#切换分支

下载nvidia驱动(版本375.39)

wget https://cn.download.nvidia.com/XFree86/Linux-x86_64/375.39/NVIDIA-Linux-x86_64-375.39.run  

因为apollo镜像仅支持cuda8.0,不能使用太新版本的驱动程序。

安装Apollo-kernel(在安装nvidia驱动.run之前)

wget https://github.com/ApolloAuto/apollo-kernel/releases/download/1.5.5/linux-4.4.32-apollo-1.5.5.tar.gz
tar zxvf linux-4.4.32-apollo-1.5.5.tar.gz
cd install
sudo ./install_kernel.sh

安装Apollo-kernel替代nvidia自带kernel可以提升实时性能。

安装docker

cd apollo#以实际目录为准,进入apollo主目录  
sudo bash docker/setup_host/setup_host.sh  
sudo bash docker/setup_host/install_docker.sh  

安装nvidia驱动前置

sudo apt-get --purge remove nvidia-* #删除宿主机的nvidia  
sudo apt-get autoremove  
sudo gedit /etc/modprobe.d/blacklist.conf#禁用nouveau,在文件里写blacklist nouveau
sudo update-initramfs -u  
sudo reboot

重置nvidia,并禁用nouveau。

修改docker启动脚本

在docker/scripts/dev_start.sh添加两行:

  -v /usr/src:/usr/src \  
  -v /lib/modules:/lib/modules \

效果如下:

启动docker镜像

sudo bash docker/scripts/dev_start.sh
sudo bash docker/scripts/dev_into.sh

docker镜像内安装nvidia

先在宿主机中把NVIDIA-Linux-x86_64-375.39.run放置于apollo目录下,然后在docker中运行如下命令安装:

source /apollo/scripts/install_gcc.sh 
ln -s /usr/bin/cc /usr/bin/cc1 chmod +x ./NVIDIA-Linux-x86_64-375.39.run 
sudo ./NVIDIA-Linux-x86_64-375.39.run --no-opengl-files -a -s --no-kernel-module 
source /apollo/scripts/recover_gcc.sh 
rm /usr/bin/cc1

最后在主机中运行

docker commit container_id apolloauto/apollo:tag_name#container_id用docker ps -l查看, tag_name自己取名字。该命令用于将已基于源镜像更改的内容保存成新的镜像。

主机中安装nvidia

sudo ./NVIDIA-Linux-x86_64-375.39.run --no-opengl-files -a -s --no-kernel-module

在主机安装完成后重启。

验证安装

在主机端和镜像内均输入nvidia-smi,如果均可以输出显卡信息,则说明显卡安装成功。

运行yolo算法代码

Yolo为感知模块中摄像头每帧识别物体及大小的神经网络算法。

主机端:
cd apollo#主机到阿波罗的根目录
sudo bash docker/scripts/dev_start.sh -l -t tag_name#(对应之前commit的tag名称)
sudo bash docker/scripts/dev_into.sh
docker镜像:
bash apollo.sh build-gpu#使用gpu编译代码,等接近半小时
sh bazel-bin/module/perception/obstacle/camera/detector/yolo_camera_detector/yolo_camera_detector_test
#切记不可用cd逐渐进入子目录,因为需要根据apollo下的相对路径寻找权重文件
#如果出现不能找到文件的错误,需要用find -name 文件名 找到对应文件的目录,然后用cp 也好mv也好保障yolo模块可以找到文件路径。

如果得到下图,则表示运行成功。

你可能感兴趣的:(无人驾驶)