无人驾驶学习笔记
文章平均质量分 64
肖浩然
这个作者很懒,什么都没留下…
展开
-
Apollo-启动车辆循迹*
循迹实操演练 车辆循迹基本原理 循迹:沿着一条已经录制好的轨道自动驾驶 循迹轨迹文件包含信息: 轨迹定位信息 车速、加速度、曲率 动作信息:油门/刹车踏板反馈、档位、方向盘转角 车辆循迹时需要启动的软件 实践实操 配置文件 开始实操 进入Ubuntu,打开Docker Docker可以集成Apollo软件的相关依赖和地图文件,通过Docker image的形式提前加载到Docker当中 有线网络更新更快 进入 定位数据会刷新原创 2021-09-18 00:15:13 · 590 阅读 · 0 评论 -
Apollo-车辆动力学标定*
标定的目的和基本原理 Apollo软件的标定 不同情况想要达到某一相同的加速度,所需要的油门或者刹车量是不同的。人是通过经验判断,而无人驾驶车需要一个标定表。 Apollo 标定流程 标定前准备 打开Ubuntu 打开roscore就是打开ros 开始标定 实操演示:紧急停车介绍 实操演示:数据采集准备工作 遥控器接管按钮断开、急停按钮松开,这样才能听计算机的。 ls可以看当前数据采集的结果 标定原始数据的处理 .原创 2021-09-17 10:57:05 · 1155 阅读 · 1 评论 -
Apollo-定位模块配置*
定位系统基本原理 差分定位 精度到厘米级 IMU:获取姿态信息 基础参数:只用配置一次 一般路由器设置为192.168.1.1 在同一个网段,字码掩码为255.255.255.0 定位基站信息设置: 配置杆臂值 timezone:北京是50 循迹时不使用激光雷达 车在实地动,仿真也能看见。那么定位就OK了。 ...原创 2021-09-16 10:00:37 · 223 阅读 · 0 评论 -
Apollo-软件部署实操*
Apollo软件系统部署 系统软件 对工控机的设置 F2进入工控机BIOS设置菜单->设置风扇相关参数(20°开始转,50°最大转速,一直保持最优状态) Ubuntu14.04 将U盘插入工控机 安装Linux4.4内核 cd - sudo apt-get update Apollo内核安装 sudo reboot重启工控机 GPU驱动安装 CAN卡驱动安装 如果能找到.ko文件,则安装正确 Socket CAN 这里视频有一段小操作,没截图了 让C原创 2021-09-16 09:40:47 · 247 阅读 · 0 评论 -
Apollo-实践课程1*
导论 循迹自动驾驶 要实现循迹自动驾驶需要解决以下几个问题; 硬件介绍 循迹:按照事先录制好的路径进行驾驶 开发套件 计算单元:工控机 感知系统:前置摄像头、毫米波雷达、激光雷达 定位系统:前置/后置GPS天线、GPS接收器和IMU 其他配件:4G路由器、CAN卡、显示器、键盘鼠标 循迹不需要避障 计算单元 计算单元需要克服外界恶劣天气环境 定位系统 CAN卡 硬件之间的连接和通讯 供电 一般设备都会需要有自己一个独立电源。 集成实操 本节课知识点 工控机的拆原创 2021-09-16 09:07:50 · 145 阅读 · 0 评论 -
Apollo——实战*
Apollo简介 主要介绍Apollo的研发迭代模式 1.5:在固定车道上行驶 阿波牛 阿波龙 本机演示实战 核心的都在moudles里 软件架构图 实战流程: Apollo线控标准 车辆与循迹驾驶能力实战 需要下面除了HD-MAP的其他模块进行循迹测试 Canbus协议:车中的通信方式(无中心控制单元) 车辆适配的三步: Vehicle:适配层 CAN Card:进行沟通的硬件 定位 定位的两种方法: RTK:基站 MSF:Lidar 的3D点云+GPS+IMU 启动循迹自.原创 2021-09-13 12:53:24 · 110 阅读 · 0 评论 -
Apollo-安装和仿真平台2*
课堂问题:仿真平台的使用流程 Apollo安装过程 Apollo在githup上(400MB) 克隆Apollo 安装docker 建议在官网里安装,并用非root方式运行(创建一个组,并放入Docker) -c 可以使用中国的加速器,不然可能会在美国的服务器去下载 进入容器环境:DOCKER container apollo.sh进行编译,build在CPU上编译(机器好才编译) (node.js:前端) 对Apollo进行调试 每次发布新版本都会有一个roast bag,用来做验证 1.0:寻迹.原创 2021-09-13 09:39:33 · 216 阅读 · 0 评论 -
Control in Apollo-3
控制类别 开环 前馈 反馈原创 2021-09-12 20:28:57 · 82 阅读 · 0 评论 -
Apollo-安装和仿真平台1*
自动驾驶架构介绍 开放车辆认证平台:只要车辆满足条件,就可以运行Apollo 硬件平台:计算单元(工控机)、camera(红绿灯的识别)、毫米波雷达(远距离跟车、障碍物检测)、超声波雷达(5m范围检测)、HMI、Black Box(类似于黑匣子)、Sensor Unit(可以加自己想要的硬件) 开放软件平台: camera+Radar:告诉情况下感知车道线、障碍物;低成本 Guardian:Planning的指令经过该模块的过滤后交给Control(考虑安全) Control:将指令进行解析,将速度解析为原创 2021-09-12 10:26:04 · 429 阅读 · 0 评论 -
Apollo-感知介绍2*
课程习题:简单总结一下两个检测算法:启发式的Ncut和深度学习算法CNNSeg 感知算法 启发到头,就需要数据驱动(机器学习)——CNNseg 确定一个方向,收集大量的数据,将市面上主流的方法进行组合,做一个精密的实验,最后得到一些结果。 ADAS:高级驾驶辅助系统(是辅助驾驶,而非自动驾驶) 辅助驾驶:核心是环境感知 自动驾驶:核心是人工智能 环视:比如变道需要知道后方以及两边的情况 检测(detection) 无人驾驶(AD)里的检测和计算机视觉(CV)里的检测是不同的 环境不一样。.原创 2021-09-10 21:03:15 · 226 阅读 · 0 评论 -
Apollo-感知介绍1*
什么是传感器?应用于自动驾驶汽车上的传感器有哪几种? 感知机器人学科的问题。 传感器:Lidar camera 毫米波雷达 超声波雷达 拾音器 无人车十分依赖高精度地图,没涉及到的地方就没法开。 传感器是什么? 传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。 激光雷达 缺点:很难做识别(比如Apollo是64线的,如果离得太远,可.原创 2021-09-09 18:29:39 · 174 阅读 · 0 评论 -
Control in Apollo-1*
主要内容:控制的整体脉络、一些理论以及是如何将实际转化为代码的 课程问题:常用控制理论有哪些?未来趋势如何? Apollo整体框架: 基本控制理论和它们在Apollp自动驾驶平台的应用 预处理 不正常信号的处理(sanity check) 紧急情况处理 信号平滑等 后处理 把控制信号发送给执行器 Limitation:执行器是有自己的上下限的,所以信号是在一定范围内的 信号也会有一些滞后 控制 四个流程: 建模 系统识别 控制器、观测器 … 什么是控制,控制需要解决什么问题 要求:.原创 2021-09-09 16:12:41 · 93 阅读 · 0 评论 -
Apollo-ROS2*
课程提问:什么是TF坐标系转换和RQT用户接口? 原ROS中心化的优势:(P2P拓扑网络) 节点之间相互独立,容错性强 节点之间通信不用关注对方用什么语言开发 节点之间解耦合(只用定义好topic/service/param,就可以开发自己的模块) 缺陷: 通信过于依赖中心节点 没有异常恢复机制(比如某一个节点挂掉,其他节点并不知道,尤其是主节点挂掉后更为严重) Apollo ROS 去中心化拓扑 RTPS服务发现协议 一个新节点加入与退出,RTPS都会告知所有节点。 这些改动是在ROS底层进行.原创 2021-09-07 17:02:25 · 668 阅读 · 0 评论 -
Apollo-ROS1*
背景介绍 各种模块是如何交互数据的——ROS功能框架 使用ROS框架,方便快速验证顶层的一些算法和技术方案是否可行。 为什么用框架? 希望可以将更多的经历放在算法的迭代上,而不用关注太多底层的实现 为什么是ROS? ROS是一个比较强大且灵活的机器人编程框架; 从软件方面来说:是基于消息传递的分布式多进程框架; 很多著名的机器人开源框架都是基于ROS的 ROS概述 基本概念 稍微深入一点的框架 机器人通用的描述语言(比如TF) Service/Time/Bag 实践 基本概念 特征:原创 2021-09-05 10:18:02 · 145 阅读 · 0 评论 -
Apollo-规划技术4*
EM(Expectation-Maximum)算法也称期望最大化算法,迭代分为两步:期望步(E步)+极大步(M步) 算法流程:初始化分布参数+重复迭代直到收敛 无人车有三类约束: Rraffic Regulation Decisions Best Trajectory 硬限制+软限制。前者比如交通规则 如果换道生成的策略的trajectory比不换道生成的策略的trajectory要好,那么就换道。 EM迭代过程: 生成一条Optimal path 在该path上对所有障碍物进行投影 然后生成一个原创 2021-07-18 15:31:09 · 131 阅读 · 0 评论 -
Apollo-规划技术3
二分搜索:指数收敛(收敛得很快) 牛顿法的核心思想是泰勒展开,一阶逼近是二分搜索,二阶逼近是牛顿法。 牛顿迭代法:我们设方程函数f(x)=m,改方程可以转化为g(x) = f(x) - m = 0 我们只需要求出函数g(x) = 0的解,就可以求出f(x) = m的解。 核心思想:用泰勒展开逼近,获得更多的信息,收敛的也就越快。 二次规划:已知某一凸问题的二阶导数,求最优解 整个二次规划都脱离不开泰勒展开。 动态规划 二次规划(牛顿法) 组合优化问题:是目前百度 Apollo 的 EM 算法的核心思想。原创 2021-07-17 11:30:13 · 157 阅读 · 0 评论 -
Apollo-规划技术2
运动规划分为哪五个基本方法? 规划与环境 最初:把车当成一个质点模型、刚体 怎样生成平滑的曲线 上一堂课: 先离散化再优化 直接优化 如何建立车辆的模型 光当做刚体不行,我们还需要考虑转向,而转向有车头朝向有关。 单车模型 前后轮的转向半径是不一样的。 主车和障碍物的关系 如何判断两个物体是否相交 方法一:遍历所有的边 如果两个图像不相交,一定可以找到一条直线将两者分隔开。(这条直线可以是图像的某一条边) 方法二:二维投影到一维 平滑的道路中心线非常重要 G2 smooth:曲率连续 我们需要.原创 2021-07-17 10:43:45 · 212 阅读 · 1 评论 -
Apollo-规划技术介绍1*
motion planning overview 是什么? 寻找最优解 两种环境以及对应的算法: partially observed:D* fully observed:A* 规划中的一些难点: 动态物体的分析 交通规则 实时性:有限的时间里找到一个比较好的解(所以这也是为什么很多大公司都是用C++,因为C++快呀) 要求:安全平稳 信息分两种: 动态:比如实时感知到的信息 静态:高精度地图上的信息 规划模块所能看到的信息 轨迹:路径+速度 参考文献 Motion Planning原创 2021-07-17 08:28:39 · 300 阅读 · 1 评论 -
Apollo-百度高精度地图2*
业界的高精度地图产品 HERE 数据采集 再配上基于camera的众包 点云分割: 地图表述方法 分层 第一层:道路、车道,以及对应的实线、虚线,道路限速、周围标牌等 第二层:定位需要用到的信息。各种特征。 第三层:动态信息层。比如某条路有事故或者在修路。 第四层:“驾驶习惯”。搜集用户司机在开车时,一般走哪个车道,到了什么地方一般会加速、开多快等等,让无人车能够开得更像人。(将人的经验转化为数据,把这个数据当做无人驾驶的准则,从而让无人驾驶车在行进的过程中,让人感到更舒服) MobileEye 感知原创 2021-07-15 09:43:01 · 633 阅读 · 0 评论 -
Apollo-百度高精度地图1*
介绍百度L4等级无人车的高精度地图 L3以下:不需要高精度地图 L3/L4:必须有高精度地图 高精度地图的两层意思:误差要求小、信息表达全 离线处理好的 高精度地图与其他模块的关系 HMI:人机交互接口 高精度地图与感知 好处: 比如camera需要检测百米开外的红绿灯,因为距离的原因,检测时的红绿灯在图像中很小很模糊,这会导致检测精度的下降,但高精度地图,可以事先就告诉你红绿灯在哪,便于我们检测。 (这部分老师应该是想将ROI,但ROI是加快检测效率,而非检测精度吧…但也不一定…) 高精地图与规划、.原创 2021-07-13 10:28:55 · 385 阅读 · 0 评论 -
Apollo-无人驾驶自定位技术*
本堂课以及之后的几门课都是从软件层面讲。 技术入门 什么是无人车自定位系统 相对于一个坐标系,确定无人车的位置和姿态 坐标系:可以是一个小地图里的坐标,也可是全局坐标 位置:XYZ 姿态(pose):相对三个方向的旋转角度 指标要求 精度得高:怕他偏离车道太远,造成事故 鲁棒性:最大误差,对纵向误差的要求,没横向那么高 场景:全天候,任何天气、任何场所(比如林荫道、隧道、地下车库等GPS不好的地方) 为什么无人车需要精确的定位系统 “无人车是个大近视” 定位系统会告诉车辆自己的速度、加速度、角速度等.原创 2021-07-12 11:06:54 · 528 阅读 · 1 评论 -
Apollo-硬件开发平台介绍*
一些事故 案例一:自动驾驶车发现行人了没有及时提醒驾驶员(驾驶员在刷视频),也没有刹车(系统并非闭环,制动被截断) 案例二:SUV无人车自身重心偏上,顶上加上了一堆重量级的传感器之后,重心进一步上移,导致在急转弯或者剐蹭时发生侧翻。 (安全是第一天条) 无人驾驶的研发流程 软件在环 软件仿真 硬件在环 车辆在环 在一个封闭场地里,将开发的功能运行在车辆上 司机在环 司机会对无人车的表现做出评判 自动驾驶汽车的硬件系统 驾驶员检测 摄像头+生物电 摄像头 判断驾驶员的疲劳状态 生物电传感器 主要在方向原创 2021-07-11 09:48:38 · 490 阅读 · 0 评论 -
Apollo-行业概况2*
安全 ISO26262 行业标准,在这种标准下故障率为10fit (1 fit 表示 十亿【1 billion】小时里出一个故障) 好处:方便打官司、做出来的东西安全 坏处:复杂、过程繁重 过程:一层一层文档的过,达成一层的要求才能做下一层 风险评估 严重度(Severity) 暴露率(Exposure) 可控性(Controllability) 两个概念 对于安全,无人驾驶分了两个方面,Functional Safety、Security;前者有自己的行业标准(ISO26262),但后者没有 Funct原创 2021-07-10 10:06:04 · 573 阅读 · 0 评论 -
Apollo-行业概述*
新能源汽车 传统汽车行业被国外垄断已久,想要实现弯道超车,可能就得靠新兴的新能源汽车,所以国家对这一方面是十分重视的 self driving autonomous driving 是有细微的差别的 更安全 数据统计,交通事故中造成人员伤亡的原因,93%是人类。 (93%的交通事故是人为造成的) 无人驾驶汽车的传感器能同时感知前后左右,车辆周围所有的环境,同时以远超人类的速度处理大量信息。 所以,在技术成熟时,无人驾驶汽车是更安全的。 更高效 人类在开车时有个特点:反应时间 比如一长列车在等红绿灯,如果是无原创 2021-07-09 11:00:49 · 303 阅读 · 1 评论 -
与百度谢老师关于无人车的问答记录
问: 第一天咱们在讲运行时框架时说到了数据兼容性问题,其中提到说原本的ROS通信方式,当一个接口更新时,数据的通信会变得不兼容,这是为什么呢 答:这种情况发生在没有改造的ros情况,比如规划与控制模块各自定义好了消息类型,本来能够实现通讯 但是根据项目需要规划需要增加消息内容改变数据结构 这时如果控制模块开发人员没有更新消息数据结构的话 模块就不能正常接收消息。apollo中ros是经过百度优化改进的 使用protobuf格式作为ros消息话题 即使一个模块改变数据结构 并不影响之前设定好的消息通.原创 2021-07-08 21:55:55 · 96 阅读 · 0 评论 -
Apollo-定位*
定位:在汽车将自己传感器检测到的地标和地图上的地标进行比对时,需要将自身的坐标系转换到地图的坐标系,“在不同坐标系中做数据转换”,并且在地图上以10厘米的精度将自己定位 常见的定位方法: GNSS RTK 没理解这里为什么要做坐标系转换,只知道车的坐标系和地图的坐标系不同,这可能体现在不同方法里,对坐标系也有考究? 定位的一大重要要求:精确,精确地知道自己在哪,精确到自己在哪个车道 GNSS RTK(GPS+RTK) 三角测量 GPS的基本组成: 卫星: 控制站:监视和控制卫星,保证卫星的运作和定位原创 2021-07-08 09:18:36 · 526 阅读 · 0 评论 -
Apollo-控制*
P:开环,比如让一辆车5s中到达10m的地方,P控制会让车以2m/s的速度过去,但会超过那个地方。为什么会有稳态误差? 只考虑当前情况,解决当前误差就行。就是上面那个开车的意思。 I:积分,处理累计的错误,消除历史误差。(但这种消除,比较慢) D:微分,监控未来。比如“预测到这样调整会过调,那么就会在中途减速,停在指定位置” “好像PD就足够了?要I干嘛?” ...原创 2021-07-08 08:58:40 · 180 阅读 · 0 评论 -
Apollo-规划*
规划分两步:规划路线、轨迹规划 前者讲究怎样到达目的地 后者讲究怎么样同时保证安全和舒适 轨迹规划由许多点组成,这些点包含了到达该位置时的速度和时间戳 路线规划(Routing) 输入: 地图:同时包含了交通状况等信息 我们的位置 目标位置 Map to Gragh(将地图转化为图) 我们将道路当成节点,道路的连通情况当成线,构建出我们的图。 这样,A到B的道路搜索,就能转化为图的路径搜索,从而用到图论中的搜索算法。 A*算法 目标:找到一条从橙色到绿色的最佳路径 方法:f = g + h g:原创 2021-07-08 08:25:28 · 439 阅读 · 0 评论 -
Apollo-预测*
根据自己的位置、其他车辆的情况,做预测? 预测啥? 凭什么? 预测对时延要求很高 预测:知道之后周围环境会发生什么,从而知道能怎么做,根据自己的目的,那么也就知道该怎么做了 不同的预测方式 基于模型 结合的是知识。 根据交通规则、常识、人类行为、物理知识等进行判断 数据驱动 依靠的是数据。 使用机器学习的方法,进行训练,实现预测 基于车道的预测 为了简化车辆行驶路线的预测,提出了车道序列的概念 障碍物状态 这部分主要是说“我们需要了解物体的状态” 诸如位置、朝向、速度、加速度 车道的横向、纵向距离原创 2021-07-07 21:54:18 · 378 阅读 · 0 评论 -
Apollp-感知
计算机视觉->CNN(卷积神经网络) 用多个传感器,尽可能地像人一样感知 计算机视觉 无人车感知世界的四个核心任务 检测:也就是定位 分类 跟踪: 语义分割 以分类为例,图像处理过程包括:(分类以图像为输入,以类别为输出) 预处理(包括旋转、灰度化等) 提取特征 分类(将特征给到分类器,也就是模型) 摄像头图像:灰度、彩色(像素矩阵) 激光雷达图像: 通过激光反射测定距离、确定物体。 每一个反射点,称为点云,这些点云可以提供诸如纹理、形状等信息,我们也可以通过这些聚在一起的点云(一个聚类)进行分原创 2021-07-07 16:42:18 · 303 阅读 · 0 评论 -
百度Apollo学习笔记(第二天:高精度地图)
第二天:高精度地图高精度地图与传统地图的比较高精度地图与定位、感知、规划定位感知规划高精度地图高精度地图的绘制小结高精度地图的定位:高精度地图的作用: 高精度地图与传统地图的比较 传统地图:(比如百度地图) 告诉你大体路线 人用的 高精度地图: 也说了大体路线 还包含了特别多的信息,比如周围建筑的三维表征、各种路标路牌、行车道上的标识等等。 高精度地图与定位、感知、规划 该部分主要描述高精度地图在这三个方面给予无人车的帮助 定位 核心步骤:识别+比对 这里重点谈一谈识别中,数据处理的三个步骤:原创 2021-07-06 11:36:26 · 440 阅读 · 0 评论 -
百度Apollo学习笔记(第一天)
第一课:无人驾驶概览 我们将学到什么? 定位:汽车用雷达和激光扫描周围,与高精度地图比对,从而定位 感知:使用Deep Learning方法,尤其是卷积神经网络,进行分类、检测、分割 预测:行车轨迹(这里我理解的是对其他车辆行车轨迹的预测,毕竟需要基于此来做出自己的行车规划) 规划:自己的行车路线 什么是无人驾驶? 无人驾驶的等级 无人驾驶的六个等级:Level 0 - 5 Level 0 : 车辆不会自己驱动自己,完全需要人来控制。 Level 1 : 提供转向、加速支持,如巡航控制。原创 2021-07-05 19:45:31 · 623 阅读 · 0 评论