Apollo上机实践:一次对自动驾驶技术的亲身体验
上机实践
- 概述
- 自动驾驶通信
- 分布式系统开发模式
- 开发工具
- 自动驾驶感知
- 传感器特性
- 感知流程及算法
- 部署感知模型
- 自动驾驶决策规划
- 决策规划流程和算法
- 使用 Dreamview 进行控制在环的规划调试
- 开发规划场景和算法
- 福利活动

主页传送门:📀 传送
概述
Apollo 是一个非常庞大且复杂的系统,如何学习上手非常关键。我们一般把学习实践 Apollo 的过程分为上机和上车两个阶段。
我们首先从上机实践 Apollo 开始。上机只要你有符合配置要求的电脑(4 核以上 CPU,16G 以上内存,安装 Ubuntu 18.04+ 系统),能连上网就可以。在上机实践阶段,通过相应的实践内容与 Apollo 工具,开发者可以学习了解自动驾驶通信框架、自动驾驶感知以及自动驾驶决策规划等关心技术栈。
| 技术栈 | 通信框架 | 感知 | 决策规划 |
|---|---|---|---|
| Apollo 工具 | Cyber RT | DreamView / Cyber Visualizer | DreamView / Dreamland |
| 实践内容 | 1. 掌握 Cyber RT 开发工具 2. 使用 Cyber RT API 进行Apollo 开发 | 1.了解传感器特性 2.了解 Apollo 感知流程及算法 3.使用 Dreamview/Perception Visualizer 进行开发调试 4.扩展部署新的感知模型 5.扩展训练新的感知模型并验证 | 1. 了解 Apollo 决策规划流程和算法 2. 使用 Dreamview 进行控制在环的规划调试 3.基于Apollo 开发新的规划场景和算法4. 使用 Dreamland 进行控制在环的规划仿真评测 |
自动驾驶通信
在 实时通信框架 Cyber RT 中我们了解到了 Cyber RT 的好处,接下来就是要了解如何使用 Cyber RT 学习掌握自动驾驶通信。Cyber RT是车端工程框架的基础,任何的扩展开发都离不开 Cyber RT。因而把 Cyber RT 学好也是能深入学习 Apollo 的前提。在 Cyber RT 的实践中主要包括 2 个任务。
分布式系统开发模式
首先是了解 Cyber RT 里的 Talker/Listener、Service/Client 以 Parameter Service 三种通信模式,并可以尝试从创建你的第一个 reader/writer 通信案例开始。关于自动驾驶通信的应用实践案例可以参考应用实践文档相关文档使用 Cyber RT 进行开发。

开发工具
其次需要掌握如Cyber Monitor,Cyber Visualizer,Cyber Recorder 等开发工具,提升你的开发调试效率。
自动驾驶感知
在学习实践了 Cyber RT 之后,对于感知技术栈感兴趣的开发者可以学习实践自动驾驶感知。感知一般也是开发者关注最多的技术栈之一。
传感器特性
可以通过Apollo提供的传感器原始数据集和 Cyber Monitor、Cyber Visualizer 等工具,了解各个传感器数据特性。

感知流程及算法
之后,可以逐步了解感知流程和算法,Apollo 提供了 Lidar 点云、单目等多模态,检测、分割等多任务的算法,学习时可以根据自己的兴趣点选择性的学习。这个过程中,可以通过 Apollo 提供的 DreamView/ Perception Visualizer 等各种可视化工具来直观了解感知数据处理流程。


部署感知模型
更进一步,你可以自己采集数据进行感知模型训练。Apollo 也会提供相关的模型验证工具链,来确保接入的效果。基于此,可以不断优化。
自动驾驶决策规划
上机实践中的第 3 个重要场景就是学习实践自动驾驶决策规划,这也是开发者关注最多的技术方向之一。
决策规划流程和算法
刚开始可以通过 Apollo 了解流程和算法。Apollo 提供基于场景的规划管理,适用高速、城市、低速园区等多场景,同时提供基于车道和开放空间的规划器。

使用 Dreamview 进行控制在环的规划调试
在了解规划流程的基础上,可以从云端 Studio 仿真 下载已有场景或者通过 Studio 仿真 场景编辑器自定义场景到本地 DreamView 进行仿真调试,来进一步理解规划数据处理流程。
开发规划场景和算法
再进一步,当Apollo自带规划算法和场景无法满足你的需求时,你可以自主扩展。并使用 Studio 仿真 云端集群仿真服务来进行效果评测和回归测试。基于此,可以不断优化。

福利活动
加入课程

Apollo开发者社区 观看课程学习apollo
课程进度可以拖动 几秒就能完成。
学完填表选心仪的奖品领奖就行

表单填写
相关文章:
Apollo上机实践:一次对自动驾驶技术的亲身体验
上机实践 概述自动驾驶通信分布式系统开发模式开发工具 自动驾驶感知传感器特性感知流程及算法部署感知模型 自动驾驶决策规划决策规划流程和算法使用 Dreamview 进行控制在环的规划调试开发规划场景和算法 福利活动 主页传送门:📀 传送 概述 Apollo 是…...
QTcpServer简单的TCP服务器连接
1、简介 简单实现控制TCP服务器获取连接的套接字。点击断开服务器即可关闭所有连接,最大连接数量为5个。 声明源文件 #include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//设置固定大小setFixedSize(1024,600);b…...
LeetCode热题100——双指针
双指针 1.移动零2.盛最多水的容器3.三数之和 1.移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 // 题解:使用双指针,其中快指针指向非零元素,慢指针指向首个零元素下…...
Ubuntu ARMv8编译Qt源码以及QtCreator
最近需要在NVIDIA小盒子上面跑一个程序,一开始想着在Ubuntu x64下交叉编译一版,后来发现libqxcb.so 这个库在configure时就会一直报错,多方查找怀疑可能是由于硬件不支持在x64环境下编译AMR架构的xcb库。 所以最后在ARM下直接编译Qt源码了&am…...
虚机Centos忘记密码如何重置
1进入开机前的页面,选中第一个,按“e”键,进入编辑模式 2找到ro crashkernel项,将ro替换成 rw initsysroot/bin/sh 3 Ctrlx mount -o remount, rw / chroot /sysroot chroot /sysroot passwd root 输入两次密码 touch /.a…...
OpenGL_Learn02
1. 监听窗口,绑定回调函数 #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height) {glViewport(0, 0, width, height);std::cout << "变了…...
基于STC系列单片机实现外部中断0控制按键调节定时器0产生PWM(脉宽调制)的功能
#define uchar unsigned char//自定义无符号字符型为uchar #define uint unsigned int//自定义无符号整数型为uint sbit PwmOut P1^0;//位定义脉宽调制输出为单片机P1.0脚 uchar PwmTimeCount;//声明脉宽调制时间计数变量 uchar PwmDutyCycle;//声明脉宽调制占空比变量 void Ti…...
vue3中 reactive和ref的区别
在Vue 3中,reactive和ref都是用于响应式数据的API。它们的主要区别在于使用方式和返回值类型。 reactive: reactive函数用于将一个对象转换为响应式对象。它接收一个普通的JavaScript对象,并返回一个被代理的响应式对象。这意味着当响应式对…...
docker的安装部署nginx和mysql
小白自己整理,如有错误请指示! 自我理解:docker就是把应用程序所用的依赖程序,函数库等相关文件打包成镜像文件,类似系统光盘,然后可以在任意电脑上安装使用(方便运维人员部署程序)…...
测试C#调用Aplayer播放视频(1:加载Aplayer控件)
微信公众号“Dotnet跨平台”的文章《开源精品,使用 C# 开发的 KTV 点歌项目》中使用了迅雷开源APlayer播放引擎。最近在学习有哪些能拿来播放视频的组件或控件,于是准备试试,根据文章中的介绍,在迅雷APlayer播放引擎网站中下载了A…...
二叉树的遍历+二叉树的基本操作
文章目录 二叉树的操作一、 二叉树的存储1.二叉树的存储结构 二、 二叉树的基本操作1.前置创建一棵二叉树:1. 定义结点 2.简单的创建二叉树 2.二叉数的遍历1.前序遍历2.中序遍历3.后序遍历4.层序遍历 3.二叉树的操作1.获取树中节点的个数2.获取叶子节点的个数3.获取…...
Go 语言gin框架的web
节省时间与精力,更高效地打造稳定可靠的Web项目:基于Go语言和Gin框架的完善Web项目骨架。无需从零开始,直接利用这个骨架,快速搭建一个功能齐全、性能优异的Web应用。充分发挥Go语言和Gin框架的优势,轻松处理高并发、大…...
Docker底层原理:Cgroup V2的使用
文章目录 检查 cgroup2 文件系统是否已加载检查系统是否已挂载 cgroup2 文件系统创建 cgroup2 层次结构查看 cgroup2 开启的资源控制类型启用 cgroup2 资源控制设置 cgroup2 资源限制加入进程到 cgroup2 检查 cgroup2 文件系统是否已加载 cat /proc/filesystems | grep cgroup…...
历年上午真题笔记(2014年)
解析:A 网络设计的三层模型 : 接入层:Layer 2 Switching,最终用户被许可接入网络的点,用户通过接入层可以访问网络设备。 汇聚层:Layer2/3 Switching,访问层设备的汇聚点,负责汇接配线单元,利用二、三层技术实现工作组分段及网络故障的隔离,以免对核心层网络设备造…...
数据库软考知识
分布式数据库透明性 封锁 加上共享锁之后只能加共享锁,加上排他锁之后,啥锁都不能加。 分布式数据库特性 伪传递定理 SQL函数定义,有点冷 来了奥,更冷 存储过程 很重要,下午第二大题也是数据库...
学习笔记|配对样本均数T检验|SPSS常用的快捷键|规范表达|《小白爱上SPSS》课程:SPSS第六讲 | 配对样本均数T检验
目录 学习目的软件版本原始文档配对样本均数T检验一、实战案例二、案例解析三、统计策略四、SPSS操作1、正态性检验2、配对样本T检验 五、结果解读六、规范报告1、规范表格2、规范文字 划重点Tips:SPSS常用的快捷键 学习目的 SPSS第六讲 | 配对样本均数T检验 软件版本 IBM S…...
python内置模块smtplib、email 发送电子邮件
一、简介 smtplib 是 Python 的标准库之一,用于发送电子邮件。它提供了一个简单的接口来连接到 SMTP(Simple Mail Transfer Protocol)服务器,并通过该服务器发送电子邮件。 email 是 Python 的标准库之一,用于处理电子…...
Qt使用QWebEngineView一些记录
1.关闭软件警告: Release of profile requested but WebEnginePage still not deleted. Expect troubles! 原因,系统退出关闭view,没有释放page。 解决办法:手动释放page 顺便把view也释放了。 Widget::~Widget() {updateIni…...
【2023.10.30练习】C语言-判断等式成立
计算机能力挑战初赛2020.20题 题目描述: 输入正整数A、B、C(0<A,B,C<10000),若用、-、*、/、%之一组成等式(即ABC,是上述运算符之一,),则输出“YES”,否则输出“NO”; 输入: 第一行输入…...
Wpf 使用 Prism 实战开发Day03
一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models ,放置实体类。 实体类需要继承自Prism 框架的 BindableBase,目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / <summary>/// 系统导航菜单实体类…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
