0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Ubuntu14.04搭建GPU版本的Apollo3.5平台

YB7m_Apollo_Dev 来源:lp 2019-03-08 11:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ubuntu基于Linux的免费开源桌面PC操作系统,支持x86、64位和ppc架构。

由于Apollo项目是在Docker中运行,因此不能直接在Ubuntu 14.04系统中直接生成核心转储文件并使用GDB对其进行调试,所有的工作必须在Docker中完成。

开发者还需要GLFW(图形库框架)3.2及更高版本,它支持EGL和运行时上下文创建API选择。

本文由社区开发者「朗拓科技-杨鸿城」撰写。为大家详细讲述了如何用Ubuntu14.04搭建GPU版本的Apollo3.5平台。

Apollo 3.5 历史版本的跨越式升级,使自动驾驶不光整体提升了驾驶能力和安全性,从而可以“媲美”人类老司机,更为自动驾驶全行业在向全面落地的进发过程中提供了更优质、更全方位的技术支持。Apollo 3.5将继续为开发者们节省造轮子的时间。

希望本文能为开发者们带来更多帮助。

以下,ENJOY

安装Ubuntu14.04

安装Git-LFS

添加SSH密钥(可选)

下载Apollo镜像

设置Docker环境

安装ROS-Indigo(可选)

安装Apollo预编译的内核

编译CPU版本的Apollo

运行Apollo Demo 演示

编译GPU版本的Apollo(可选)

可参考:

*《安装Windows10,Ubuntu双系统14.04LTS记录》

https://www.cnblogs.com/arcsinw/p/5303615.html

1.安装Curl

1sudoapt-getupdate2sudoapt-getupgrade3sudoapt-getinstallcurl

2.添加地址

1#RequiredforUbuntu14.04/16.04.2curl-shttps://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh|sudobash

3.安装Git-LFS

1#Ubuntu14.04/16.04/18.04.2sudoapt-getinstall-ygit-lfs

PS:若未安装Git,需先执行 sudo apt-get install git .

写在前面:用SSH方式下载Apollo镜像需要秘钥,用HTTP方式 下载则可以跳过此步骤。

1.首先注册一个GitHub账号

2.参考:

https://blog.csdn.net/qq_34446663/article/details/81106018

或者

https://www.cnblogs.com/qcwblog/p/5709720.html

添加秘钥

最后实现效果如图:

1.从GitHub源代码下载Apollo源代码并查看正确的分支:

1gitlfsclonehttps://github.com/ApolloAuto/apollo2cdapollo3gitcheckoutmaster4echo"exportAPOLLO_HOME=$(pwd)">>~/.bashrc&&source~/.bashrc

#文件下载大概1.8G,这里的APOLLO_HOME应该替换为Apollo文件夹所在根目录。

如果你过去安装过其他版本的Docker,先删掉:

1sudoapt-getremovedockerdocker-enginedocker.io

首先安装依赖:

1sudoapt-getinstallapt-transport-httpsca-certificatescurlgnupg2software-properties-common

信任Docker的GPG公钥:

1curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd-

对于Amd64架构的计算机,添加软件仓库:

1sudoadd-apt-repository2"deb[arch=amd64]https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu3$(lsb_release-cs)4stable"

如果你是树莓派或其它ARM架构计算机,请运行:

1echo"deb[arch=armhf]https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu2$(lsb_release-cs)stable"|3sudotee/etc/apt/sources.list.d/docker.list

最后安装

1sudoapt-getupdate2sudoapt-getinstalldocker-ce

把当前用户加到Docker用户组中:

添加Docker用户组

1sudogroupadddocker

把自己加到Docker用户组中

1sudogpasswd-amyusernamedocker

Myusername是指你的用户名

重启Docker后台服务

1sudoservicedockerrestart

切换当前用户到新Group

1newgrp-docker

确认Docker可以非sudo运行

1dockerps

写在前面:Apollo3.5可不用安装Ros,但Apollo很多驱动都是从Ros移植过来的,安装Ros仍有研究价值。

1、执行

1sudosh-c'echo"debhttp://packages.ros.org/ros/ubuntutrustymain">/etc/apt/sources.list.d/ros-latest.list'

2、执行

1wgethttp://packages.ros.org/ros.key-O-|sudoapt-keyadd-

3、更新源

1sudoapt-getupdate

4、安装ros-indigo-desktop-full

1sudoapt-getinstallros-indigo-desktop-full

大概需要半个小时左右

5、执行代码初始化ROS

1sudorosdepinit

若提示Rosdep update 则执行Rosdep update

6、设置环境变量

1echo"source/opt/ros/indigo/setup.bash">>~/.bashrc2source~/.bashrc

以上的这个设置是永久性的,不需要每次打开一个终端都需要进行一次设置。到此ROS安装完成,终端执行Roscore进行测试即可。

7、下载Apollo-Platform并解压:

https://github.com/ApolloAuto/apollo-platform/releases

将文件夹中的Ros拷贝到Apollo工程中:

1rsync-avros/~/apollo/third_party/ros_x86_642cdapollo3source./third_party/ros_x86_64/setup.bash

*注:如果只是用于「学习研究」用途可以不安装「内核」,用于「真实驾驶」则必须安装「内核」。

写在前面:在安装Apollo内核之前先卸载 NVIDIA显卡驱动(参考编译GPU版本的Apollo(可选)第1步),因为Apollo内核是实时系统,而默认安装的NVIDIA驱动内核不支持实时系统(会造成循环登录),如果只是用于学习研究用途可以不安装内核,用于真实驾驶则必须安装内核。

安装Apollo内核后,再安装NVIDIA 驱动时必须加上 --no-kernel-module 参数(参考编译GPU版本的Apollo(可选)第6步)。

1.从GitHub上的发布部分下载发行包:

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

2.下载发布包后安装内核:

1tarzxvflinux-4.4.32-apollo-1.5.0.tar.gz2cdinstall3sudobashinstall_kernel.sh4sudoreboot

1.设置Docker环境

1cdapollo2bashdocker/scripts/dev_start.sh-C#-C表示从中国镜像服务器下载,速度较快3bashdocker/scripts/dev_into.sh

2.编译Apollo

1bashapollo.shbuild#若提示权限不足,则sudosu

3.启动人机交互界面(HMI)

1bashscripts/bootstrap.sh

打开Chrome浏览器,输入地址“localhost:8888”即可访问Dreamview。

参考:

https://github.com/ApolloAuto/apollo/blob/master/docs/demo_guide/README.md

或者

在Docker中执行

1bash scripts/bootstrap.sh2python docs/demo_guide/rosbag_helper.py demo_3.5.bag cyber_recorder play -f docs/demo_guide/demo_3.5.record --loop

顺利执行后,打开网页localhost:8888,便可以看到小车运动起来。效果如图:

这一步官方教程写得较为简略,故安装容易出错。

1.由于官方推荐安装NVIDIA-375版本的驱动,故先卸载原有驱动。

1sudoapt-get--purgeremovenvidia-*2sudoapt-getautoremove

若之前禁用了Nouveau,需要重新启用Nouveau,在Blacklist中将Nouveau注释掉。

1sudogedit/etc/modprobe.d/blacklist.conf2sudoupdate-initramfs-u3sudoreboot

开机后要确保NVIDIA驱动已经被删掉了,进入了低分辨率显示。

可用lsmod | grep nouveau检查Nouveau 是否正在运行。

2.在apollo/docker/scripts 目录中,有一个dev_start.sh 文件,大概在它的305行加入两条语句:

1-v/usr/src:/usr/src2-v/lib/modules:/lib/modules

效果如图:

3.安装NVIDIA驱动有Ppa、Run和Deb三种方式,本文推荐Ppa安装,简单且不容易出错。

写在前面,首先在NVIDIA官网上确定自己显卡可以安装的驱动版本,如RTX2080显卡只能安装410以上驱动。

a. 在主机里安装NVIDIA驱动

1sudoadd-apt-repositoryppa:graphics-drivers/ppa2sudoaptsearchnvidia-3843sudoapt-getinstallnvidia-384

b. 在Docker中安装NVIDIA驱动

1sudoadd-apt-repositoryppa:graphics-drivers/ppa2sudoaptsearchnvidia-3843sudoapt-getinstallnvidia-384

注意:Docker中NVIDIA驱动和主机中NVIDIA驱动的细分版本号(如384.130)必须保持完全一致,否则安装失败。

成功安装NVIDIA驱动后,需要重新禁用nouveau。

注意:通过ppa成功安装NVIDIA驱动后,不用再执行第4-8点步骤。

4.这是官方推荐用run文件安装驱动的方式:若按第3点已经成功安装驱动,则不用执行4-8点步骤。

下载官方Nvidia驱动程序安装文件,Apollo官方推荐375.39的版本

1wgethttp://us.download.nvidia.com/XFree86/Linux-x86_64/375.39/NVIDIA-Linux-x86_64-375.39.run

下载后默认放在/apollo 目录下。

5.在终端命令行中打开启动Docker:

按住CTRL+ALT+F1进入终端命令行 ,输入用户名和密码登录。

这一步会进入不带图形界面的命令行,在关闭图形界面前,可以按CTRL+ALT+F7 在图形界面间来回切换。

在F1的命令行中执行:

1cdapollo2./docker/scripts/dev_start.sh3dockerexec-itapollo_dev/bin/bash

若第三步报错,则执行docker exec -it apollo_dev_username /bin/bash ,这里的Username指你的用户名。

PS:在命令行中启动Docker是为了后面关闭 图形界面。

6.在F1的命令行Docker中安装NVIDIA驱动程序,这一步是重中之重,很容易出错,必须按照以下顺序一步一步进行。

1source/apollo/scripts/install_gcc.sh2ln-s/usr/bin/cc/usr/bin/cc13chmod+x./NVIDIA-Linux-x86_64-375.39.run4sudo./NVIDIA-Linux-x86_64-375.39.run--no-opengl-files-a-s--no-kernel-module5source/apollo/scripts/recover_gcc.sh6rm/usr/bin/cc1

a. Apollo自带gcc为4.8.4版本,而安装NVIDIA驱动需要gcc4.9版本,故先执行 install_gcc.sh 安装gcc4.9 。

安装完驱动后需切换回4.8.4版本,故执行recover_gcc.sh 删掉 gcc 4.9。

b. --no-opengl-files 这个参数非常非常重要,安装时必须加上。

c. 在执行NVIDIA安装程序时应该会出现

‘’ X.Org X server is running ‘’ 之类的错误提示,出现之后说明我们需要关闭 图形界面。

1sudoservicelightdmstop

执行之后再按CTRL+ALT+F7 应该看不到图形界面了。若在F1 的docker中关不掉图形界面,可按CTRL+ALT+F2 后再关闭图形界面。

d. 如果在执行NVIDIA安装程序时出现‘‘An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel.’’之类的提示,说明之前NVIDIA驱动未卸载干净。

e. 关闭掉图形界面之后,再执行

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

可以在Docker中成功安装驱动。

安装完成可用

1whereisnvidia

检查是否安装成功。

1nvidia:/usr/src/nvidia-375.39/nvidia/usr/share/nvidia

若显示有这两个目录则安装成功,否则失败。

7.确保成功完成以上每个步骤之后,再在主机中安装NVIDIA 驱动。打开一个新终端:

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

8.安装好NVIDIA驱动后,执行

1sudoservicelightdmstart

可重新启动图形界面。

9.在Docker中安装好NVIDIA驱动后,千万不能关闭正在运行的Docker,否则刚做的改动全部没有保存。

此时在主机中新打开一个终端,执行:

1dockerps#查看正在运行的docker2dockerimages#查看主机上的镜像文件

此时我们需要将刚刚改动过的Docker,保存为新的镜像文件

1dockercommitCONTAINER_IDapolloauto/apollo:NEW_DOCKER_IMAGE_TAG

其中,CONTAINER_ID为docker ps查看到的第二行第一列信息,NEW_DOCKER_IMAGE_TAG 为我们自定义保存新镜像的名称 ,对应于Docker Images 的第二行第二列信息。

我们按照它的命名规则对新TAG进行命名,以笔者为例,正在运行Docker的TAG 为 dev-x86_64-20181216_1500 ,命名为dev-x86_64-20181217_1500,执行

1dockercommite5dfeb8a0b2fapolloauto/apollo:dev-x86_64-20181217_1500

则将刚刚的改动保存为新的镜像文件,可通过Docker Images 查看新的镜像文件。

在主机与Docker中均成功安装NVIDIA驱动后,重启Ubuntu。

10.新打开一个终端,进入刚刚保存的新镜像:

1cdapollo2/docker/scripts/dev_start.sh-l-tNEW_DOCKER_IMAGE_TAG3./docker/scripts/dev_into.sh

其中,NEW_DOCKER_IMAGE_TAG为 刚刚为新镜像取的名称。

若启动Docker过程中 若出现NVIDIA Not Found 等提示,则说明主机NVIDIA驱动未成功安装。

11.在新镜像中使用GPU选项构建Apollo

在正式Build之前,可用几条指令检查环境是否齐备:

1whereisnvidia2cat/usr/local/cuda/version.txt3dpkg-l|greplibcudnn74cat/usr/include/cudnn.h|grepCUDNN_MAJOR-A2

在主机的终端中执行nvidia-smi 确认驱动是否正确安装。

若所有条件均已达成,则开始编译:

1./apollo.shbuild_gpu

若第一次使用GPU编译,需要等待较久的时间。

13.编译完成后,可执行一个Demo检查是否成功编译GPU版本的APOLLO。

1./bazel-bin/modules/perception/camera/test/camera_lib_obstacle_detector_yolo_region_output_test

若出现

error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory ,之类的错误提示,则说明Docker 或者主机的NVIDIA驱动未正确安装。

或者直接运行所有测试

1./apollo.shtest

如果出现PASSED,恭喜你已经成功编译GPU版本的APOLLO!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5100

    浏览量

    134478
  • Ubuntu
    +关注

    关注

    5

    文章

    603

    浏览量

    32900
  • 自动驾驶
    +关注

    关注

    791

    文章

    14673

    浏览量

    176644
  • Apollo
    +关注

    关注

    5

    文章

    350

    浏览量

    19639

原文标题:开发者说 | Ubuntu14.04搭建GPU版本的Apollo3.5平台

文章出处:【微信号:Apollo_Developers,微信公众号:Apollo开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    tiny4412 Qt环境搭建

    1.硬件环境 PC端:ubuntu18.04 开发板硬件平台:tiny4412 内核版本:linux3.5 交叉编译器:arm-linux-gcc Qt
    的头像 发表于 10-21 09:54 274次阅读
    tiny4412 Qt环境<b class='flag-5'>搭建</b>

    搭建自己的ubuntu系统之系统安装

    注意:本文档以 Ubuntu 18.04 为例进行描述,其他版本的安装步骤可以参照此文进行相应操作。我们选择安装的ubuntu 版本是18.04,首先去
    发表于 09-25 09:43

    百度Apollo向北京工商大学捐赠自动驾驶车辆

    ,包括使用Apollo开放平台、自行搭建教学系统等,为北京工商大学自动驾驶科研教育和人才培养提供关键硬件和软件支持。
    的头像 发表于 06-18 14:43 862次阅读

    能在Meteor Lake平台上使用SDK 3.5吗?

    SDK 是 3.6 版,不支持 CYPD6127 部件。 那么,我能在 Meteor Lake 平台上使用 SDK 3.5 吗?
    发表于 05-26 08:01

    如何在Ubuntu上安装NVIDIA显卡驱动?

    专有显卡驱动。本文将详细介绍在Ubuntu系统上安装NVIDIA显卡驱动的多种方法,帮助用户根据自身情况选择最适合的安装方式。 二,硬件参数 平台:PX22_GPU CPU:I7-1165G7
    的头像 发表于 05-07 16:05 2081次阅读
    如何在<b class='flag-5'>Ubuntu</b>上安装NVIDIA显卡驱动?

    如何在Ubuntu 24.04上运行5.4.47版本

    ubuntu 18.04 不再是最新的,因此我用 ubuntu 24.04 设置了一新机器。在遇到一些困难之后,我能够为 SDK BSP 版本 6.6.52 构建 yocto 包
    发表于 04-11 06:08

    何用几条命令搞定Ubuntu系统的网络配置

    在某些场景下,设备没有显示器或屏可以用,这时候通过命令行来设置网络就变得特别重要了。本文将介绍如何用几条命令搞定Ubuntu系统的网络配置。
    的头像 发表于 03-14 10:53 3277次阅读
    如<b class='flag-5'>何用</b>几条命令搞定<b class='flag-5'>Ubuntu</b>系统的网络配置

    OpenVINO™检测到GPU,但网络无法加载到GPU插件,为什么?

    OpenVINO™安装在旧的 Windows 10 版本 Windows® 10 (RS1) 上。 已安装 GPU 驱动程序版本 25.20.100.6373,检测到 GPU,但网络
    发表于 03-05 06:01

    GPU加速计算平台的优势

    传统的CPU虽然在日常计算任务中表现出色,但在面对大规模并行计算需求时,其性能往往捉襟见肘。而GPU加速计算平台凭借其独特的优势,吸引了行业内人士的广泛关注和应用。下面,AI部落小编为大家分享GPU加速计算
    的头像 发表于 02-23 16:16 763次阅读

    GPU算力租用平台有什么好处

    当今,GPU算力租用平台为科研机构、企业乃至个人开发者提供了灵活高效的算力解决方案。下面,AI部落小编带您深入探讨GPU算力租用平台所带来的诸多好处。
    的头像 发表于 02-07 10:39 725次阅读

    GPU-Z迎来2.62 版本的更新发布

    近日,GPU-Z 迎来了 2.62 版本的更新发布。此次更新,主要是为了适配英伟达最新推出的 RTX 50 系列显卡,为用户提供更全面、准确的硬件信息。 在新发布的 2.62 版本中,GPU
    的头像 发表于 02-05 15:33 1090次阅读

    何用mac电脑搭建云存储,怎么用Mac电脑搭建云存储呢?

    都能提供强大的支持。那么,如何用Mac电脑搭建云存储呢?接下来,让我们一同开启这场探索之旅。    1、准备工作    硬件检查:确保Mac电脑的硬件性能良好。处理器性能会影响数据传输速度,建议选择性能较好的处理器;内存要充足,
    的头像 发表于 01-17 14:15 1050次阅读
    如<b class='flag-5'>何用</b>mac电脑<b class='flag-5'>搭建</b>云存储,怎么用Mac电脑<b class='flag-5'>搭建</b>云存储呢?

    搭建家庭云平台电脑,搭建家庭云平台电脑的操作方法

    在数字化浪潮的汹涌冲击下,传统电脑逐渐显露出局限性,而云电脑犹如一颗璀璨的新星,在信息技术的天空中冉冉升起,以其独特的魅力吸引着众多目光。今天就为大家介绍搭建家庭云平台电脑的操作方法。    搭建
    的头像 发表于 01-13 14:26 1338次阅读
    <b class='flag-5'>搭建</b>家庭云<b class='flag-5'>平台</b>电脑,<b class='flag-5'>搭建</b>家庭云<b class='flag-5'>平台</b>电脑的操作方法

    超级干货!本地搭建代码托管平台Gitea

    ,运行时对CPU和内存的需求较小,适用于个人或小型团队协作开发,适合在个人电脑或资源受限的服务器上使用。2Gitea的本地搭建本次搭建环境演示系统为Ubuntu18
    的头像 发表于 12-19 19:33 1302次阅读
    超级干货!本地<b class='flag-5'>搭建</b>代码托管<b class='flag-5'>平台</b>Gitea

    如何在Windows中安装Ubuntu系统

    的官方网站,下载并安装虚拟机软件。 下载Ubuntu ISO文件 : 访问Ubuntu官网(https://ubuntu.com/download/desktop),选择适合您需求的Ubunt
    的头像 发表于 12-12 14:29 3176次阅读