在Ubuntu18.04上实现apollo5.5系统部署
笔者在Ubuntu18.04上部署了一下Apollo,中间遇到的各种问题解决了很久,真的有很多坑需要注意,到今天基本上是部署上了,总结一下具体操作步骤和几个需要注意的问题:
1.在终端执行以下命令完成最新软件包的更新:
~$ sudo apt update
2.安装并降级GCC和G++
请先用以下命令检查gcc和g++的版本:
~$ gcc --version
~$ g++ --version
若输出的gcc和g++的版本是4.8版本的,则跳过此步骤;否则,请执行以下两条命令安装4.8版本的gcc和g++,命令如下:
~$ sudo apt-get install g++-4.8 g++-4.8-multilib gcc-4.8 gcc-4.8-multilib
~$ sudo /usr/bin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 99 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
安装完成后,用以上命令检查gcc和g++的版本以确认安装成功;若安装未成功,请重新安装直到成功为止。
3.安装Apollo内核
a.从releases文件夹下载发布的包
https://github.com/ApolloAuto/apollo-kernel/releases
b.安装包下载完成后,解压后安装:
tar zxvf linux-4.4.32-apollo-1.5.5.tar.gz
cd install
sudo bash install_kernel.sh
c.在终端输入sudo gedit /etc/default/grub打开配置文件。
把grub_timeout_style=hidden注释掉,
把grub timeout=0中的0修改为10,
把grub_cmdline_linux_default=”quiet splash”中的“quiet splash”修改为”text”,
修改完成后保存退出。在终端中执行 sudo update-grub更新grub配置。 使用reboot命令重新启动计算机。
d.重启ubuntu系统进入grub引导界面,在引导界面选择高级选项,在高级选项里选择倒数第二项的apollo-kernel来引导系统。进入系统后,在终端中输入uname -r,若输出“4.4.32-apollo-2-RT”字样,则表示此时系统是以apollo-kernel引导的。 注意:从此以后,每次开机都需要以apollo-kernel来引导系统。
注:以下操作均要在内核系统完成
4.安装网卡驱动
默认情况下,IPC的两个网卡中有一个网卡是没有安装驱动连接不了互联网的。请从以下地址下载驱动安装包e1000e-3.8.4.tar.gz,在打开的页面中点击下载按钮会弹出“英特尔软件许可协议”对话框,接着点击“我接受许可协议中的条款”就可以开始下载了。下载完成后进入驱动文件的下载目录,执行以下命令来安装驱动:
下载地址:https://downloadcenter.intel.com/zh-cn/download/15817?_ga=1.159975677.114505945.1484457019
tar -zxvf e1000e-3.8.4.tar.gz
cd e1000e-3.8.4/src/
sudo make install
sudo modprobe e1000e
安装完成后,再检查驱动是否可以上网就可以了。
5.安装GPU驱动
下载apollo-kernel官网上的脚本install-nvidia.sh至当前用户的home目录下,注意是内核仓库下的,这个脚本很容易弄错,下载地址为:
https://github.com/ApolloAuto/apollo-kernel
输入以下命令完成显卡驱动内核模块的安装:
cd ~
sudo apt install make
sudo bash install-nvidia.sh
完成显卡驱动内核模块的安装后,在当前用户的home目录下会出现一个名为NVIDIA-Linux-x86_64-430.50.run的文件,执行以下命令完成显卡驱动用户库的安装:
cd ~
sudo bash ./NVIDIA-Linux-x86_64-430.50.run --no-x-check -a -s --no-kernel-module
完成显卡驱动用户库的安装后,重新启动。
在终端中输入以下命令来检查显卡驱动内核模块是否安装成功:
cat /proc/driver/nvidia/version
若输出的内容中包含”430.50”字样,则表示显卡驱动内核模块安装成功;若不是,请重新安装显卡驱动内核模块。
在终端中输入以下命令来检查显卡驱动用户库是否安装成功:
sudo dpkg --list | grep nvidia*
若输出的内容中显示显卡的用户库的版本是430.50的,则表示显卡驱动用户库安装成功;若不是,请重新安装显卡驱动用户库。
在终端中输入nvidia-smi,能看到显卡的信息且最下面没有出现No running processes found的相关字样,输入nvidia-settings能调出显卡的配置界面,则表示显卡驱动安装成功。(这里笔者驱动用户库没有装上去,官方回应调用独显试试,我这里没有弄好,但是发现一样能用,只要不循环启动就行)。
6.安装Can驱动
can卡驱动我不知道自己的电脑怎么安装,因为没有can卡驱动包,工控机的can卡驱动厂家会提供,所以这步我没管。
7.安装docker软件
参考网上的安装教程,这里我参考的
https://www.cnblogs.com/wt7018/p/11880666.html
8.下载Apollo源代码
建议去Apollo官网在GitHub仓库上直接下载:
https://github.com/ApolloAuto/apollo
解压到主目录,这里默认是apollo–master
另一个分支是apollo–r5.5.0,笔者用第二个分支做的编译
9.设置Apollo编译环境
a.设置环境变量,在终端输入以下命令:
cd ~
echo "export APOLLO_HOME=$(pwd)" >> ~/.bashrc && source ~/.bashrc
source ~/.bashrc
b.将当前账户加入docker账户组中并赋予其相应权限,在终端输入以下命令:
sudo gpasswd -a $USER docker
sudo usermod -aG docker $USER
sudo chmod 777 /var/run/docker.sock
命令执行完成后,重新启动一下计算机。
10.编译Apollo源代码
a.启动并进入docker容器,在终端输入以下命令:
cd ~/apollo-r5.5.0
bash docker/setup_host/install_docker.sh
bash docker/scripts/dev_start.sh
第一次进入docker时或者image镜像有更新时会自动下载apollo所需的image镜像文件,下载镜像文件的过程会很长,请耐心等待;如果你确信计算机本地有你需要的image镜像文件或者你不希望更新image镜像时,可以使用bash docker/scripts/dev_start.sh -n这个命令代替上面的命令,这样apollo就不会去github的官方网站比较本地image镜像和官方网站image镜像的区别了,这样可以省去二者比较的时间和避免因网络问题而导致的二者比较失败的现象,可以加快启动docker容器的速度。这个过程完成后,请输入以下命令以进入docker环境中:
bash docker/scripts/dev_into.sh
b.编译apollo,在终端输入以下命令,等待编译完成,整个编译过程大约耗时25分钟:
bash apollo.sh build_opt
11.运行DreamView
a.若您已经在docker环境中,请忽略此步骤,否则请执行以下命令进入docker环境:
cd ~/apollo
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh
b.启动apollo 在终端输入以下命令:
bash scripts/bootstrap.sh
如果启动成功,在终端会输出以下信息:
nohup: appending output to 'nohup.out'
Launched module monitor.
nohup: appending output to 'nohup.out'
Launched module dreamview.
Dreamview is running at http://localhost:8888
在浏览器中输入以下地址:
http://localhost:8888
可以访问DreamView。
c.回放数据包 在终端输入以下命令下载数据包:
python docs/demo_guide/rosbag_helper.py demo_3.5.record
输入以下命令可以回放数据包,在浏览器DreamView中应该可以看到回放画面。
cyber_recorder play -l -f demo_3.5.record
如果成功在浏览器中看到回放画面,则表明您的apollo系统已经部署成功!
来源:oschina
链接:https://my.oschina.net/u/4266968/blog/4468636