【Apollo学习笔记】从零开始Apollo系统安装
文章目录
- 1. Ubuntu 18.04 安装
- 1.1 硬件环境
- 1.2 Ubuntu 18.04安装以及遇到的问题
- 2. 常用软件的安装
- 2.1 搜狗输入法
- 2.2 Vscode
- 2.3 Docker
- 2.3.1 Docker的使用
- 2.3.2 docker 存储位置的改变
- 2.4 Ubuntu截图软件的使用
- 2.5 安装 NVIDIA GPU 驱动
- 2.6 安装 NVIDIA Container Toolkit
- 2.7 Ubuntu18.04 网页视频无法播放
- 3. Apollo beta软件包安装
- 3.1 软件包CPU模块
- 3.2 感知激光雷达功能测试
- 3.2.1 启动 Apollo Docker 环境并进入
- 3.2.2 下载 record 数据包
- 3.2.3 安装 Apollo core 和 DreamView
- 3.2.4 安装 transform、perception 和 localization
- 3.2.5 模块运行
- 3.2.6 结果验证
- 4. Apollo beta 源码安装
- 4.1 下载并编译 Apollo 源码
- 4.2 运行 Dreamview 检验编译是否成功
1. Ubuntu 18.04 安装
1.1 硬件环境
机型:联想拯救者 y9000p 2022
CPU:intel i7 12700H
GPU:RTX 3060
硬盘:双SSD
1.2 Ubuntu 18.04安装以及遇到的问题
具体安装过程参考下面这篇博文,(在安装双系统之前,记得把电脑里的重要数据、文件进行备份):
Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
注意联想拯救者的BIOS进入方式与设置方式——按F2进入BIOS设置,联想拯救者 y9000p 的BIOS界面有些特殊,主要完成两个操作:Secure boot——Disable 、USB boot——Enable。完成之后退出保存,进入win系统,再重启,同样按F2,进入BIOS,调整windows和带有Ubuntu的U盘的启动优先级,之后就可以进入Ubuntu安装了。下面两篇博客提供了参考方案。
拯救者Y9000P 安装Ubuntu18.04 、Ros Melodic等相关配置过程中出现的错误及解决办法
联想拯救者Y9000P 2022 i7-12* + 3070Ti安装ubuntu20.04(解决wifi失效、亮度调节问题)
联想拯救者 y9000p 2022 机型比较新,但是Ubuntu 18.04系统内核较老,有些驱动是没有的,会使安装后的系统无法连上无线网、没有声卡、没有蓝牙。能安装20.04的就安装20.04,系统版本高就不会有这些问题了,但我还有其他需求,所以得用18.04.
下面这篇博文给出了一些参考解决方案。
拯救者Y9000P 2022 ubuntu18.04问题总结
我暂时没有蓝牙、声卡等需求,所以这些方案我还未尝试过。对于没有无线网(未找到WIFI适配器)这个问题,我是用手机开热点,开启USB网络共享,再用一根USB线连上电脑。具体操作参考下篇博文。USB共享网络的设置如下图所示,不同手机可能不太一致,需要仔细找找。
【安装Ubuntu18.04遇到的问题】未找到WIFI适配器
另: 这篇博客给出了解决方案:拯救者y9000p 双系统 中ubuntu18.04无wifi适配器问题(亲测有效). 可能需要重复几次才能成功.
2. 常用软件的安装
2.1 搜狗输入法
搜狗输入法的具体安装参考搜狗输入法的官网安装指南。对于Ubuntu18.04,搜狗输入法的版本过高,可能无法成功使用,所以需要安装低版本的搜狗输入法。具体操作见【Linux】43.ubuntu18.04安装搜狗输入法不能正常使用。也可以不用搜狗输入法,就用原本的ibus。
2.2 Vscode
代码调试必备软件。参考安装教程ubuntu18.04系统下安装vscode教程。为了方便,可以直接从Ubuntu软件商店直接下载安装,很快很便捷,适合小白。
2.3 Docker
Apollo依赖于 Docker 19.03+。Docker的安装可以看官网的操作指南Install Docker Engine on Ubuntu。如果不太明白的话,可以参考这篇博客ubuntu18.04上安装Docker。安装的过程可能有些长,需要耐心等待。
2.3.1 Docker的使用
参考博客:Docker 如何删除及清理镜像
1.查看容器列表
docker images
2. 删除容器
docker rmi [image]
或者
docker image rm [image]
以删除GPU镜像为例
可以看到提示信息,无法删除该镜像,因为有容器正在引用他!同时,这段信息还告诉我们,除非通过添加 -f 子命令,也就是强制删除,才能移除掉该镜像!
docker rmi -f docker.io/alpine
但是,我们一般不推荐这样暴力的做法,正确的做法应该是:
1.先删除引用这个镜像的容器;
2. 再删除这个镜像;
也就是,根据上图中提示的,引用该镜像的容器 ID (bf3231ee4051), 执行删除命令:
docker rm bf3231ee4051
可以看到,由于容器正在运行,还无法删除。所以需要暂停容器的运行。
docker stop bf3231ee4051
删除引用
docker rm bf3231ee4051
删除容器
docker rmi registry.baidubce.com/apollo/apollo-env-gpu:0.0.2-beta
最后查看容器
可以看到GPU环境已经被成功删除
2.3.2 docker 存储位置的改变
Apollo的镜像内存体积还是不小的,对于根目录空间分配不足的电脑,有可能会将根目录空间占满,甚至出现编译失败等各种问题.为了避免此种情况,可以利用分区助手对磁盘分区进行调整,或者将docker的默认存储路径进行更改.直接参考下面文章即可.
修改docker默认存储路径方法总结
2.4 Ubuntu截图软件的使用
Ubuntu自带截图功能,如上图所示,常用的截图功能有:
功能 | 命令 |
---|---|
复制截图到剪贴板 | Ctrl + Print |
复制窗口截图到剪贴板 | Ctrl + Alt + Print |
复制选区截图到剪贴板 | Shift + Ctrl + Print |
将屏幕截图保存到 图片 目录 | |
将窗口截图保存到 图片 目录 | Alt + Print |
将选区截图保存到 图片 目录 | Shift + Print |
记录一小段屏幕录像 | Shift + Ctrl + Alt + R |
2.5 安装 NVIDIA GPU 驱动
对于 Ubuntu 18.04+,只需执行以下命令即可:
sudo apt-get update
sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install nvidia-driver-455
可以输入 nvidia-smi
来校验 NVIDIA GPU 驱动是否在正常运行(可能需要在安装后重启系统以使驱动生效)。如果成功,则会出现以下信息
2.6 安装 NVIDIA Container Toolkit
基于 Apollo 的 CUDA 的 docker 镜像需要依赖于 NVIDIA Container Toolkit。
运行以下命令安装 NVIDIA Container Toolkit:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2
安装完成后,重启 Docker 以使改动生效。
sudo systemctl restart docker
2.7 Ubuntu18.04 网页视频无法播放
ubunntu系统网页无法播放视频解决办法
新装的ubuntu18.04大概是没有安装视频解码
终端输入指令:
sudo apt-get install ffmpeg
第二步安装flash
sudo apt-get install flashplugin-installer
重启之后就可以打开网页的视频了,完美解决。
3. Apollo beta软件包安装
按照官方教程去安装。Apollo开放平台Beta版文档
3.1 软件包CPU模块
只用到CPU的模块与之前在WSL、云平台里的操作基本一致,运用到GPU的模块(如perception)与之前的操作还是有些不大一样的。建议先将NVIDIA Container Toolkit和 NVIDIA GPU 驱动先安装好,不然到时候可能会出现一些问题导致运行失败。
3.2 感知激光雷达功能测试
3.2.1 启动 Apollo Docker 环境并进入
1.输入以下命令获取 GPU 镜像环境(需要花费一些时间):
bash scripts/apollo_neo.sh start_gpu -f
第一次运行的时候未将NVIDIA Container Toolkit和 NVIDIA GPU 驱动先安装好,环境是正常启动了,但是由于没有GPU驱动,依然启动的是CPU的环境,再拉镜像的时候,报了一堆warning,但没管它,最后mainboard启动激光雷达模块失败了。
等了一段时间,最后成功:
2.输入以下命令进入容器:
bash scripts/apollo_neo.sh enter
3.2.2 下载 record 数据包
- 输入以下命令下载数据包:
wget https://apollo-system.bj.bcebos.com/dataset/6.0_edu/sensor_rgb.tar.xz
- 创建目录并将下载好的安装包解压到该目录中:
sudo mkdir -p ./data/bag/
sudo tar -xzvf sensor_rgb.tar.xz -C ./data/bag/
3.2.3 安装 Apollo core 和 DreamView
*注:Apollo core 仅应该在容器内进行安装,请勿在宿主机执行此步骤!
1.通过以下命令安装 Apollo core:
bash scripts/apollo_neo.sh install_core
中间报了些warning:最后成功安装:
2.在同一个终端,输入以下命令,安装 DreamView 程序。
buildtool install --legacy dreamview-dev monitor-dev
报了些warning:
最后安装完成:
3.2.4 安装 transform、perception 和 localization
1.在同一个终端,输入以下命令,安装 perception 程序。
buildtool install --legacy perception-dev
2022.12.22 再次安装时遇到一下问题
直接使用 apt 安装
sudo apt install apollo-neo-perception-dev
依然不行
2.输入以下命令安装 localization 、v2x 和 transform 程序。
buildtool install --legacy localization-dev v2x-dev transform-dev
3.2.5 模块运行
1.将/apollo/modules/common/data/global_flagfile.txt中增加数据包中 pointcloud_topic 数据:
vim /apollo/modules/common/data/global_flagfile.txt
--pointcloud_topic=/apollo/sensor/velodyne64/compensator/PointCloud2
2.在同一个终端,输入以下命令,启动 Apollo 的 DreamView 程序。
bash scripts/apollo_neo.sh bootstrap
进入DreamView的网页,选择正确的模式、车型、地图。
在Module Controller 模块启动transform模块。
3.使用 mainboard 方式启动激光雷达模块:
mainboard -d /apollo/modules/perception/production/dag/dag_streaming_perception_lidar.dag
启动之后,我的终端显示的是这样的:
3.2.6 结果验证
再另开一个终端,进入Apollo容器,播放数据包:需要使用-k参数屏蔽掉数据包中包含的感知通道数据。
cyber_recorder play -f ./data/bag/sensor_rgb.record -k /perception/vehicle/obstacles /apollo/perception/obstacles /apollo/perception/traffic_light /apollo/prediction -l
验证检测结果: 打开 DreamView 左侧工具栏中的 LayerMenu,并将 Perception 中的 Point Cloud 打开。
查看结果:
视频地址:
CSDN:https://live.csdn.net/v/263483
bilibili:https://www.bilibili.com/video/BV13e4y1K7fM/?spm_id_from=333.999.0.0&vd_source=67597beb15c6804a2da3e2d025e6963e
Apollo_beta_软件包_激光雷达测试
4. Apollo beta 源码安装
4.1 下载并编译 Apollo 源码
安装 git 并将源码 clone 下来:
cd ~/
sudo apt upgrade
sudo apt update
sudo apt install git -y
git init
git clone https://github.com/ApolloAuto/apollo.git
启动并进入 docker 容器,在终端输入以下命令:
cd ~/apollobash docker/scripts/dev_start.sh
第一次进入 docker 时或者 image 镜像有更新时会自动下载 apollo 所需的 image 镜像文件,下载镜像文件的过程会很长,请耐心等待。
如果一切正常,则会见到以下信息:
这个过程完成后,请输入以下命令以进入 docker 环境中:
bash docker/scripts/dev_into.sh
编译 Apollo 源码。
编译 Apollo,在终端输入以下命令,等待编译完成,编译过程耗时视机器配置的不同而有所区别,请耐心等待:
bash apollo.sh build
编译成功:
4.2 运行 Dreamview 检验编译是否成功
进入 Apollo 容器环境(如果您已在容器环境内,请忽略此步骤)。
cd ~/apollobash docker/scripts/dev_start.shbash docker/scripts/dev_into.sh
启动 dreamview。
bash scripts/bootstrap.sh
如果启动成功,在终端会输出以下信息:
在浏览器中输入http://localhost:8888
访问 Dreamview:
回放数据包。
【Apollo学习笔记】从零开始Apollo系统安装相关推荐
- Apollo学习笔记
Apollo学习笔记 Apollo课程 智能驾驶入门课程 无人驾驶概览 1.软件层分为三层: 实时操作系统(RTOS):确保在给定时间内完成特定任务,实时时确保系统稳定性.驾驶安全性的重要要求.通过在 ...
- Apollo学习笔记 进阶课程之三:定位技术②
Apollo学习笔记 进阶课程之三:定位技术② 百度的无人驾驶定位方案 1).GNSS定位 GPS误差来源: 上图为单点定位,基于TOA 载波定位技术:(RPK技术,PPP技术) RPK:可以在五秒内 ...
- Apollo学习笔记3-定位模块配置
Apollo学习笔记3-定位模块配置 环境介绍 导航设备参数配置 导航设备配置 (1)杆臂配置 (2)GNSS 航向配置 (3)导航模式配置 (4) USB 接口输出设置 (5)网口配置 (6) PP ...
- hpux安装oracle数据库,【学习笔记】HP-UNIX系统安装BUNDLE和补丁包的方法步骤
天萃荷净 Oracle研究中心学习笔记:分享一篇关于HP-UNIX系统安装系统安装BUNDLE和补丁包的方法步骤. HPUX补丁包分2种: 1.BUNDLE在一起的: 2.单个的小补丁: 如果补丁包B ...
- Apollo星火计划学习笔记|L1 Apollo平台安装(2021年9月更新)
系列文章目录 L1 Apollo平台安装 L2 CyberRT学习 L5 Routing简介 目录 系列文章目录 Apollo简介 Apollo安装 安装过程中遇到的问题. 综述文章 报名了百度apo ...
- Apollo学习笔记(4)坐标系
百度Apollo项目用到了多种坐标系,其中帮助文档提及的坐标系包括: 全球地理坐标系(The Global Geographic coordinate system ) 局部坐标系-东-北-天坐标(T ...
- 【原创】强化学习笔记|从零开始学习PPO算法编程(pytorch版本)
从零开始学习PPO算法编程(pytorch版本)_melody_cjw的博客-CSDN博客_ppo算法 pytorch 从零开始学习PPO算法编程(pytorch版本)(二)_melody_cjw的博 ...
- Apollo学习笔记1-ESD_CAN调试
目录 适配 ESD CAN 1. ESD CAN卡安装 2.ESD CAN驱动安装 3.Apollo ESD CAN 库添加 适配 ESD CAN CANBUS模块是Apollo需要根据底盘协议写底盘 ...
- Apollo学习笔记(12)Lattice Planner规划算法
本文主要参考Apollo开发者社区,以及一些大神的博客,在此膜拜,文末会奉上相关链接. Lattice Planner 规划算法简介 之前的相关的规划的算法都是放在无人驾驶专栏下的,Lattice P ...
最新文章
- 通过Spring配置文件中bean中的property赋值
- WAIC2021:优必选AMR智能物流机器人解决方案首次国内亮相
- 移动端html模板卡片列表效果,移动手机Material Design风格信息卡片UI设计
- 进程同步控制 Lock Semaphore Event
- .NET Core微服务系列基础文章索引(目录导航Final版)
- 【通知】有三个人指导以及VIP星球6月份之后升级,你的专属AI顾问了解一下
- 解决DeferredResult 使用 @ResponseBody 注解返回中文乱码
- NOP (code)_NOP指令作用及解析
- 论文浅尝 | 主题感知的问答生成
- 黑客使用一个UDP数据包可以打开任何HID门禁控制器
- 国内首个比特币勒索病毒案告破,三年获利 500 万!
- 数据采集无线网服务器软件,WIFI智能数据盒
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备...
- MATLAB中FFT的使用说明(含MATLAB代码)
- 软件工程之需求说明书
- Python下各种GUI(图形用户界面)简介、使用优缺点对比
- 常兴串口调试助手v3.6
- docker-comose入门到实战
- 脚踩智能汽车春风,百度踏上千亿美元市值征程
- Stratifyd入驻腾讯云市场,AI赋能品牌数字化升级