Apollo星火计划学习笔记|L1 Apollo平台安装(2021年9月更新)
系列文章目录
L1 Apollo平台安装
L2 CyberRT学习
L5 Routing简介
目录
- 系列文章目录
- Apollo简介
- Apollo安装
- 安装过程中遇到的问题。
- 综述文章
报名了百度apollo智能驾驶星火计划课程的学习,写文章记录以下,方便日后复习。
Apollo简介
下图是Apollo6.0 EDU 系统架构图。
下图是自动驾驶软件和硬件相关的技术栈
图片来源
Apollo安装
先贴一个官方安装教程:安装教程
Step1:安装ubuntu
这个步骤没必要细说,只要装18.04以上的版本即可。
Step2:安装nvidia显卡驱动
这个步骤可以酌情安装,如果不需要建图的功能的话可以不装。
sudo apt-get update
sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install nvidia-driver-455
安装完成可以使用“nvidia-smi”命令检查下是否成功安装。
Step3:安装Docker
sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerprint 0EBFCD88
验证输出(9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88)sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo apt-get install docker-ce docker-ce-cli containerd.iosudo docker run hello-world
以上是第一次安装Docker的步骤,如果之前已经安装过Docker需要更新或删除等操作可以参考官网教程。
安装完成后,请注销并重新登录系统以启用Docker。
Step4:码云上克隆 Apollo 仓库
国内用户用码云的源会快很多。
Step5:启动Docker容器
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!
Step6:在容器内构建Apollo
运行以下命令以登录到新启动的容器:
bash docker/scripts/dev_into.sh1
在Docker容器的/apollo目录中, 输入:
./apollo.sh build
以构建整个Apollo工程。或者输入
./apollo.sh build_opt
来进行优化模式的构建。
Step7:大功告成
最后如下图下命令就可以打开Dreamiew界面啦
# Make sure you start up clean
./apollo.sh clean# This will build the full system and requires nVidia GPU with nVidia drivers
# loaded. If no GPU is availabe, please run "./apollo.sh build_opt" instead.
./apollo.sh build_opt_gpu
# Startup modules monitor and dreamview, the default option is start.
./scripts/bootstrap.sh [start | stop | restart]
在浏览器中输入 http://localhost:8888 ,可以看到UI。点击右上角"Mkz Standard Debug" mode. 选择"Sunnyvale with Two Offices".
然后输入下面代码运行demo例程
# You need to download the demo record using the following commands
cd docs/demo_guide/
python3 record_helper.py demo_3.5.record# You can now replay this demo "record" in a loop with the '-l' flag
cyber_recorder play -f docs/demo_guide/demo_3.5.record -l
Voila~在monitor里就可以看到小车跑起来了!!!
可选:在Dreamview中支持新的车型
为了在Dreamview中支持新的车型,请按照以下步骤操作:
1 在modules/calibration/data目录下为你的车型创建一个新文件夹。
2在modules/calibration/data文件夹中已经有一个叫作mkz_example的示例文件夹。请参考此结构,并以此结构包含所有必需的配置文件。如果需要的话,请记得使用自己的参数更新配置文件。
3重启Dreamview,你将能够在可选车型列表中看到你的新车型(名称与你创建的文件夹相同)。
安装过程中遇到的问题。
Q1:安装太慢?
github的源在国内会比较慢,更换gitee的源会快很多,或者选择科学上网。
Q2:拉取appolo代码库失败。错误如下:
fatal: The remote end hung up unexpectedly | 1.08 MiB/s
fatal: 过早的文件结束符(EOF)
fatal: index-pack 失败
这个应该是文件太大了,增大curl的postbuffer的值即可。
git config --global http.postBuffer 1048576000
或者使用SSH链接下载
Q3: docker拉取镜像失败。
第一次报的错误如下:
Start pulling docker image registry.baidubce.com/apolloauto/apollo:dev-x86_64-18.04-20210517_1712 ...
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=registry.baidubce.com%2Fapolloauto%2Fapollo&tag=dev-x86_64-18.04-20210517_1712": dial unix /var/run/docker.sock: connect: permission denied
[ERROR] Failed to pull docker image : registry.baidubce.com/apolloauto/apollo:dev-x86_64-18.04-20210517_1712
这个是由于用户不在docker组导致的,将当前用户添加金曲即可。
sudo gpasswd -a $USER docker
newgrp docker
之后尽管可以下载了,下载速度很慢,而且经常报错,发现是因为国外的源太慢了,换为国内的就好了。更换如下命令:
bash docker/scripts/dev_start.sh -g cn
然后接着报错QAQ
[ERROR] Failed to start docker container "apollo_dev_david" based on image: apolloauto/apollo:dev-x86_64-18.04-20210517_1712
经查是因为我的电脑没有显卡,把之前状的NVidia显卡驱动卸载即可。
sudo apt purge nvidia*
终于大功告成,哭出声…
[ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
[ OK ] To login into the newly created apollo_dev_david container, please run the following command:
[ OK ] bash docker/scripts/dev_into.sh
[ OK ] Enjoy!
Q4: demo例程下载太慢
运行python3 record_helper.py demo_3.5.record
命令 下载demo时,速度很慢只有十几k/s,最后显示下载失败。
HTTP request sent, awaiting response... 403 Forbidden
2021-09-13 11:05:19 ERROR 403: Forbidden.Bad luck, failed to download demo_3.5.record
还是网络的问题,我在下面这个论坛的回答中找到了离线的包,下载成功后放到目录/apollo/docs/demo_guide
下即可。
https://talk.apolloauto.io/t/topic/561
退出之后如何再次进入docker
- 进入/apollo目录,首先查看容器的名称,指令"docker ps -a"
- 启动该容器,启动后返回该容器名称,指令" docker start apollo_dev_root"
- 重复前面的指令" sudo bash docker/scripts/dev_into.sh "。
综述文章
最后放上老师在直播里推荐的自动驾驶的综述文章:
- Self-Driving Cars: A Survey
- Towards Fully Autonomous Driving:Systems and Algorithms
- A Survey ofAutonomous Driving: Common Practices and Emerging Technologies
- A Survey of Deep Learning Techniques for Autonomous Driving
Apollo星火计划学习笔记|L1 Apollo平台安装(2021年9月更新)相关推荐
- Apollo星火计划学习笔记——Apollo开放空间规划算法原理与实践
文章目录 前言 1. 开放空间规划算法总体介绍 1.1 Task: OPEN_SPACE_ROI_DECIDER 1.2 Task: OPEN_SPACE_TRAJECTORY_PROVIDER 1. ...
- Apollo星火计划学习笔记——Apollo决策规划技术详解及实现(以交通灯场景检测为例)
文章目录 前言 1. Apollo决策技术详解 1.1 Planing模块运行机制 1.2 Apollo决策功能的设计与实现 1.2.1参考路径 Reference Line 1.2.2 交规决策 T ...
- Apollo星火计划学习笔记|控制模块
系列文章目录 L1 Apollo平台安装 L2 CyberRT学习 L5 Routing简介 L7 控制模块 L8 预测模块 目录 系列文章目录 简介 控制算法 PID算法 LQR(MPC) Apol ...
- Apollo星火计划学习笔记|预测模块
系列文章目录 L1 Apollo平台安装 L2 CyberRT学习 L5 Routing简介 L7 控制模块 L8 预测模块 目录 系列文章目录 基本概念 流程概览 Apollo相关代码 参考文献 基 ...
- Apollo星火计划学习笔记第二讲——自动驾驶调试及仿真实践
Apollo学习笔记 零.目录 一.自动驾驶的开发流程 1.1 引言 二.Apollo调试工具的使用 2.1 实验内容 2.2 实验流程 三.Apollo仿真工具的使用 3.1 实验内容 3.2 实验 ...
- Apollo星火计划学习笔记——第五讲(Apollo自动驾驶定位技术)
文章目录 前言 1. 定位的作用 1.1 定位和地图: 一对孪生兄弟 1.2 参考系 1.3 定位的作用 2. 定位用到的算法 2.1 GPS 2.1.1 GPS 原理 2.2 RTK(GPS的扩展) ...
- Apollo星火计划学习笔记——第一讲 使用Apollo学习自动驾驶
引言 如何学习自动驾驶? 自动驾驶是集车辆.计算机.电子电气.人工智能.通信等多学科应用为一体的的复杂系统.针对自身专业背景结合自动驾驶发展进行学习: 自动驾驶是通过智能系统来驾驶汽车从而取代了驾驶员 ...
- Apollo星火计划学习笔记——Control 专项讲解(LQR)
文章目录 前言 1. 算法相关基础 1.1 一阶倒立摆 1.2 二自由度车辆横向跟踪偏差模型 1.3 车辆横向跟踪偏差模型 1.4 车辆横向跟踪偏差倒车模型 1.5 轮胎侧偏角与侧偏刚度 1.6 LQ ...
- Apollo星火计划学习笔记第四讲2——高精地图定位模块
Apollo学习笔记 零.目录 一.定位的作用 二.定位用到的算法 2.1 GPS 2.2 IMU 2.3 GNSS(GPS+IMU) 2.4 先验地图定位 2.5 实时定位和建图 2.6 小结 三. ...
最新文章
- 微软,您的.net为中国程序员带来了什么?
- 六,ESP8266 TCP Client(基于Lua脚本语言)
- 工程打包是什么意思_承包工程是什么意思
- 【直播回放】100分钟全面剖析图像分割任务,学习CV必知
- NO.104使用禅道创建和评审需求
- Windows ICS 服务无法启动问题解决
- s3c6410裸机程序(1)
- cxGrid功能_用于备查【转】
- Python之简单验证码实现
- 用python祝福父亲节_父亲节给爸爸的祝福语微信48条
- 第一部分:MongoDB备忘录
- 王道训练营3月13日
- 恢复有道词典单词记录本的几种方法(非完美)
- 闲聊人工智能产品经理(AIPM)—人工智能产品经理工作流程
- 微信小程序开发者工具及官网
- 全球及中国再生纸包装行业研究及十四五规划分析报告
- 苹果关闭 iOS 14.4.2 系统验证通道
- 利用Wifidog实现微信wifi连接以及自写认证服务器
- mysql中设计suk表_电商项目-商品表(spu)、规格表(sku)设计
- 如何在电脑使用计算机,Windows To Go 如何在电脑上使用?
热门文章
- NamingContainer取得 GridView的列数(RowIndex)、对应的资料表 这一列的主索引键
- django中cookie模板引用
- Python获取文件MD5
- HTML 字体图标的引入
- Failed to introspect Class [org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyC
- 【网络取证篇】suy网络工具包
- CentOS部署集群版Presto
- 生死看淡,不服就干,小米终于迎来了久违的大幅反弹
- 拥有一个qq机器人ATRI
- Mybatis自定义轻量级分页组件(易集成,易拓展)