当前位置: 首页 > news >正文

VMware下一文带你构建Apollo9.0运行环境

VMware下一文带你构建Apollo9.0运行环境

  • 前言
  • 准备
  • 安装基础软件
    • 1.安装Docker19.03+
    • 2.安装nvidia驱动
    • 3.安装Nvidia container toolkit
  • 下载Apollo源码
  • 编译Apollo9.0源码
    • 1.启动Apollo环境容器
    • 2.进入Apollo环境容器
    • 3.编译
      • 编译过程中可能出现的问题
  • 总结

前言

笔者初次接触Apollo9.0时基于百度的官方文档去配置搭建Apollo9.0的运行环境发现中间由于网络和硬件等相关问题前后失败了很多次,踩了很多坑,一次次的崩溃又一次次的站起,终于功夫不负有心人,在参考一系列前辈的智慧后终于完成Apollo9.0环境的搭建并成功编译,成功进入Apollo的世界。在此,笔者回忆往昔搭建环境的辛酸历程,想到想要了解踏入一个崭新的领域却被环境等问题拒之门外的悲凉,有感而发打算将自己在Apollo9.0前期踩的一些坑整理成文档分享给后面想要学习了解自动驾驶领域的同学,为大家提供一个捷径,不至于被一些环境拦在门外,顺利的进入到Apollo的世界继续砥砺前行,愿大家能够通过此文进入到Apollo的世界,为国内的自动驾驶添砖加瓦

准备

  • 一台已经安装ubuntu系统的VM虚拟机(Ubuntu系统的版本可以参考Apollo官方文档里面的配置表适配安装,我这里装的是Ubuntu20.04)

安装基础软件

1.安装Docker19.03+

sudo apt-get update
sudo apt-get install docker.io

如果虚拟机里已经有docker的版本了,需要先把docker卸载之后再按照上面的命令再次安装

  • 安装完成之后可以通过下述命令查看是否安装成功
docker version

docker安装成功
如上图所示返回docker的版本号等信息即为docker安装成功

  • Docker配置
sudo systemctl start docker
sudo systemctl enable docker

通过上述命令对docker进行配置

2.安装nvidia驱动

  • 因为VMware虚拟机的GPU是虚拟机虚拟出来的,无法安装nvidia显卡驱动,故此步骤省略

3.安装Nvidia container toolkit

  • 因为VMware虚拟机的GPU是虚拟机虚拟出来的,无法安装nvidia显卡驱动,故此步骤省略

下载Apollo源码

  • 执行以下命令克隆 Apollo 源码
# SSH 方式
git clone git@github.com:ApolloAuto/apollo.git# HTTPS 方式
git clone https://github.com/ApolloAuto/apollo.git
  • 切换到最新分支:
cd apollo
git checkout master
git branch -a

切换分支
如上图所示*号在master前面即表示当前已切换到master分支

编译Apollo9.0源码

1.启动Apollo环境容器

  • 在 apollo 目录下输入以下命令来启动环境容器
bash docker/scripts/dev_start.sh

操作成功后将会有如下提示输出

[ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
[ OK ] To login into the newly created apollo_dev_michael container, please run the following command:
[ OK ]   bash docker/scripts/dev_into.sh
[ OK ] Enjoy!

2.进入Apollo环境容器

bash docker/scripts/dev_into.sh

进入docker
如上图所示即为成功进入Apollo环境容器

3.编译

在容器内的 /apollo 目录下输出以下命令编译整个工程

./apollo.sh build

编译成功
如上图所示即为编译成功

编译过程中可能出现的问题

  • 1.出现Socket closed导致编译未完成
14, error message: 'Socket closed', log file: '/apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/server/jvm.out')

解决方案:这是硬件资源耗尽导致OOM,可以自行修改脚本来控制编译使用的硬件资源:
在scripts/apollo_base.sh中第755和757行做如下修改

--jobs=${count} --local_ram_resources=HOST_RAM*0.7"

改成

--jobs=2 --local_ram_resources=HOST_RAM*0.5"

如下图所示
修改硬件编译资源

  • 2.Ubuntu卡死导致无法编译成功
    解决方案:这是硬件资源耗尽导致,可以采用如下方式解决:
    1.关闭虚拟机,提高虚拟机的内存、硬盘、cpu核后再操作(笔者vm配置如下可供参考)
    VM配置
    2.使用Ubuntu命令行模式下再进行Apollo编译(方式1解决不了的情况下使用)

总结

综上所述,按照上面的操作一步步知道成功完成对Apollo源码的编译,道友们就可以愉快的进入到Apollo的世界,在Apollo的世界里肆意的驰骋了,最后谨以此文祝愿各位道友都能在Apollo的世界里学有所成,梦有所圆,提升自己的同时也为中国的自动驾驶事业的发展贡献出自己的一份力量


http://www.mrgr.cn/news/19553.html

相关文章:

  • tomato靶机通关攻略
  • 基于 AT 固件测试 ESP32 设备作为 WiFi AP 模式创建 TCP Server 开启 UART-to-WiFi 透传模式的指令序列
  • 公司网站设计方案
  • python中.之后的圈c、圈v分别代表什么意思?
  • Chrome 浏览器插件获取网页 window 对象(方案二)
  • Mysql数据量大,如何拆分Mysql数据库(水平拆分)
  • 【精选】高校餐厅校园送餐系统的开发与实现(全网最新,独一无二,阿龙定制(高校毕业生系统,大学生就业信息系统吗,就业系统,JAVA系统,就业系统,信息管理系统)
  • 字节4面通过,我可以跟面试官要30K吗?
  • 一文解析新手玩转TikTok只需TK引流系统
  • 利用javacv实现视频转h264
  • GIS十大经典问题之1.缓冲区分析问题
  • 构建数据安全防线:MySQL数据备份的软件要求与实践
  • 程序员学Python编程规范(简单明了!)
  • 记一次公有云遇到的bug(随手记)
  • C++:红黑树的深度剖析和模拟
  • 09-03 周二 ansible部署与使用指南
  • spring源码之ConfigurationClassPostProcessor解析配置类
  • 基于FPGA实现SD NAND FLASH的SPI协议读写
  • Ansys Workbench如何导出某个面的节点及坐标
  • vue-awesome-swiper 问题