大三小学期
麓山君陌
在校科研生
展开
-
大学小学期实践课程第七课:启动车辆循迹
启动车辆循迹车辆循迹模块(1)Canbus(2)Control(3)GPS(4)Localization(5)Planning(6)roscore(7)Dreamviewapollo录制车辆循迹轨迹文件(1)循迹轨迹定位信息(2)车速、加速度、曲率(3)车辆动作信息①油门踏板②刹车踏板③档位④方向盘转角所需要的模块配置文件目录apollo/mudules/calilbration/data/ch(1)cancard_params、canbus配置文件原创 2020-08-14 17:40:10 · 2400 阅读 · 0 评论 -
大学小学期实践课程第六课:车辆动力学标定
车辆动力学标定标定的目的及原理(1)标定表,不同的车不同(2)apollo获取车辆信息的方式(3)apollo自动驾驶判断依据启动各模块(1)进入Docker环境(2)输入bash docker/scrips/dev_start. sh拉起docker。第一次进入docker或者image镜像有更新时,apollo所需的image镜像文件会被自动下载,此时所需时间较长(3)输入bash docker/scripts/dev_into. sh命令进入docker(4)输入bash scri原创 2020-08-14 17:38:59 · 2542 阅读 · 0 评论 -
大学小学期实践课程第五课:定位模块配置
定位时每个接收机需要接收四颗卫星以保证工作,它的测量原理是三角测量,一般卫星上都有高精度的原子钟,卫星定位是通过信号的时间飞行法进行测量相应的距离,由于信号距离远,通常定位精度只能达到米级。定位精度为米级是无法满足自动驾驶测量定位的在无人车定位中广泛应用的定位技术是通过 RTK(实时动态差分),获得准确的定位信息。在空旷无遮挡的户外,能够达到厘米级精度差分技术是在一个精确的已知位置,我们称之为基站,上面安装定位监测接收机,计算得到基站与定位卫星之间的距离,通过实时处理基站载波相位观测量将基站的定位信.原创 2020-08-13 16:59:26 · 1631 阅读 · 0 评论 -
大学小学期实践课程第四课:Apollo 软件部署实操
软件系统:(1)Ubuntu操作系统(2)linux4.4内核(3)apollo1.5.5内核驱动软件:(1)GPU显卡驱动(2)ESD-CAN卡驱动(3)socket-CAN卡驱动应用软件:(1)docker软件(2)git软件(3)apollo源代码bios设置:(1)工控机启动时,按F2进入BIOS设置菜单(2)选择advanced(3)设置风扇的相关参数(4)设置温度达到50时风扇达到最大转速(5)设置温度达到20时风扇开始起转(6)设置工控机一直以最佳状态运行.原创 2020-08-13 16:58:37 · 1790 阅读 · 1 评论 -
大学小学期实践课程第三课:Apollo硬件连接集成—集成实操
can卡的安装需要将两个跳帽安装在指定位置以确保两路CAN通讯同时工作CN1接口对应CAN0软件,CN2接口对应CAN1软件将CAN卡固定在mini PCI-E接口上将工控机安装到车辆地盘上(1)安装固定支架(2)工控机带接口的向后(3)安装工控机电源,即两路电源12V+24V导航设备(1)安装GPS天线,需要螺纹固定(2)保证两个GPS天线在一条直线上(3)安装IMU需要安装在车辆后端4G路由器需要使用双面胶固定在底盘上显示器的电流一般是7-8A,因此需要连接在15A的保险盒上.原创 2020-08-12 18:58:29 · 1482 阅读 · 0 评论 -
大学小学期实践课程第二课:Apollo硬件连接集成—硬件介绍
循迹就是车辆按照事先录制好的一段轨迹进行自动驾驶。循迹的过程中车辆不能进行避障循迹是车辆进行自动驾驶时的一个最基本的能力apollo开发套件是一个集成了车辆底盘,apollo的推荐硬件,同时能够体现apollo自动驾驶技术的一个开发平台。通过部署apollo软件,能够实现自动驾驶循迹、限定区域感知闭环自动驾驶等多项能力。车辆底盘具备线控转向、油门、刹车的接口,能够满足apollo的线控要求硬件系统部分:(1)车辆底盘(2)计算单元,工控机(3)感知系统:摄像头、激光雷达、毫米波雷达(4.原创 2020-08-12 18:57:48 · 1577 阅读 · 0 评论 -
大学小学期实践课程第一课:导论
第48课、导论车辆驾驶系统集车辆学、人工智能、计算机科学、自动控制等多学科于一体,要搭建一个闭环的驾驶系统在以往的教育教学中,以理论概念为主,缺乏闭环的上车实践Apollo开源平台的出现,极大的降低学习自动驾驶的技术门槛Apollo开发套件的出现,又再一次降低了搭建闭环自动驾驶系统的所涉及到的车辆硬件成本高、采购周期长、测试场地限制等各种问题循迹自动驾驶是指让车辆按照录制好的轨迹线,进行自动驾驶,其涉及到自动驾驶中最基本的底盘线控能力、定位能力、控制能力。是自动驾驶系统的一个最小子集。需要解决原创 2020-08-12 18:56:58 · 1425 阅读 · 0 评论 -
大三小学期进阶课程第四十七课:仿真验证实战
第47课、仿真验证实战1.数据集(1)仿真场景数据:仿真的数据集(2)标注数据:标注的数据集,做深度学习感知算法训练的(3)演示数据:演示数据集,搭建pc上搭建一个设备的时候可以做一些演示(4)产品服务:可负责上传数据的标定2.六类标注数据(1)激光点云障碍物检测分类(2)红绿灯检测(3)road hackers(4)基于图像的障碍物检测分类(5)障碍物轨迹预测(6)场景解析3.样本数据供本地下载,可大概了解一下数据的格式4.真正使用样本数据需要将算法代码提交到云端,通过云端的a原创 2020-08-08 11:10:15 · 1375 阅读 · 0 评论 -
大三小学期进阶课程第四十六课:障碍物感知和路径规划能力实战
第46课、障碍物感知和路径规划能力实战相比于最基本的Apollo 1. 0版本,Apollo 2. 0版增加的主要功能模块是感知和规划。首先,我们回顾Apollo的感知模块。每种传感器都有自己的优势和劣势,如图所示。从图中可以看出没有一种设备可以满足所有的场景,只有将各种设备融合在一起才能达到相对稳定感知结果。也就是从Apollo 2. 0开始,我们开始使用多传感器融合的方式做感知。多传感器融合需要对不同的传感器进行标定。感知的核心功能是进行障碍物的识别、分类、语义分析和障碍原创 2020-08-07 20:05:17 · 1712 阅读 · 0 评论 -
大三小学期进阶课程第四十五课:车辆与循迹能力实战
第45课、车辆与循迹能力实战在搭建完自动驾驶车辆的软、硬件环境以后,通常采用循迹测试进行验证循迹测试涉及最底下的几个模块,只需要定位、控制以及Canbus这三个模块,是Apollo的最小子集,通过循迹可以验证车的线控能力以及模块的整体集成能力。首先在硬件上,我们需要一辆线控车辆、一个工控机以及惯导系统GPS和IMU,如果大家使用的是参考硬件搭建的车辆,不需要进行适配,可以直接进行验证。如果你不是用参考车辆来做这件事,需要做以下几步:(1)首先是要实现一个适配层。通过代码里的Vehicl原创 2020-08-07 20:03:54 · 1503 阅读 · 0 评论 -
大三小学期进阶课程第四十四课:本机演示实战
第44课、本机演示实战要使用Apollo进行实战,首先要对Apollo的代码结构有一个基本的认识。下图是Apollo项目的基本代码结构。包括Docker和Docs(主要放置一些文档)、Modules(核心模块算法都在该文件夹下)以及Scripts和Tools等。Modules下的文件目录结构如图所示apollo软件的整个数据流转过程是(1)首先是通过高精地图和定位获得车辆周边的场景信息。(2)然后通过感知模块侦测道路上的障碍物,即一些动态信息,比如旁边的车、行人、自行车等等。(3原创 2020-08-07 19:50:28 · 1281 阅读 · 0 评论 -
大三小学期进阶课程第四十三课:apollo简介
第43课、apollo简介apollo自动驾驶架构(1)3.0的一个完整的架构(2)1.0的时候有一个GPS,有一个线控,可以实现封闭场地里的循迹(3)1.5加入激光雷达,加入了高精地图、仿真、地图引擎,使车辆可以在一条公开的测试道路上行驶,可以在固定的车道上行驶(4)2.0增加了更多的感知,以及安全OTA能力,可以在城市的道路里做自动驾驶,可以通过有红绿灯的场景(5)2.5可以做高速场景的自动驾驶(6)3.0实现了量产的解决方案,从参考车辆平台升级为车辆认证平台,公开了线控车辆的标准,硬原创 2020-08-07 19:49:25 · 1295 阅读 · 0 评论 -
大三小学期进阶课程第四十二课:azure仿真平台使用
第42课、azure仿真平台使用它是基于微软的一个仿真平台Azure,该仿真平台不需要本地部署。在Apollo的Github账号上可看见上图所示的两个状态,左侧的Build用来做持续集成。为了简化验证,团队会把已经编辑好的测试运例用来测试开发者提交的代码是否正确,以此来判断开发者的代码对目前的Master的分支是否有影响。Build提供了对开发者代码验证的一种渠道。Simulation主要用来验证代码的鲁棒性。Apollo团队在微软的Azure仿真平台上部署了很多场景,拿最新的代码去在这些场原创 2020-08-07 19:48:36 · 1299 阅读 · 1 评论 -
大三小学期进阶课程第四十一课、Apollo安装过程概述
第41课、Apollo安装过程概述安装过程(1)安装主要分为三步。①安装基础环境,②拉取Docker镜像并创建容器,③进入容器编译源码(2)首先是安装git,因为Apollo代码是托管在github平台的,所以需要git工具。然后使用git将Apollo源码克隆到本地(3)下载源码之后,还要安装Docker环境,可以使用Apollo提供的脚本安装也可以根据Docker官网的指南进行安装。安装完Docker之后需要验证。重启系统并进入Apollo项目所在文件夹,然后运行docker ps命令原创 2020-08-07 19:47:07 · 1488 阅读 · 0 评论 -
大三小学期进阶课程第四十课、apollo平台的快速入门
第40课、Apollo平台的快速入门Docker:(1)Docker是一种容器的技术,它在是Linux内核的基础上做了一些轻量级和隔离机制的优化,让环境更小,部署起来更快。(2)利用Docker可以使整个工程的安装更加简单。Docker镜像通常是一个配置好的运行环境,包括依赖的第三方库等,使得用户不需要对环境编译做过多复杂的操作。(3)例如,在Release版本中,Apollo各个模块是一个已经编译好的二进制文件,可以直接运行;如果是开发版本,通常已经加载了所需的第三方库,用户只需要执行对应的编译原创 2020-08-07 19:45:40 · 1344 阅读 · 0 评论 -
大三小学期进阶课程第三十九课:apollo自动驾驶架构介绍
第39课、apollo自动驾驶架构介绍最底层的车辆平台(1)底层车辆平台执行Apollo无人驾驶平台生成的车辆控制指令。(2)为了能够运行Apollo生成的指令,车辆必须是线控的,例如可以接受一定的指令,比如换挡、加减速、转向,完成对应的操作。(3)在Apollo 3.0之前,我们称之为车辆参考平台,即推荐的可运行Apollo的几种车。(4)在3.0之后,我们发布了Apollo对车辆条件的需求,比如需要哪些线控功能,对应的操作耗时是多少等。(5)只要把车改装成具备对应条件之后就可以运行Apol原创 2020-08-07 19:43:08 · 1929 阅读 · 0 评论 -
大三小学期进阶课程第三十八课:control in apollo3
第38课、control in apollo3今天加了一点自己查到的东西,6之后是查到的controller types三种类型的控制系统:(1)开环(2)前馈(3)反馈,闭环前馈回路控制器(1)主要控制策略:①最优控制②自适应控制③鲁棒控制最优控制:为给定的系统找到一种控制法,从而实现一种特定的最优性标准自适应控制:控制器必须适应参数变化或初始不确定的控制系统鲁棒控制:一种明确的处理不确定性的控制器纵向控制主要通过控制汽车的刹车/油门来实现对汽车速度的控制。它主要由一个级原创 2020-08-07 19:40:33 · 1519 阅读 · 0 评论 -
大三小学期进阶课程第三十七课:control in apollo2
第37课、control in apollo2modeling in control modulemodel是什么预描model(1)只有一些几何现象的约束(2)integrated modelgeometry model(1)只有一些几何现象的约束(2)将车辆认为是一个简单地自行车模型(3)将一个四轮模型转换为一个二轮模型(4)左转向和右转向的环境是一致的(5)关注的是前轮和路径的距离(6)轮向和车辆方向(7)在高速上面比较常用和简单,但对于复杂多变情况不是很合适dy原创 2020-08-06 17:53:30 · 1468 阅读 · 0 评论 -
大三小学期进阶课程第三十六课:control in apollo1
第36课、control in apollo1首先了解一下apollo的整体结构,它包含了感知、定位、决策、控制、通信等几大模块(1)对于控制来说,它的输入一方面来自规划模块,即车辆的规划轨迹,另一方面是他的反馈阶段,即他的localization和hdmap,得到的是车辆本身所处在的一个世界,分世界坐标系和车辆坐标系。输出是和车辆控制模块的交互(2)其中,Apollo Control模块提供了三种控制方法:纵向控制、横向控制和MPC控制。控制(1)将控制拆开来看,上层是一个预处理,中间是一原创 2020-08-05 19:25:34 · 1531 阅读 · 0 评论 -
大三小学期进阶课程第三十五课:课后思考
第35课、课后思考前面技术介绍时说的开放问题,大家可以思考。例如Corner case的处理。(1)不同的算法的corner case是不同的,在本项目中,corner case个人感觉有两种可能①环境本身的边界,这是由于数据的边界性导致的,处理起来并不难。比如说对于邻近车道线边缘的处理,可以理解为规则造成的边界②环境相互之间接触的边界,这一类的界定就比较麻烦,比方说在面对人行横道的时候,在什么范围内刹车的效益是最高的,既能够做到礼让可能出现的行人,也能够做到最低限度的减少速度的损失前向和后向的原创 2020-08-01 17:21:31 · 1573 阅读 · 0 评论 -
大三小学期进阶课程第三十四课:感知的未来
第34课、感知的未来Sensor迭代:(1)如果在自动驾驶的研究中,发现某一类传感器在感知或者其他模块中具有很大的价值。(2)那么,整个资本市场会投入很多人力、财力研发传感器。随着量产之后,传感器的成本就会大幅下降,更新换代就比较快。深度学习+仿真数据+AI芯片(1)深度学习已经证明了在感知中有很大的作用,但是计算量很大,专门研究车载AI芯片是对这一问题的很好解决方案。(2)现在很耗时的CNN模型以后都不是瓶颈,而且定制AI芯片的功耗可以足够低,满足车载需求。深度学习需要大量数据的问题,可以通原创 2020-08-01 17:20:58 · 1432 阅读 · 0 评论 -
大三小学期进阶课程第三十三课:机器学习
第33课、机器学习机器学习里面存在一个普遍的假设,训练集和测试集是独立同分布的,如果测试和训练没有任何关系,测试效果是没有任何保证的。但是无人车感知的训练集是封闭的,而测试集是开放的。测试是在开放道路进行的,如果遇到新的障碍物,在训练中从来没见过,怎么处理?例如,在城市道路上很少见到卡车,但是高速会遇到很多卡车,而且卡车上的东西也很多,如果机器学习模型没见过这些障碍物,很有可能带来一些错误。无人车的安全需要可解释,出现一个Bad case需要说清责任,需要搞清Bad case是由什么原因导致的,以便原创 2020-08-01 17:20:25 · 1474 阅读 · 0 评论 -
大三小学期进阶课程第三十二课:感知算法
第32课、感知算法点云感知(1)点云障碍物感知的主要任务是感知障碍物的位置、大小、类别、朝向、轨迹、速度等。核心是点云检测分割技术,可以用启发式算法NCut和深度学习算法CNNSeg完成。启发式方法:Ncut(1)Ncut算法的基本思想是基于空间平滑性假设,即空间上接近的点来自同一个障碍物。首先,利用地图信息对点云进行预处理,例如去掉感兴趣区域之外的点云,降低点云图的复杂度。然后根据预处理后的点云构建加权图G=(V, E, W),将点云分割转换为图分割的问题,可以利用图聚类的算法求解,最终求解的原创 2020-08-01 17:19:53 · 4393 阅读 · 0 评论 -
大三小学期进阶课程第三十一课:Apollo感知之旅——传感器标定
第31课、Apollo感知之旅——传感器标定标定的目的(1)在选好、安装完传感器之后,需要对传感器进行标定。(2)标定的核心概念是得到传感器之间的相对位置,将不同传感器的数据在同一个坐标系中表示。(3)标定分为内参标定和外参标定。(4)内参是传感器自身性质,有些是厂家提供,有些需要自行标注,例如Camera焦距的定期矫正,Lidar中各激光管的垂直朝向角。(5)外参是传感器之间的相对位置和朝向,一般由6个自由度表示,自由度的旋转矩阵和自由度的水平位移。传感器标定算法(1)Lidar内参标定原创 2020-08-01 17:18:25 · 2306 阅读 · 0 评论 -
大三小学期进阶课程第三十课:Apollo感知之旅——传感器选择和安装
第30课、Apollo感知之旅——传感器选择和安装激光雷达(1)激光雷达的测距原理是激光头发射光束,打到障碍物上反射回来,到接收器接收到之反射信号的时间间隔乘以光速再除以二得到障碍物的距离,叫做TOF(Time of flight,飞行时间测距法)。(2)激光雷达传感器的好处在于自带光源不受外界干扰,白天晚上都可以,而且测距准确度高(厘米级的精度)。其缺点是多线激光雷达扫描还比较稀疏,尤其是当障碍物距离比较远的时候,因此,激光雷达目前并不适合做识别任务。(3)另外,激光雷达需要发射激光,功率限制其原创 2020-08-01 17:17:26 · 1559 阅读 · 0 评论 -
大三小学期进阶课程第二十九课:感知概貌
第29课、感知概貌人类开车与机器开车在感知上的区别(1)感知是机器人学科的问题,机器人要做的即是像人类学习,但不是完全模仿,应做到扬长避短。例如飞机的飞行不需要和鸟的飞行一样,而是要根据自己的特性进行针对性设计和优化,发挥出飞机本身的特性。感知的目的是寻找机器的特长并发挥出来,向人类学习并做得比人类更好。(2)人类驾驶员开车主要借助眼睛、耳朵,辅助以倒车影像和雷达来获取驾驶环境的信息。机器感知系统则根据各种各样的传感器来获取汽车周围的驾驶环境,包括Lidar,Camera,Radar,超声波雷达以及原创 2020-08-01 17:15:53 · 1951 阅读 · 0 评论 -
大三小学期进阶课程第二十八课:ROS深入介绍
第28课、ROS深入介绍ROS Packages(1)创建一个ROS开发环境和写一个C++工程有点类似,通过catkin create可以创建一个简单的工程。其中的文件组织方式如上图所示,包括:①SRC存放源文件;②MSG存放节点之间进行通信的消息定义;③SRV存放节点之间进行服务通信的时候的服务定义;④CONFIG存放配置文件相关的信息;⑤INCLUDE存放头文件相关的信息;⑥Launch存放节点启动和它相关的节点之间的启动文件。(2)上面介绍的package组织方式只是官方推荐的原创 2020-08-01 17:15:04 · 1579 阅读 · 0 评论 -
大三小学期进阶课程第二十七课:ROS原理4
第27课、ROS原理4ROS Services(1)ROS提供了三种节点之间通信的方式:①第一种是大家最常用的基于消息的订阅发布模型,②第二种就是ROS Service,③第三种Param,它借鉴了Service的思想。Service在自动驾驶系统里面使用的比较广泛,与基于消息发布订阅模型类似, Service有一个service name,同时Service底层是一个SRV描述文件,它和MSG描述文件比较类似,不同是SRV描述文件定义了两种消息:请求信息的消息格式和响应格式。请求是Clien原创 2020-08-01 17:11:46 · 1628 阅读 · 0 评论 -
大三小学期进阶课程第二十六课:ROS原理3
第26课、ROS原理3TF坐标系转换(1)为什么需要TF坐标系转换?因为自动驾驶使用的ROS架构是一个松耦合关系,每个节点独立运行,节点有一套自己的XYZ坐标系,当把他们组装到一块时,每个节点的坐标系都是相对独立的,但整个自动驾驶系统需要把每一个节点所使用的信息和一些参数转化到同一个世界坐标系里。TF节点就提供了对应的坐标系转换功能,TF消息也是通过基于Message的订阅和发布消息来完成的。(2)例如,当下游的Planning节点想使用Obstacle信息时,需要将Obstacle信息转化到同一原创 2020-07-26 21:55:00 · 1509 阅读 · 0 评论 -
大三小学期进阶课程第二十五课:ROS原理2
第25课、ROS原理2Apollo ROS对ROS的改进,去中心化网络拓扑(1)去中心化网络拓扑的原因ROS是以Rosmaster节点管理器建立起来的一个P2P拓扑网络,这种拓扑网络有很明显的优势,如下:①节点之间相互独立,容错性比较强。②每个模块用不同的语言去开发,对其它的模块是透明的,其它模块不用关注和它通信的数据节点以及模块使用什么语言来开发。③模块开发之间是比较解耦合的,你只要定义好使用Topic/Service/Param的信息,然后按照这个格式去开发自己的模块。但是也有两个比较原创 2020-07-26 21:52:06 · 1757 阅读 · 0 评论 -
大三小学期进阶课程第二十四课:ROS原理1
第24课、ROS原理1ROS的不足(1)大数据传输性能瓶颈:实验性项目里面采用的Topic是Message,数据量是比较小的,可能只有几K或者最多1~2MHZ,但在实际自动驾驶场景里面数据量非常大。例如Lidar一帧数据大概是7M,一秒钟10帧,就会产生70M/S的流量;一个Camera按5M计算,四个Camera就是20M,如果是按10HZ计算一秒钟会产生200M左右的数据。ROS架构对大数据传输存在很大的性能瓶颈,一种直接后果是时延非常高,这在自动驾驶整个系统里面是非常危险的。(2)但中心的网原创 2020-07-26 21:50:26 · 1909 阅读 · 0 评论 -
大三小学期进阶课程第二十三课:ROS概述
第23课、ROS概述ROS是2007年在斯坦福大学里面的一个实验室学生开发出来的一套机器人通用的一个框架,2013年被纳入OSRF机构统一管理,如今被很多公司和大学的研究所广泛地使用到一些科研项目中。ROS有5个比较明显的特征如下:(1)点对点:两个Node之间进行消息通讯是一个点对点的行为。(2)它支持分布式:在部署多机之间的消息通讯时,ROS提供了一个天然的支持。(3)它是跨语言,它并不关注每个节点之间是用什么语言来写的。你只需要按照ROS提供的一些接口完成消息的订阅和分发即可以完成一原创 2020-07-26 21:49:43 · 1588 阅读 · 0 评论 -
大三小学期进阶课程第二十二课:ROS背景介绍
第22课、ROS背景介绍自动驾驶系统包括障碍物检测、行为决策、路径规划等一系列复杂的工程模块,同时还要支持激光雷达、相机、GPS等一系列传感器的实时数据收集和实时处理。如何将这些功能模块相互独立又相互交互集成一起,构建成一个稳定的自动驾驶系统是一个巨大的挑战,也是自动驾驶计算框架所承载的基本功能。首先自动驾驶系统还处在一个快速发展的阶段,算法和整体方案还在持续迭代优化。使用框架开发,可以将更多的精力放在算法模块的迭代上。开发者不需要关心具体配置管理、部署运行、底层通信等功能。其次是感知、定位、决策控原创 2020-07-26 21:46:47 · 1601 阅读 · 0 评论 -
大三小学期进阶课程第二十一课:reinforcement learning and data driven approaches
第21课、reinforcement learning and data driven approaches解决规划问题,不能一上来就开始data driven,而是一步步来从rule based这些基本规则开始RL的本质是建立mapping 的过程,是遇到了问题再解决的思路(1)我遇到一个case,但我解决不了(2)看是不是什么地方解决不了(3)把这个地方进行拓展RL的思想就是不断的通过在目标不变的情况下,随机地去找一个action,然后看结果怎么样,不好的话就进行修正,或者说策略原创 2020-07-26 21:46:10 · 1765 阅读 · 0 评论 -
大三小学期进阶课程第二十课:Understand More on the MP Difficulty
第20课、Understand More on the MP DifficultyEM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程如下:(1)初始化分布参数;(2)重复直到收敛。重复直到收敛的步骤如下:(1)E步骤:根据隐含数据的假设值,给出当前的参数的极大似然估计;(2)M步骤:重新给出未知变量的期望估计,应用于缺失值。约束问题的核心有三点:第一是目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助。第二是约束,比如路网约束、交规、动态约束等。第三原创 2020-07-26 21:44:53 · 1649 阅读 · 0 评论 -
大三小学期进阶课程第十九课:Optimization Inside Motion Planning
第19课、Optimization Inside Motion Planning约束问题的核心有三点:(1)目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助。(2)约束,比如路网约束、交规、动态约束等。(3)约束问题的优化,比如动态规划、二次规划等。动态规划通过类似于有限元的方式,把问题从连续空间抽象成离散空间,然后在离散空间中进行优化。虽然这种方法可以逼近连续空间中的最优解,但是计算复杂度很高。针对计算时间长的问题,可以使用牛顿方法进行优化,它的收敛次数是指数平方,也叫二次收敛。原创 2020-07-26 21:43:45 · 1746 阅读 · 0 评论 -
大三小学期进阶课程第十八课:Motion Planning With Environment
第18课、Motion Planning With Environment多项式:首先,可以在轨迹上以等距离的方式随机选择一些点,然后用高阶多项插值的方式来近似表示轨迹,对多项式进行优化。但是高阶多项式不能用于平滑,因为高阶的多项式抖动太大,没有办法控制幅度,这就是常说的龙格现象Bezier Spline 曲线是由一系列控制点定义的,例如P0 到 Pn,其中n代表曲线的阶数。如图所示,分别给出1阶、2 阶、3 阶 Bezier Spline 曲线的表示形式。通过对它们做平滑,得到平滑的曲线,原创 2020-07-26 21:42:20 · 1576 阅读 · 0 评论 -
大三小学期进阶课程第十七课:Motion Planning with Environment
第17课、Motion Planning with Environment运动规划根据环境的变化在算法和处理方法上有很大的不同,涉及到模型建立、平滑优化和坐标转换以及障碍物投影等。Vehicle Model的建立:对于汽车而言,质点模型是远远不够的,无人车是前轮转向的车,前后位置的变化是不一样的,那么怎么去描述这种不一样呢?首先从刚体角度考虑,二维平面里的刚体涉及到XY和θ,也就是以车后轴中心作为XY坐标原点时车身的朝向heading。因为无人车运动模型还多了一个转向的变量,多了一个自由度,原创 2020-07-26 21:38:42 · 1677 阅读 · 0 评论 -
大三小学期进阶课程第十六课:Motion Planning with Autonomous Driving
第16课、Motion Planning with Autonomous Driving前面讲到决策规划问题,都是从质点模型出发考虑。质点模型将运动轨迹当成一个点,这个点和无人车是不一样的。假设把一个无人车看成一个点,这个点和另一个点不相撞,在数学定义上是点和点没有交集,但是在实际生活中一个车和一个车可是会相撞。下面介绍解决这些问题的一些方法:Configuration Space (构造空间),也就是说能够控制什么变量。对于刚体而言,不仅是XY坐标,还要有heading信息才能研究跟障碍物之间的关系原创 2020-07-26 21:34:49 · 1569 阅读 · 0 评论 -
大三小学期进阶课程第十五课:Basic Motion Planning and Overview
第15课、Basic Motion Planning and Overview规划问题本质上是一个搜索问题,即对一个给定的函数,寻找最优解。相对于无人车而言,规划问题就是给定现在的状态,找到无人车移动的最优解。通常最优解目标函数F(x)定义。从内容考虑,规划问题涉及三个领域,机器人领域,控制领域和人工智能。不同的领域对问题的理解不同。(1)robotic fields,规划就是如何产生轨迹以完成目标,涉及RRT, A*,D* lite等。(2)控制领域,规划理解为到达目标状态的动态系统,涉及MPC原创 2020-07-24 17:11:36 · 1836 阅读 · 0 评论