
Apollo
文章平均质量分 85
siri99999
这个作者很懒,什么都没留下…
展开
-
apollo学习笔记二十六:apollo 实战
本机演示实战下图是Apollo项目的基本代码结构(Github:https://github.com/ApolloAuto/apollo)。包括Docker和Docs(主要放置一些文档)、Modules(核心模块算法都在该文件夹下)以及Scripts和Tools等。Apollo软件的整个数据流转过程首先是通过高精地图和定位获得车辆周边的场景信息。然后通过感知模块侦测道路上的障碍物,即一些动态信息,比如旁边的车、行人、自行车等等。这些工作完成后将感知的信息传递给Prediction,预测感原创 2020-08-10 22:21:59 · 715 阅读 · 1 评论 -
apollo学习笔记二十五:apollo 安装和仿真平台(下)
Apollo安装过程概述安装基础环境安装git,使用git将Apollo源码克隆到本地拉取Docker镜像并创建容器Docker环境安装好之后,使用官方提供的脚本拉取Apollo Docker镜像文件,运行dev_start. sh–C命令,其中–C选项表示使用中国服务器进行加速。在拉取成功之后,该脚本会基于镜像创建一个容器container注意:每次都要执行这个操作,因为container需要每次都创建。进入容器编译源码启动bootstrap. sh脚本,对Apo原创 2020-08-09 21:48:46 · 1379 阅读 · 0 评论 -
apollo学习笔记二十四:apollo 安装和仿真平台(上)
Apollo自动驾驶架构介绍最底层车辆平台:也称为开放车辆认证平台底层车辆平台执行Apollo无人驾驶平台生成的车辆控制指令。为了能够运行Apollo生成的指令,车辆必须是线控的,例如可以接受一定的指令,比如换挡、加减速、转向,完成对应的操作.只要把车改装成具备对应条件之后就可以运行Apollo,现在称为开放车辆认证平台。传感器层高性能的计算单元——Apollo的工控(IPC)机GPS/IMU主要是用于自定位相机的功能主要是做红绿灯识别主传感器激光雷达主要用来感知车辆周围环境原创 2020-08-08 22:58:20 · 2361 阅读 · 0 评论 -
apollo学习笔记二十三:apollo 控制(下)
控制器种类开环前馈反馈(闭环)原创 2020-08-07 22:54:24 · 509 阅读 · 0 评论 -
apollo学习笔记二十二:apollo 控制(中)
“Modeling” in Control Module两个预描模型只有一些几何现象的约束将一个四轮模型转换为一个二轮模型左转向和右转向的环境是一致的关注的是前轮和路径的距离在高速上面比较常用和简单,但对于复杂多变情况不是很合适Dynamic model考虑了几何约束拆解成了x方向与y方向,对力分解力,力矩平衡线性化基于差值建模空间状态量描述System IdentificationWhite Box”白盒“相关算法Black Box模原创 2020-08-07 21:56:51 · 663 阅读 · 0 评论 -
apollo学习笔记二十一:apollo 控制(上)
概览Apollo Control模块提供了三种控制方法:纵向控制、横向控制和MPC控制.将控制拆开来看,上层是一个预处理,中间是一个控制器,后面是一个后处理预处理主要是对一些不正常的信号进行一次处理,以及对一些紧急情况的处理做一些check紧急情况的处理控制里面就是把信号发给所谓的执行器,但由于执行器有自己的上限和下限,以及一些所谓的滞后(回滞曲线),所以对下发的信号需要进行一些相关的处理建模系统识别控制器观测器parameter tuning控制系统的表现时原创 2020-08-05 21:21:52 · 1614 阅读 · 0 评论 -
apollo学习笔记二十:apollo 感知(下)
感知中的机器学习自动驾驶中深度学习模型需要更好的可解释性,归结为如何评估模型让用户知道模型是安全的?模型更新后如何做回归测试?模型的应用边界在哪里?目前,大家认为可解释性可以通过测试来体现,如果大量测试得到相同的结果,那么原理是不是真正的可解释也就没那么重要。在感知模块中,除了做基本的检测、分割之外,还有后处理阶段等由公式表示的几何计算问题,是不需要深度学习的。另外,Common sense也不需要深度学习,而且深度学习的效果不好,我们需要其他算法。那么,深度学习模型带来一个结果,其他启发算法给一个结原创 2020-08-04 21:29:45 · 551 阅读 · 0 评论 -
apollo学习笔记十九:apollo 感知(中)
感知算法点云感知主要任务是感知障碍物的位置、大小、类别、朝向、轨迹、速度等。核心是点云检测分割技术,可以用启发式算法NCut和深度学习算法CNNSeg完成。启发式方法:NcutNcut算法的基本思想是基于空间平滑性假设,即空间上接近的点来自同一个障碍物。首先,利用地图信息对点云进行预处理,例如去掉感兴趣区域之外的点云,降低点云图的复杂度。然后根据预处理后的点云构建加权图G=(V, E, W),将点云分割转换为图分割的问题,可以利用图聚类的算法求解,最终求解的每一个cluster就代表一个障原创 2020-08-03 21:26:58 · 1755 阅读 · 2 评论 -
apollo学习笔记十八:apollo 感知(上)
感知概貌问题范围获取信息的区别人类驾驶员开车主要借助眼睛、耳朵,辅助以倒车影像和雷达来获取驾驶环境的信息。机器感知系统则根据各种各样的传感器来获取汽车周围的驾驶环境,包括Lidar,Camera,Radar,超声波雷达以及拾音器等。相对人类而言,机器感知是全覆盖,并且感知精度更高,能够达到厘米级别,但是机器感知在语义感知方面相差太大。地图定位的区别,人类驾驶员主要依靠导航地图,或者依据交通指示牌进行路径规划和导航。机器感知系统则依赖高精地图。高精地图和导航地图的最大差别是有参考线,原创 2020-08-02 21:19:44 · 663 阅读 · 0 评论 -
apollo学习笔记十七:apollo ROS(下)
ROS深入介绍ROS Packages创建一个ROS开发环境和写一个C++工程有点类似,通过catkin create可以创建一个简单的工程。其中的文件组织方式如上图所示,包括:SRC:存放源文件;MSG:存放节点之间进行通信的消息定义;SRV:存放节点之间进行服务通信的时候的服务定义;CONFIG:存放配置文件相关的信息;INCLUDE:存放头文件相关的信息;LAUNCH:存放节点启动和它相关的节点之间的启动文件。上面介绍的package组织方式只是官方推荐的一种组织方式,原创 2020-08-01 21:54:06 · 600 阅读 · 0 评论 -
apollo学习笔记十六:apollo ROS(中)
Apollo ROS原理-2ROS的不足大数据量传输性能瓶颈实验性项目里面采用的Topic是Message,数据量是比较小的,可能只有几K或者最多1~2MHZ,但在实际自动驾驶场景里面数据量非常大ROS的时延很高目前ROS无法满足自动驾驶实际的工程需求单中心的网络存在单点风险中心化的网络存在明显的单点风险,整个ROS虽然是一个松耦合的架构,它包含一个节点管理器,节点管理器介入的时候,只是在节点建立通信之前有一个简单的拓扑映射,这种关系虽说极大程度释放了各个节点之间开发的耦合,但同时也原创 2020-07-31 12:48:27 · 1196 阅读 · 0 评论 -
apollo学习笔记十五:apollo ROS(上)
背景介绍自动驾驶系统包括障碍物检测、行为决策、路径规划等一系列复杂的工程模块,同时还要支持激光雷达、相机、GPS等一系列传感器的实时数据收集和实时处理。如何将这些功能模块相互独立又相互交互集成一起,构建成一个稳定的自动驾驶系统是一个巨大的挑战,也是自动驾驶计算框架所承载的基本功能。对框架的要求:高效的开发支持模块灵活配置丰富的调试工具ROS是一个原创 2020-07-30 22:21:46 · 1749 阅读 · 0 评论 -
apollo学习笔记十四:apollo规划技术(四)
Understand More on the MP DifficultyEM算法EM算法是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,首先通过动态规划方式对整个问题有一个粗浅的认识,然后通过二次规划进行强化,这种启发式搜索方法是目前百度Apollo的EM算法的核心思想。这种方法和人开车的过程是一样的,通常驾驶员会先形成一个大概的指导思想,指明往什么方向开,然后再规划一条最优路径。EM的算法流程如下:1、初始化分布参数;2、重复直到收敛。重复直到收敛的步骤如下:2.1、E步骤:根原创 2020-07-29 21:53:52 · 1032 阅读 · 2 评论 -
apollo学习笔记十三:apollo规划技术(三)
Optimization Inside Motion Planning约束问题的核心有三点:(1)目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助。(2)约束,比如路网约束、交规、动态约束等。(3)约束问题的优化,比如动态规划、二次规划等。动态规划通过类似于有限元的方式,把问题从连续空间抽象成离散空间,然后在离散空间中里把重复计算通过aggregating方式进行简化。虽然这种方法可以逼近连续空间中的最优解,但是计算复杂度很高。针对计算时间长的问题,可以使用牛顿方法进行优化,它的收敛次数原创 2020-07-28 21:53:12 · 643 阅读 · 0 评论 -
apollo学习笔记十二:apollo规划技术(二)
Motion planning with environment建立车辆模型:对于汽车而言,质点模型,刚体模型都是不够的,汽车模型除了二维平面里的刚体涉及到的X,Y和θ外,还多了一个转向的变量。可以将汽车四个轮子轮抽象成两个轮子,使汽车运动模型简化为自行车模型。模型如下图所示:κ:后轮转向半径R的倒数ω:方向盘转动角度L:前轮中心和后轮中心的距离曲线坐标系SLSL坐标系也叫做frenet frame,如下图所示:它以道路中心线为参考,S表示道路中心线的方向,L表示与道路中心线垂原创 2020-07-27 21:28:16 · 3116 阅读 · 0 评论 -
apollo学习笔记十一:apollo规划技术(一)
Basic Motion Planning and Overview运动规划(Motion Planning)规划问题本质上是一个搜索问题,即对一个给定的函数,寻找最优解。相对于无人车而言,规划问题就是给定现在的状态,找到无人车移动的最优解。通常由最优解目标函数F(x)定义。从内容考虑,规划问题涉及三个领域,机器人领域,控制领域和人工智能。不同的领域对问题的理解不同。(1)Robotic fields,规划就是如何产生轨迹以完成目标,涉及RRT, A*,D* lite等。(2)Control t原创 2020-07-26 21:06:03 · 1473 阅读 · 0 评论 -
apollo学习笔记十:apollo高精度地图(下)
apollo地图采集方案硬件设备利用激光雷达和摄像头结合来制作地图:64线类激光雷达:平装,采集路面16线激光雷达:斜向上安装,用来检测高处的红绿灯、标牌等信息长短焦相机除上述两种外,还包括IMU模块,GNSSRTK模块等。apollo地图生产技术1.数据采集:详见上方Apollo数据采集方案2.数据处理:数据分为点云和图像两类,因为高精度要求,所以制图以点云为主。(1)点云拼接:采集过程中信号可能不稳定(RTK在遮挡情况下会出现不稳定现象),通过SLAM等对pose做优化,优化之原创 2020-07-25 20:23:06 · 760 阅读 · 0 评论 -
apollo学习笔记九:apollo高精度地图(中)
业界的高精地图产品HEREHERE采集地图流程:(1)基础地图的设计:基础地图是高清实时地图的基础。配有16线程激光雷达、相机的采集车辆采集数据,进行基础地图的绘制。(2)众包更新(基于图像):众包的特点在于其成本较低/利用众包车辆传感器采集行车路径、车道标志、道路边缘、路标、路面标志等。结合卫星图像等多种数据源,更快的更新地图。(3)在云端映射学习:利用深度学习,在点云或图像场景下做图像分割,物体识别。(4)更新地图:创建并添加到地图数据库后,在这里将其发布到HD Live地图,并将必要的原创 2020-07-24 21:27:14 · 569 阅读 · 0 评论 -
apollo学习笔记八:apollo高精度地图(上)
1.高精地图和自动驾驶自动驾驶与高精地图的关系L3以上的自动驾驶阶段若没有高精地图,是很难实现的。高精地图与自动驾驶其他模块的关系从图中可以看到,高精地图处于自动驾驶的核心位置。1.与定位的关系:目前两种主流定位方法:点云定位、视觉定位。不管是基于点云还是视觉都是对周围环境的感知,然后进行特征提取、与高精度地图里的特征进行匹配,得到一个精确的定位结果。2.与感知的关系高精度地图可以弥补感知传感器的局限性:距离的局限性(如激光雷达在一定距离之外点云稀疏,摄像头在恶劣环境下的情况);雷达穿透原创 2020-07-23 20:31:56 · 668 阅读 · 0 评论 -
apollo学习笔记七:apollo定位技术
1.无人车定位技术无人车的自动定位系统,即相对一个坐标系,无人车的自定位系统知道汽车的位置和姿态。位置和姿态分别有三个自由度。(1)位置对应X,Y,Z,即相当于某个坐标系,汽车的平移是多少。(2)姿态是三个方向的一个旋转,一般会用欧拉角来表示。包括横滚、俯仰和航向。其实除了位置和姿态这两个维度,自动定位系统还要输出很多信息。除去速度、加速度和角速度外,自定位系统还需要对位置和姿态加上一个置信度,表示这次输出的定位结果好不好。定位指标(1)精度:定位精度必须控制在10厘米以内,才能使行驶中的原创 2020-07-22 20:57:48 · 1380 阅读 · 0 评论 -
apollo学习笔记六:apollo硬件开发平台介绍
1.自动驾驶开发流程四大步骤1.1 软件在环软件在环是基于仿真和模拟的软件仿真,类似于赛车类游戏。即是在软件系统里仿真模拟出真实的道路环境如光照、天气等自然环境,开发者可将自动驾驶代码开发完毕后,在仿真系统内运行,测试是否可以实现目标。1.2 硬件在环硬件在环是基于必要的硬件平台。在第一步的软件仿真结束后,将所有的仿真结果与传感器、计算单元集合在一起,在硬件环境里测试。1.3 车辆在环车辆在环是基于车辆执行。这一步将在一个封闭环境中测试开发者所开发功能,优点在于封闭环境中不会有交通流的干扰。原创 2020-07-21 19:59:39 · 1442 阅读 · 0 评论 -
apollo学习笔记五:apollo开源模块
高精地图相对于导航地图来说,最大的特点就是高精度,它是需要做到车道线级别的。也就是说,高精地图不光要知道你在哪条路上,还需要知道你在这个路的哪条车道线上,因为只有这样才能准确地告诉无人驾驶车应该在哪个车道行驶,接下来应该怎么拐。(1)第一,高精地图能够给无人车很多预判的空间。当无人车通过高精地图知道前方的路况和交通标识信息后,能够提前做行驶规划,保证了行车的平稳性和经济性。(2)第二,高精地图能够帮助无人车减少计算量。当无人车需要通过路口时,它需要提前感知前方信号灯的状态,这时高精地图就可以帮助它定位到原创 2020-07-20 18:37:11 · 658 阅读 · 0 评论 -
apollo学习笔记四:行业概述
全球出行的大趋势:(1)共享出行Uber、滴滴助推了“共享出行”概念出现,比如滴滴中的快车和顺风车便可以认为是共享出行的理念。但调查数据显示,在美国,私家车95%的时间处于空置状态。停车位占据了24%的城市空间,给城市规划带了困扰。共享出行理念为解决这些问题提供了一个方向。(2)新能源汽车新能源汽车是一种新兴产业,且新能源汽车也预示着未来汽车行业的发展方向。对于中国来说,新能源汽车为我们提供了一个弯道超车的机会,去赶超发达国家在汽车行业的垄断和领先地位。所以,新能源汽车不光是行业的趋势、国际化的趋原创 2020-07-19 17:33:36 · 587 阅读 · 0 评论 -
apollo学习笔记三:预测、规划与控制
1.预测预测模块具有实时性、准确性、自主学习的特点。有两种基本的预测框架,一种是基于模型的,一种是数据驱动的。基于模型的预测基于规则与概率,通过穷尽当前状况的可能发生的合理的结果,并通过预测对象下一步的行动来增强某一结果可能发生的概率。数据驱动的预测基于行为与数据,一般来说,数据越多,预测模型效果越好。车道序列框架apollo使用车道序列框架,为道路上的物体生成轨迹。为了生成车道序列框架,我们将道路分为多个部分,每一部分将覆盖一个易于描述车辆运动的区域。为了预测,我们更关心车辆如何在这些区域内转原创 2020-07-17 21:12:10 · 2301 阅读 · 0 评论 -
apollo学习笔记二:定位与感知
定位定位是指无人驾驶车准确知道自身确切位置的方法。对于定位,车辆将其传感器识别的地标,与高精度地图上存在的地标进行对比,为了进行该对比,必须能够在其自身坐标系和地图坐标系之间转换数据,然后系统必须在地图上以十厘米的精度确定车辆的精确位置。以下为几种常见的定位方法:1.GNSSRTKGNSSRTK,即GNSS+RTK(1)GNSS为全球导航卫星系统(Global Navigation Satellite System)的简称,它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、原创 2020-07-16 21:00:49 · 2061 阅读 · 0 评论 -
apollo学习笔记一:概览与高精度地图
概览1.无人驾驶等级划分0级:驾驶员是驾驶系统唯一决策者。1级:驾驶员辅助(driver assistance),车辆为驾驶员提供转向或加速支持。2级:部分自动化(partial automation),车辆可自动进行部分功能,如自动巡航控制和车道保持。3级:有条件的自动化(conditional automation),车辆自主驾驶但驾驶员需在特定情形下接管控制。4级:高度自动化(no human interference),车辆完全控制车辆,并不期望驾驶员予以控制。但存在“地理围栏”(geo原创 2020-07-15 22:03:35 · 585 阅读 · 0 评论