![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
APLLO
不是自然彩的云宝
马国程序员
展开
-
阿波罗实践版-6-循迹
基本原理车辆按照预先录制的路线进行运动,不考虑避障问题流程完成配置文件路线录制人为驾驶录制路线原创 2020-08-15 23:08:46 · 163 阅读 · 0 评论 -
阿波罗实践版-5-标定
目的标定时为了使得一些物理量能获得描述,诸如油门和刹车的力度这类的标定前拉取docker进入docker启动并检测模块,canbus,gps,locatization,ros进入标定执行标定目录标定原创 2020-08-15 23:05:16 · 117 阅读 · 0 评论 -
阿波罗实践版-4-定位模块配置
定位原理卫星定位:三角测量原理,通过时间测量法测量距离,定位精度为米级RTK:实时差分技术,高精度的GPS测量必须采用载波相位观测值,RTK定位技术就是基于载波相位观测值的实时动态定位技术,它能够实时地提供测站点在指定坐标系中的三维定位结果,并达到厘米级精度。在RTK作业模式下,基准站通过数据链将其观测值和测站坐标信息一起传送给流动站。流动站不仅通过数据链接收来自基准站的数据,还要采集GPS观测数据,并在系统内组成差分观测值进行实时处理定位设备:IMU,GPS天线,接收机配装M2准备完成软件准备原创 2020-08-15 23:00:09 · 258 阅读 · 0 评论 -
阿波罗实践版-3-软件部署
通常而言,一个软件应该包括操作系统,驱动,应用程序三大部分。对于阿波罗来说,操作系统主要包括Uuntu操作系统,Linux4.4内核,Apollo1.5.5内核三大部分;驱动部分为,GPU显卡驱动,ESD-CAN卡驱动;应用软件包括Docker软件,Git软件,Apollo源代码。BIOS设置设置风扇转速和功耗分配,目的是保证在接入大量板卡的时候能正常运行软件安装主要需要安装计算机操作系统,驱动软件,应用软件。首先安装Ubuntu14.04操作系统,随后下载Apollo内核。具体流程为:下载,解压原创 2020-08-15 22:50:29 · 148 阅读 · 0 评论 -
阿波罗实践版-2-集成实操
CAN卡的安装CAN卡上CAN0口对应CAN1,依次类推。MINPCI-RE接口(工控机),需要螺栓固定接线安装工控机安装固定支架即可安装工控机到底盘安装到预留孔位即可,接口一般朝向车辆后端安装电源定位硬件也是按照到固定底座后安装到车辆预留孔位,保证GPS安装在一条直线上连接线,一般把车辆后方的天线定位为PRIMARY天线,前端为SECONDARY天线安装IMU和接收器一般按照到车辆后轴中心供电线需要连接保险盒,注意保险接口的保险电流4G路由器安装到预设定位置即可...原创 2020-08-15 11:14:49 · 165 阅读 · 0 评论 -
阿波罗实践版-1-硬件介绍
核心问题-循迹作为自动驾驶中最基本的能力,就是车辆安装预先录制好的路线进行运动,在运动过程中不能避障。硬件组成阿波罗推荐主流硬件和车辆。甚至提供,低成本循迹车辆。低成本车辆包括车辆底盘,计算单元,感知系统,定位系统和其他配件,可以满足大多数需求。使用者只需要部署软件即可。由于循迹问题无需讨论避障问题,所以车辆套件并不包括感知部分计算单元在自动驾驶的实现中,计算单元的可靠性是至关重要的,另外,考虑到无人车将会在一些颠簸路段,积水路段等较为恶劣的环境下运行,所以必须保证计算单元在这些环境下仍能原创 2020-08-15 10:50:23 · 207 阅读 · 0 评论 -
阿波罗进阶版-19-平台
架构Apollo自动驾驶平台的架构主要包括四个部分:最底层的车辆平台,往上一层的传感器层,第三层的核心软件层以及最上层的云服务层。Apllo平台入门DockerDocker是一种容器的技术,它在是Linux内核的基础上做了一些轻量级和隔离机制的优化,让环境更小,部署起来更快。利用Docker可以使整个工程的安装更加简单。Docker镜像通常是一个配置好的运行环境,包括依赖的第三方库等,使得用户不需要对环境编译做过多复杂的操作硬件接入第一需要原始的 UDP(User Data Packet,用户数原创 2020-08-15 00:43:22 · 148 阅读 · 0 评论 -
阿波罗进阶版-18-ROS 3
ROS的应用TF坐标转换从上面知道,得益于松耦合的特点,每个节点独立运行,每一个节点都有属于自己的XYZ坐标,当他们成为一个整体时,每个节点的坐标系都是相互独立的,但实际上计算需要的坐标系是唯一的,这个时候就需要进行TF坐标转换例如,当下游的Planning节点想使用Obstacle信息时,需要将Obstacle信息转化到同一个世界坐标系,这时候它会发起一个TF去查询Obstacle处于哪一个世界坐标系里面的哪一个位置,从而感知整个车身周围的情况,基于此再做一个合理的规划和决策行为。RQT用户接口原创 2020-08-15 00:17:21 · 155 阅读 · 0 评论 -
阿波罗进阶版-17-ROS 2
ROS目前的问题大数据传输性瓶颈:当数据量极大的时候,数据传输的时延非常高,这直接影响了决策的立即性和准确性单中心的网络存在单点风险:整个ROS虽然是一个松耦合的架构,它包含一个节点管理器,节点管理器介入的时候,只是在节点建立通信之前有一个简单的拓扑映射,这种关系虽说极大程度释放了各个节点之间开发的耦合,但同时也带来了比较大的风险。数据传输格式缺乏后向兼容:ROS是基于Message的分发和订阅的消息通讯框架,使用Message需要提前设置Message包含哪些类型的数据。把这个模块放到一个更复杂的原创 2020-08-14 23:46:14 · 239 阅读 · 0 评论 -
阿波罗进阶版-16-ROS 1
什么是ROSROS全称 Robot Operating System, 即机器人操作系统,诞生于斯坦福大学,是目前机器人和无人驾驶汽车的常用框架ROS的特征ROS主要有五大特征:它支持分布式:在部署多机之间的消息通讯时,ROS提供了一个天然的支持。它是跨语言,它并不关注每个节点之间是用什么语言来写的。你只需要按照ROS提供的一些接口完成消息的订阅和分发即可以完成一个消息之间的通信。它是一个轻量级的ROS程序,用户只需要关注自己核心模块的算法逻辑,不需要关注底层是如何通信、如何断开通信、如何进行原创 2020-08-14 23:40:11 · 204 阅读 · 0 评论 -
阿波罗进阶版-15-控制2
Apollo里面更多使用基于模型的控制方法,它包括四个部分:建模、系统辨识、控制器设计和参数调优。建模一般可以分为分析建模和拟合建模,控制模块中的模型,通常包括运动学模型和动力学模型。运动学模型是一种几何模型,感知、预测讨论的模型则以运动学模型为主。而在控制模块中,更多考虑动力学模型。实际上,运动学模型是动力学模型的一个子集。系统辨识有些参数是未知的,系统辨识的目的是确定这些未知参数的值。确定未知参数的方法有三种:白盒、灰盒以及黑盒方法。白盒方法是指对于基于第一原理(如牛顿定律)的模型结构,可以由原创 2020-08-13 18:32:25 · 191 阅读 · 0 评论 -
阿波罗进阶版-14-控制1
控制模块控制模块包括三个部分:预处理、控制器和后处理。其中,预处理部分的主要功能包括三方面,第一是对输入信号的检查,对不正常信号的过滤;第二是做一些紧急处理,第三是做一些滤波操作,例如信号的平滑等。控制器主要功能包括:模型建立、系统识别和分析,控制器/观察器设计以及参数调优等功能控制的性能要求自动驾驶系统是否满足性能要求可以从三个角度去评测:时域、频域以及discrete domain(离散域)。时域是指输出在时间轴上应该满足的要求。其衡量的指标包括steady state gain、rising原创 2020-08-13 18:25:34 · 177 阅读 · 0 评论 -
阿波罗进阶版-13-规划4
约束问题的核心有三点:第一是目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助。第二是约束,比如路网约束、交规、动态约束等。第三是约束问题的优化,比如动态规划、二次规划等。本节主要介绍动态规划和二次规划的基本概念,以及二次规划问题的求解方法和形式化方法。运动规划动态规划通过类似于有限元的方式,把问题从连续空间抽象成离散空间,然后在离散空间中进行优化。虽然这种方法可以逼近连续空间中的最优解,但是计算复杂度很高。针对计算时间长的问题,可以使用牛顿方法进行优化,它的收敛次数是指数平方,也叫二次收敛。二原创 2020-08-13 18:13:48 · 236 阅读 · 0 评论 -
阿波罗进阶版-12-规划3
曲线坐标系SLSL坐标系也叫做frenet frame,它以道路中心线为参考,S表示道路中心线的方向,L表示与道路中心线垂直的方向。在给定SL坐标系时,每一个点的S坐标本身对应一个(x-r,y-r)(x-r,y-r)坐标,根据该点的横向偏移距离,可以求出给定点在世界坐标系中的XY位置,如下图所示。其中theta是参考线的方向,也就是切线方向。SL坐标系并不是唯一的,XY会在曲线上产生很多投影,投影点是经过XY坐标,且垂直于曲线的线段与曲线的交点在自动驾驶中,我们将环境抽象成 SL 坐标系,在此坐标系原创 2020-08-13 18:10:19 · 190 阅读 · 0 评论 -
阿波罗进阶版-11-规划2
运动规划的注意事项目前大多数规划算法都是从质点模型出发考虑。质点模型将运动轨迹当成一个点,这个点和无人车是不一样的。假设把一个无人车看成一个点,这个点和另一个点不相撞,在数学定义上是点和点没有交集,但是在实际生活中一个车和一个车可是会相撞。下面介绍解决这些问题的一些方法:Configuration Space (构造空间),也就是说能够控制什么变量。对于刚体而言,不仅是XY坐标,还要有heading信息才能研究跟障碍物之间的关系。对于无人车来说有更多的变量。其复杂性主要体现在两个方面,一个是Space D原创 2020-08-13 12:18:58 · 125 阅读 · 0 评论 -
阿波罗进阶版-10-规划1
运动规划规划问题本质上是一个搜索问题,即对一个给定的函数,寻找最优解。相对于无人车而言,规划问题就是给定现在的状态,找到无人车移动的最优解。从内容考虑,规划问题涉及三个领域,机器人领域,控制领域和人工智能。不同的领域对问题的理解不同。robotic fields,规划就是如何产生轨迹以完成目标,涉及RRT, A*,D* lite等。控制领域,规划理解为到达目标状态的动态系统,涉及MPC, LQR等artificial intellegence(AI),是生成状态到动作的映射,涉及rei原创 2020-08-13 12:11:14 · 154 阅读 · 0 评论 -
阿波罗进阶版-9
标定的目的标定的核心概念是得到传感器之间的相对位置,将不同传感器的数据在同一个坐标系中表示。标定分为内参标定和外参标定。内参是传感器自身性质,有些是厂家提供,有些需要自行标注,例如Camera焦距的定期矫正,Lidar中各激光管的垂直朝向角。外参是传感器之间的相对位置和朝向,一般由6个自由度表示,自由度的旋转矩阵和自由度的水平位移。主要的标定算法Lidar内参标定:相对于摄像头,激光雷达的内参标定有一定的特殊性。Lidar-to-GPS外参标定:计算出Lidar与车上GPS的相对位置。GPS的位原创 2020-08-13 12:05:23 · 128 阅读 · 0 评论 -
阿波罗进阶版-8-感知
概况感知的目的是寻找机器的特长并发挥出来,向人类学习并做得比人类更好人类可以利用耳朵眼睛等器官,结合四维能力对周围环境进行感知。机器感知系统则根据各种各样的传感器来获取汽车周围的驾驶环境,包括Lidar,Camera,Radar,超声波雷达以及拾音器等。相对人类而言,机器感知是全覆盖,并且感知精度更高,能够达到厘米级别,但是机器感知在语义感知方面相差太大。无人车感知的信息输出主要是各个传感器的数据,固定目标更多的是依赖高精地图,减少在线识别。多维度感知感知模块的维度可以根据划分目标而不同,这里给出原创 2020-08-13 11:59:51 · 171 阅读 · 0 评论 -
阿波罗进阶版-7-自定位
概念无人车的自动定位系统,简单来说,就是相对一个坐标系,无人车的自定位系统知道汽车的位置和姿态。这个坐标系可以是一个局部的坐标系,比如一个园区.采集这个园区的一些地图,随便定一个原点,这个局部坐标系已经建好,相对于这个坐标系来得到车辆的位置和姿态。主流的定位手段激光定位激光定位是预先制作一个地图,不管是3D的Voxel地图或者是点云地图,又或者是2D的概率地图。2D概率地图是把所有的这个点云数据铺到一块,压成了一个2D地图。2D地图分成很多小格子,每个格子里面存储了颜色信息,位置。位置上面可能只原创 2020-08-13 00:48:37 · 132 阅读 · 0 评论 -
阿波罗进阶版-6-地图的生产和采集
生产在城市道路环境下,高精地图生产分为数据采集、数据处理、元素识别、人工验证四个环节。数据采集百度采取的是激光雷达和Camera二者相结合的制图方案。Apollo2.5版本中,百度已经发布了其地图采集方案。其中,64线激光雷达用于道路路面采集。由于其扫描高度比较低,还需要一个斜向上装的16线激光雷达,用于检测较高处的红绿灯、标牌等信息。其他传感器有GPS、IMU、长焦相机以及短焦相机。数据处理传感器采集到的数据分为点云和图像两大类。L4级自动驾驶汽车对地图的精度要求非常高。Apollo在制图过原创 2020-08-13 00:36:20 · 675 阅读 · 0 评论 -
Apollo进阶版-4-高精度地图的规范
高精地图表征元素道路包括左边界右边界。它可分为两个层次,一是道路级别,一是Lane(车道)级别。每个Lane都有左边、右边界;道路也有道路边界,而且道路边界是强约束,即自动驾驶的时候,道路边界是永远不能压的。车道线理论上也是不能压的,但是如果在紧急情况下可以压车道线,比如说可以越过虚黄线进行借道超车。路口是一个相对复杂的场景,可以进一步细分为路口边界和虚拟车道。路口边界主要用于感知。可以通过路口的边界,对感知进行过滤。如果感知识别到的静态物体不在地图的路口边界之内,就可以暂时忽略它。虚拟车道主要是用原创 2020-08-12 23:56:34 · 588 阅读 · 0 评论 -
Apollo进阶版-2-硬件开放平台
一次悲伤的事故事故发生在2018年3月18日晚间,一辆正在进行无人驾驶测试的Uber车在美国亚利桑那州Tempe市撞上一名行人。该行人被送医,随后被宣告抢救无效死亡。但是,在事故发生前,系统的传感器已经发现行人;在事故发生的前1秒,原车的应急制动AEB已经启动,但汽车并没有实施制动,原因是Uber在改装沃尔沃cx90时,对原车的刹车系统进行截断,由后续改装的电脑来发射控制指令,进行刹车。系统没有一个完全闭环的状态(主因);驾驶员低头在玩手机,系统检测到行人后没有发出警告;自动驾驶和基础设施是相关原创 2020-08-12 23:50:02 · 184 阅读 · 0 评论 -
Apollo进阶版-3-高精度地图
高精度地图在入门课中有所描述,这里就不做介绍高精度地图与导航地图导航地图只是给驾驶员提方向性的引导。识别标志标牌、入口复杂情况、行人等都是由驾驶员来完成,地图只是引导作用。导航地图是根据人的行为习惯来设计的。高精地图完全为机器设计的。因为对于道路的各种情况、人都能理解,但是对于车辆来说它完全不理解。核心模块高精地图可以作为自动驾驶的「大脑」。「大脑」里面最主要是地图、感知、定位、预测、规划、安全。综合处理成自动驾驶车辆能接受的外部信息,并统一运行在实时的操作系统上。高精度地图与定位现在主流的自原创 2020-08-12 23:48:46 · 201 阅读 · 0 评论 -
Apllo进阶版-1-开源模块
Apollo平台技术框架百度Apollo的技术框架包括四层:线控车辆平台(Reference Vehicle Platform)、参考硬件平台(Reference Hardware Platform)、软件开放平台(Open Software Platform)、云端服务平台(Cloud Service Platform)。最底下一层是线控车辆平台(Reference Vehicle Platform),所有的东西都需要装载在线控车辆上才可以跑起来。再往上一层是参考硬件平台(Reference Har原创 2020-08-12 23:28:51 · 334 阅读 · 0 评论 -
这就是Apllo-6-控制
到控制了,作为一个自动化学生,这东西刚学,这章就结合我所学的讲述吧控制流程控制器预计有两种输入:目标轨迹与车辆状态。目标轨迹来自规划模块,在每个轨迹点,规划模块指定一个位置和参考速度。在每个时间戳都对轨迹进行更新。我们还需要了解车辆状态,车辆状态包括:通过本地模块来计算的车辆位置、从车辆内部传感器获取的数据(如速度、转向和加速度)。我们使用这两个输入来计算目标轨迹与实际行进轨迹之间的偏差。PID控制PID控制器很简单,但它在很多情况下的效果很好。对于PID控制器,你只需要知道你的车辆与目标轨迹之间的原创 2020-08-12 18:53:36 · 110 阅读 · 0 评论 -
这就是Apollo-5-规划
为什么要规划这个问题怎么解答呢,为什么要规划,就好像开车的时候要知道怎么才能去到目的地,这是驾驶过程中所必须要进行的行为。无人车也是如此转化地图Apollo通过搜索来查找路线,但它使用了更智能的搜索算法。在进行智能搜索算法以前,我们需要将地图数据重新格式化为“图形”的数据结构。该图形由“节点”(node)和“边缘”(edge)组成。节点代表路段,边缘代表这些路段之间的连接。经典算法A*迪科斯彻算法VFH…这里介绍A*算法。从初始节点开始,我们需要确定8个相邻节点中,哪个是最有希望的候选原创 2020-08-12 18:08:25 · 266 阅读 · 0 评论 -
这就是Apllo-4-预测
为什么要预测预测其实就是预判,在路上行驶,我们人类驾驶员在完成超车,并道等与汽车车辆有互动的交通行为时,都会对进行互动的车辆进行预测,判断他会不会减速或者变道等。同样的,无人车也会在行驶过程中进行预测,预估其这样做会不会带来恶劣效果,能不能安全完成这个工作。预测必须保证实时和准确,这些都很好理解。如果预测结果在五分钟后才能获知,预测几乎没有意义。如果前车半个车身都进入隔壁车道了,系统仍然预测这辆车不会变道,那预测也没有什么实际性。预测方式两大预测方式分别时基于模型的预测与数据驱动预测用基于模型的方转载 2020-08-12 17:20:08 · 138 阅读 · 0 评论 -
这就是Apllo-3-感知
为什么要感知想象一下,你在路上行驶,要眼观六路,耳听八方,其实这就是感知。但是很遗憾,无人车没有没有类似于人眼这类完善的感知器官,但是拥有大量的传感器和测量工具。有雷达和激光雷达,它们可以帮忙测量原始距离,可以得到与周围环境物体的距离。对于每个无人驾驶汽车,它的核心竞争力之一就是利用海量的传感器数据,来模仿人脑理解这个世界。谈论传感器时也会涉及到神经网络、深度学习、人工智能。感知的任务无人驾驶车有四个感知世界的核心任务:检测——指找出物体在环境中的位置;分类——指明确对象是什么;跟踪——指随时间的推移原创 2020-08-12 17:05:28 · 148 阅读 · 0 评论 -
这就是Apllo-2-定位
假如你要前往某个地方,你最先关注的肯定是自己现在所处的位置,再根据这个位置选择前进的路线和方案。同样的,无人车的一切决策也是建立在获知自己的定位的基础上的。本文是对Apllo定位内容的学习总结定位的基本方法–三角测量法假如我知道我离A点的距离,也知道离B点的距离,还知道离C点距离,那么,我必定会获知我目前的位置。细想一下,确实如此,分别以A,B,C三点为 圆心,以离该点的距离作为半径作圆,那么必定只有一个交点,那这个交点也就是我目前的距离。(这种方法貌似都不用知道离地标的方向)定位的工具–GPSGP原创 2020-08-12 16:50:21 · 133 阅读 · 0 评论 -
这就是Apllo-1-高精度地图
高精度地图什么是高精度地图所谓的高精度地图,实际上是和我们现在已经普及的普通导航电子地图做比较来说的。高精度,一方面是说高精度电子地图的绝对坐标精度更高。绝对坐标精度指的是地图上某个目标和真实的外部世界的事物之间的精度。另一方面,高精度地图所含有的道路交通信息元素更丰富和细致。其实说白了,就是高精度地图在坐标精确度和道路信息等方面都要远优于普通的传统地图的。虽然高精度地图看起来很牛逼,但是其实离我们并不遥远。我们用到的高德地图,百度地图等主流的导航上的地图其实就是高精度地图。为什么要用高原创 2020-08-10 23:26:42 · 1061 阅读 · 0 评论