无人驾驶实战-第十课(决策规划)

news2024/12/27 2:08:11

 

在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。

—————————————————————————————————————————

  

Planning是目前无人车最困难最有挑战性的部分
本质为一个优化问题,通过当前环境和当前状态,从现有可行的决策中,找到一个最优结果。
运动规划的三个领域:
机器人学:生成轨迹实现目标,有RRT,A*,D*和D* Lite等方法;
控制论:动态系统理论实现目标状态,有MPC和LQR等方法;
人工智能:生成状态和Action的一个映射,有Reinforcement Learning和Limitation Learning等方法;
如何解决一个运动规划问题:
将问题简化为一个简单的问题:路径寻找问题。什么样的路径是最好的,这个是需要用数字进行量化。常用的图论中的方法包括BFS、DFS和Dijkstra等。机器人学常用的方法为A* search,是基于Dijkstra方法的改进,前提是大概知道了终点位置,有个启发式的函数。
无人车中的规划和A* search相差多远。
无人车的特点是:部分感知,动态障碍物和复杂的环境。
而A* search本身是一个Global Algorithm。
局部观测的解决方法
使用贪心算法,使每一步在当前是最优的。
这里常用的方法为D* 方法。通过部分环境信息做出一个search,Apollo登月小车就是用的D*算法,而D* Lite是D*的一个简化版。
这种贪心算法一般很难得到全局最后解,但是也满足了当前的需求。
无人车路径规划的步骤
1.通过目标函数并且结合了平滑性和目标Cost;
2.使用通用的search方法来最小化cost从而找到一个最优解;
3.通过Partial observed information来做局部Planning;
如何设计出一个合理的轨迹
路径path+速度speed
基本Planning方法
基于经典环境建模的方法:RRT和Lattice
现代无人车Planning方法:Darpa、Lattice in Frenet Frame和Spiral polynomial。
传统的机器人基础
PRM(Probabilistic RoadMap Planning)
非常常用的一个方法,先将连续空间离散化(随机撒点,Obstacle上的点删除),连接可行点,形成可行空间。最后通过A*算法找到最优路径。
RRT(Incremental version of PRM)
使用增量搜索的方式来进行。
寻找附近可行点的最优点(F(x)最小,走过程中不能有阻碍)
撒点搜索距离不能太远,一步一步移动。
Lattice方法
改进了RRT的折线问题,给出了Path的平滑曲线,方法是网格化,每个采样格中都是用曲线连接。
问题是该方式是个指数级别的搜索方法(NP-Hard)
DP(动态规划)
减少搜索空间,复用已有结果。
Lattice DP的平滑度够吗?曲率连续,但是曲率的导数不一定连续;
QP(二次规划)
凸优化问题最优化求解
在凸优化中的凸空间问题,用QP有最优解。QP如何找到平滑曲线
其他的平滑曲线还有贝塞尔曲线、样条差值方法。
刚体模型;
前轮转向和Heading的关系:车轮是沿着切线方向行驶;前后轮是同一个旋转中心;左右轮的结构相同。
Bicycle Model,是对汽车模型的一个简化,因为左右轮的结构是一样的。
曲率公式为
无人车Planning
从A点到B点,构建一个车辆运动轨迹,结合HD Map, Localization和Prediction。
输出:可行驶轨迹,有一系列点组成;
包含两个层面:导航层面和运动轨迹层面
Routing(路由):导航一条A到B的全局路径。
输入:地图(路网信息,交通状态),当前位置,目的地(乘客决定)
输出:可行驶道路的连接线
搜索:地图数据转化成图网络,节点表示道路,边表示道路连接。
A*经典算法:
最经典的路径查找算法:F(n)=G(n)+H(n)
Fn表示道路的Routing的总cost,Gn表示起始点到候选点的Cost,Hn表示候选点通过启发式函数得到的目标点Cost
Motion Planning
Planning理解为高精度、低级别的一个Search,trajectory Planning。轨迹点包含XY,Time和Velocity
规划的约束条件:碰撞、舒适、运动学约束、合法。
Cost Function 成本函数
由许多条件组成:道路偏离中心线距离,碰撞或者靠得太近,速度太快,Curvature太大
不同场景可能有不同的Cost Function:高速场景、停车场、不同车辆。
Frenet坐标系(车道坐标系)
笛卡尔坐标系的问题:xy坐标无法知道车开了多远,有没有偏离中心线,道路在哪里。
Frenet是基于Lane级别的,S表示走了多远,L表示距离车道有多偏。
Path与Speed解耦
Path Planning生成可行轨迹路径,Cost是平滑性、安全性及道路中心偏移距离。
Speed Planning在每个Path上选择一系列速度,生成速度轨迹。
Path Planning
现生成道路网格(GridMap),每个网格单元中随机采样(撒点),每个网格选一个点,组成多条候选Path
Cost Function对这些轨迹进行评估,考虑中心线距离、障碍物距离、速度变化率和曲率等。
Speed Planning
主要是ST图,S表示Path上纵向距离,T表示运动时间。
如何规划ST轨迹
1.连续空间离散化,单元格内速度保持不变
把障碍物投影进来,挡住我们Path轨迹的部分画进ST图中,因此必须要有良好的预测轨迹
速度忑不能碰这个区域
凸优化来求解得到的最优的速度曲线
限制条件:速度限制、距离限制、车辆运动学限制
如何优化:对不平滑的速度线优化(QP)
轨迹规划:遇到一辆很闷的车如何超车
1.生成很多轨迹线(撒点采样)
2.Cost Function对其进行评估,选择Cost最小的一条
3.生成一个ST图来表示速度规划,生成多条速度曲线
4.使用优化工具对多条速度采样进行最优化求解,让整个线路和速度曲线变得平滑
5.最后将每个轨迹点的Path和Speed合并得到最终结果
Lattice Planning(网格规划)
SL轨迹和ST轨迹
Lattice将两个图合并处理,同时进行Path和Speed的采样。
Lattice因为其采样计算量达,为了优化其采样效果,需要先进行场景化以简化计算量。S方向的优化,可根据特殊场景进行简化,比如定速巡航、跟随和停止等,都可以进行简化。L方向上的优化,需要保证车辆以一个稳定的状态进行重点状态,比如与车道线保持平齐。
合并ST和SL的坐标
转化到笛卡尔坐标系下
生成XYTime一个三维估计,两个坐标系中都有S,找同一个S,对应的L和T。
Apollo如何求解规划问题
常用的方法叫Apollo EM Planner,用的期望值最大化的方法。
先生成一条Optimal P阿糊涂,再生成一条当前Path情况下的Optimal Speed。再将目前的Speed返回去给Path进行一次Tuning,将Tuning的Path返回来给Speed做优化,最后迭代到最优解。
三个关键步骤:
目标函数:线性加权的Cost
限制条件:交通规则,碰撞条件,动态特征
优化求解:如何计算最优解(DP+QP)
DP:不要求问题是凸的。QP:是一种凸优化。
Path QP
问题抽象:根据当前驾驶信息和道路情况建立平滑的SL坐标轨迹
模型建立:合理优化目标函数和约束条件
优化方法:二次优化求解带约束的二次规划问题
Speed DP
问题抽象:使用ST图
模型建立:Cost函数
优化方法:DP最有求解
计算提速思路:
SL坐标系离散化处理:什么时候用粗分辨率什么时候用细分辨率;
GPU并行计算:同时计算多条Reference Lane的结果
QP Hotstart:QP的性质,两帧之间差距不大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

openGauss学习笔记-32 openGauss 高级数据管理-批处理模式

文章目录 openGauss学习笔记-32 openGauss 高级数据管理-批处理模式32.1 语法格式32.2 参数说明32.3 示例 openGauss学习笔记-32 openGauss 高级数据管理-批处理模式 openGauss支持从文本文件执行SQL语句。openGauss提供了gsql工具实现SQL语句的批量处理。 以下场景建议使用批…

(JS逆向专栏十二)某乐平台网站登入RSA

声明: 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 名称:当乐 目标:登入参数 加密类型:RSA 目标网址:https://oauth.d.cn/auth/goLogin…

【前端 | CSS】5种经典布局

页面布局是样式开发的第一步,也是 CSS 最重要的功能之一。 常用的页面布局,其实就那么几个。下面我会介绍5个经典布局,只要掌握了它们,就能应对绝大多数常规页面。 这几个布局都是自适应的,自动适配桌面设备和移动设备…

Linux:管道命令与文本处理三剑客(grep、sed、awk)

1 管道命令(pipe)介绍 众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是|这个界定…

GaussDB数据库SQL系列-表连接(JOIN)

目录 一、前言 二、GaussDB JOIN 1、LEFT JOIN 2、LEFT JOIN EXCLUDING INNER JOIN 3、RIGHT JOIN 4、LEFT JOIN EXCLUDING INNER JOIN 5、INNER JOIN 6、FULL OUTER JOIN 7、FULL OUTER JOIN EXCLUDING INNER JOIN 三、GaussDB 实验示例 1、初始化实验表 2、LEFT …

苹果正在测试新款Mac mini:搭载M3芯片 配备24GB大内存

据悉苹果目前正在测试新的Mac机型,亮点是采用最新的M3芯片。 据报道,首款搭载M3芯片的设备应该是13英寸的MacBook Pro和重新设计的MacBook Air,Mac mini机型并不在名单上。 M3和M2同样拥有最多8个核心,分别为4个性能核和4个能效核…

FPGA运算单元可以支援高运算力浮点

随着机器学习(Machine Learning)领域越来越多地使用现场可编程闸阵列(FPGA)来加速推论(inference),传统FPGA只支援定点运算的瓶颈日益突显。为了解决这一困境,Achronix设计机器学习处理(Machine Learning Processing;MLP)单元,不仅…

GreatSQL从单机到MGR扩展纪实

一、前言 原有的业务系统跑在MySQL主从架构中,高可用通过脚本完成,但存在切换数据丢失和切换不及时风险,调研了高可用更稳定的MGR后,准备入手一试。本篇文章主要记录GreatSQL从单机扩展到MGR的详细过程,遇到的问题及解…

【PCIE】AER和DPC解释

AER(Advanced Error Reporting)和 DPC(Downstream Port Containment)是PCIe(Peripheral Component Interconnect Express)总线规范中定义的两种不同的错误处理机制,它们在PCIe架构中有一定的关联…

c++进阶--二叉搜索树模拟实现

目录 前言 一、二叉搜索树 1.二叉搜索树概念 2.二叉搜索树操作 二、二叉搜索树实现 0.定义一个节点 1.定义一棵树 2.增删改查 2.1.查找 2.2.插入 2.3.删除 2.3.1非递归删除法 a.只有左孩子 -- 删除14 b.只有右孩子-- 删除10 c.有左右孩子--删除8 2.3.2递归删除…

停车场收费系统ssm车辆车库管理jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 停车场收费系统 一个基于ssm框架的小系统 后端&…

计算机三级网络技术(持续更新)

BGP考点 A S:自治系统 BGP: Border Gateway Protocol(当前使用的版本是 BGP-4)外部网关协议 动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换&…

基于大数据为底层好用准确性高的竞彩足球比分预测进球数分析软件介绍推荐

大数据与贝叶斯理论在足球比赛分析与预测中的应用 随着科技的不断进步,大数据分析在各个领域的应用也越来越广泛,其中包括体育竞技。足球比赛作为全球最受欢迎的运动之一,也借助大数据和贝叶斯理论来进行模型分析和预测。本文将通过结合贝叶…

Java笔记(三十):MySQL(上)-- 数据库、MySQL常用数据类型、DDL、DML、多表设计

一、数据库 0、MySQL安装,IDEA配置MySQL 用MySQL installer for windows(msi)MySQL默认安装位置:C:\Program Files\MySQL\MySQL Server 8.0配置环境变量使用前先确保启动了mysql服务my.ini位置:C:\ProgramData\MySQL…

交替方向乘子

目录 一,交替方向乘子ADMM 1,带线性约束的分离优化模型 2,常见优化模型转带线性约束的分离优化模型 3,带线性约束的分离优化模型求解 4,交替方向乘子ADMM 本文部分内容来自教材 一,交替方向乘子ADMM …

初中信息技术考试编程题,初中信息技术python教案

大家好,小编来为大家解答以下问题,初中信息技术python编程题库 网盘,初中信息技术python编程教学,今天让我们一起来看看吧! ID:12450455 资源大小:934KB 资料简介: 2019-2020学年初中信息技术【轻松备课】P…

5基础篇:自定义日志

前言 在所有的后端服务中,日志是必不可少的一个关键环节,毕竟日常中我们不可能随时盯着控制台,问题的出现也会有随机性、不可预见性。一旦出现问题,要追踪错误以及解决,需要知道错误发生的原因、时间等细节信息。 之前的需求分析部分,在网关基础代理的服务中,网关作为…

生信豆芽菜-edgeR差异分析使用说明

网站:http://www.sxdyc.com/diffEdgerAnalyse 一、edgeR差异分析简介 edgeR使用经验贝叶斯估计和基于负二项模型的精确检验来确定差异基因,通过在基因之间来调节跨基因的过度离散程度,使用类似于Fisher精确检验但适应过度分散数据的精确检验用…

GateWay网关使用

流程如下&#xff1a; 1、微服务启动&#xff0c;将自己注册到Nacos&#xff0c;Nacos记录了各微服务实例的地址。 2、网关从Nacos读取服务列表&#xff0c;包括服务名称、服务地址等。 3、请求到达网关&#xff0c;网关将请求路由到具体的微服务。 1.导入依赖 <!--网关…

动手吧,vue移动端消息滚动组件

先看效果图&#xff1a; 1、模板部分 <transition name"fade-sport"><div class"v-message-roll" v-show"visible"><svg class"v-icon" viewBox"0 0 1024 1024" version"1.1" xmlns"http://…