智能驾驶规划控制理论学习07-规划算法整体框架

一、解耦合策略

1、路径-速度解耦策略概述

        路径-速度解耦指的是将车辆的运动分成路径规划和速度规划两部分,对两个部分分别进行研究。

  • 路径规划:

        假设环境是“静态的”,将障碍物投射到参考路径上,并规划一条避开它们的路径;

  • 速度规划:

        接收路径规划中给定的路径,将静态和动态障碍物都投影到st图上,并在图中规划大致的速度。

        在路径规划中,基于当前的“静态”环境,生成路径边界来描述可通过的区域。并且这个可通行区域一般要求是凸集,这样能保证优化的质量。

        并且路径规划在frenet坐标系和cartesian坐标系下都可实现,如下图所示:

        在速度规划中,投影就是根据障碍物的预测信息,用红色和橙色标记为阻挡路径的障碍物。通过st图中障碍物投影与自车运动曲线(下图中红色曲线)的相对关系可以判断自车做出了何种策略。如假定最上方红色曲线为自车运动曲线,则自车对黄车做出了抢行的行为,因为在相同时间t,自车曲线具有更大的s;而对于下方第二条自车运动曲线,则是对黄车做出了让行的行为。

        s(t)的高阶导数信息也包含在st图中。

        在论文a real-time motion planner with trajectory optimization for autonomous vehicles中给出了路径速度解耦合的框架。

 

        在该论文中作者使用四次螺旋多项式对路径进行规划生成轨迹,再在速度规划中利用三次多项式在st图中生成对应的曲线。 路径速度解耦方法中,是先通过路径的集合和速度的集合生成对应轨迹的集合,再经过代价值计算选取最优曲线,再对最优曲线中的路径和速度进行优化。

        上图是百度Apollo EM Motion Planner的框架,它的大体思想是对多条lane进行并行操作,生成对应的轨迹并打分,选择其中最优的。在每条lane的内部处理中分为E-step和M-step,E-step主要是进行障碍物的投影,M-step则是进行路径或速度的动态规划和二次规划,结合路径和速度的规划生成轨迹交给控制模块处理,同样也传送给最初的输入。大致流程和上篇论文的思想相同,下面对这个EM Planner进行一些具体的介绍。

2、EM Planner路径规划

SL Projection

        路径优化器使用上一个周期的大致速度来估计与迎面来车和低速动态障碍物的相互作用。基于这个投影的过程,我们可以假设得到一个“静态的”环境 。

DP Path Decision        

        在该部分,在自车前采样多行点。行点之间的间距取决于车速、道路结构等;不同行的离散点通过五次多项式曲线进行平滑连接;通过上述步骤得到的一系列曲线,我们可以使用DP(动态规划)在图中找到最优路径,这样就得到了一条能够避开障碍物类似安全通道的粗略解。

        在动态规划过程中每条边的代价值计算设计如下:

        这个代价函数还是比较好理解的,第一项C_{smooth}是衡量驾驶平顺性,主要考虑车辆的速度、加速度和加加速度三个指标;第二项C_{obs}主要考量车辆与障碍物的距离,采用分段函数的思想设置不同的值:当距离大于安全距离d_{n}时为0,小于危险距离d_{c}时给定一个较大的值C_{collision},当介于安全距离和危险距离也根据距离设置惩罚值;第三项C_{guidance}主要为车辆离道路中心的偏移距离设置代价值。

QP Path Optimization

        虽然DP方法有最优性保证,但搜索出来得到最优解只是在离散的图上达到最优,在连续空间上无法实现最优。为了保证最终下发的质量足够高要对dp的结果进行二次优化。在经过DP后,我们得到了一个可通行区域(凸集),对应上图黄色阴影部分,利用五次样条二次规划进行优化,目标函数的设计如下:

        在该函数中g(s)表示DP得到的最优路径,而不是上一步的车道中心线。

        在这一步中,对车辆施加线性化约束,不再看做简单的质点模型,此时车辆的运动要考虑航向的影响。

         该不等式成立,要满足航向角\theta足够小。

        一般来说,在优化问题中若生成的最终曲线是多条五次样条曲线组合而成的,需要施加显性约束保证连接处的状态连续,即连接处的ll{}'l{}''相等。

2、EM Planner速度规划

 SL Projection 

        与EM Planner路径规划的第一步相同,也是将障碍物投影到st中,只是在路径规划中只针对静态障碍物和低速的动态障碍物,而在速度规划中,将静态障碍物和动态障碍物都投影到路径规划器计算得到的路径上。

        速度规划的任务就是在st上找到最优曲线s(t)。

DP Speed Decision 

         与路径优化器类似,速度优化器也是在st图上找到最佳速度曲线,dp的结果包括各分段的大致速度,一个可行的凸区域以及障碍物速度决策。

        在离散栅格中,用有限差分法逼近导数:

        代价函数可设计为:

 QP Speed Optimization 

        分段线性速度曲线不能满足动态要求,需要样条QP曲线步骤来填补这一空白。与路径优化器中类似,使用基于五次样条的二次规划来生成更精细的廓形。五次样条速度优化的目标函数设计为:

         对该目标函数有如下线性约束:

         下面对EM Planner路径规划和速度规划中的DP和QP目的进行总结:

  • 使用DP是在网格内进行搜索得到一个粗略的解;
  • DP的解用于生成凸区域并指导QP过程;
  • QP用于在最有可能包含全局最优的凸区域中搜索最优解。

3、EM Planner缺陷

  • 动态规划的耗时太长

        DP为了获得最优解需要遍历图中的所有节点;

        相对于基于A*的算法,一个好的启发式函数能够快速地指导算法找到最优解。

  • EM Planner中的速度规划是次优的

        例如,如果速度限制是与位置相关的,那么对应于相同时间戳的速度约束将会随着优化过程速度轮廓的更新而不断变化,这使得问题是非凸的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年【安全员-C证】找解析及安全员-C证模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 安全员-C证找解析是安全生产模拟考试一点通总题库中生成的一套安全员-C证模拟考试,安全生产模拟考试一点通上安全员-C证作业手机同步练习。2024年【安全员-C证】找解析及安全员-C证模拟考试 1、【多选题】…

第十二篇 - IAB 标准技术条款和定义-我为什么要翻译介绍美国人工智能科技巨头IAB公司?

前言 这是2021年IAB公司发布的《市场营销人工智能使用案例及最佳实践报告》的最后一篇译文。翻译工作不难,但是非常考验一个人的态度,需要译者忠于自己的初心,严谨对待所有文字、数据、信息、技术和观点。时代变化如此之快,3年前…

【小黑嵌入式系统第十八课】结课总结(二)——软件部分(系统架构调试测试运行系统软件设计)

上一课: 【小黑嵌入式系统第十七课】结课总结(一)——硬件部分(系统&总线&处理器&外设&通信) 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…

js节点操作

js节点操作 一.DOM节点二.查找节点三.增加节点3.1.创建节点3.2.追加节点3.3.克隆节点 四. 删除节点 一.DOM节点 DOM树里每一个内容都称之为节点 节点类型:元素节点(所有的标签 比如 body,div等,html 是根节点) 属性节…

前缀和+哈希表:联手合击Leetcode 560.和为k的子数组

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,2…

C++指针(四)

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 前言 相关文章:C指针(一)、C指针(二)、C指针(三) 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…

YOLOSHOW - YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 基于 Pyside6 的图形化界面

YOLOSHOW 是一个基于 PySide6(Qt for Python)开发的图形化界面应用程序,主要用于集成和可视化YOLO系列(包括但不限于YOLOv5、YOLOv7、YOLOv8、YOLOv9)的目标检测模型。YOLOSHOW 提供了一个用户友好的交互界面&#xff…

遥感分析时什么情况下需要做大气校正?

经常会遇到这样的问题:什么情况需要做大气校正产生?这个问题取决于传感器和应用目标,总的来说,如果要做光谱分析,那么大气校正是必须要做的。本文对于在什么情况下选择什么样的大气校正方法,给出了一些依据…

算法48:动态规划专练(力扣221:最大正方形面积)

题目: 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0","0"],["1","0&quo…

MySQL下实现纯SQL语句的递归查询

需求 有一个部门表,部门表中有一个字段用于定义它的父部门; 在实际业务中有一个『部门中心』的业务; 比如采购单,我们需要显示本部门及子部门的采购单显示出来。 结构 数据如下: 实现方式如下: WITH RECUR…

打造智慧足球社区:Java+SpringBoot实战

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

【vue3之组合式API及其新特性】

组合式API及其新特性 一、setup1.写法2.如何访问3.语法糖4.同步返回对象 二、reactive()和ref()1.reactive()2.ref() 三、computed四、watch函数1.侦听单个数据2.侦听多个数据3. immediate4. deep5.精确侦听对象的某个属性 五、生命周期函数六、组件通信1.父传子2. 子传父 七、…

vue 总结

1.vue 的生命周期 1. es6 2. vue 基本属性指令 <template><div><!--<h1>vue基本指令的使用方式</h1><a :href"url">v-bind使用链接</a><img :src"srcUrl" /><div>解决闪烁问题<p v-cloak>{{…

【word】引用文献如何标注右上角

一、在Word文档中引用文献并标注在右上角的具体步骤如下 1、将光标移动到需要添加文献标注的位置&#xff1a; 2、在文档上方的工具栏中选择“引用”选项&#xff1a; 3、点击“插入脚注”或“插入尾注”&#xff1a; ①如果选择的是脚注&#xff0c;则脚注区域会出现在本页的…

Object.keys()的用法

1、语法 Object.keys(obj) 参数&#xff1a;要返回其枚举自身属性的对象 返回值&#xff1a;一个表示给定对象的所有可枚举属性的字符串数组 2、处理对象&#xff0c;返回可枚举的属性数组 let person {name:“张三”,age:25,address:“深圳”,getName:function(){}} Obj…

管理 PostgreSQL 中配置参数的各种方法

管理 PostgreSQL 中配置参数的各种方法 1. 概述 PostgreSQL提供了一个配置文件 postgresql.conf 让用户自定义参数。您可能需要更改一些参数来调整性能或在工作环境中部署 PostgreSQL 服务器。在这篇博文中&#xff0c;我们将探索管理这些参数的不同方法。 2. 以不同方式管理…

大语言模型系列-GPT-3

文章目录 前言一、GTP-3的改进二、GPT-3的表现总结 前言 《Language Models are Few-Shot Learners&#xff0c;2020》 前文提到GPT-2进一步提升了模型的zero shot能力&#xff0c;但是在一些任务中仍可能会“胡说”&#xff0c;GTP-3基于此提出了few shot&#xff0c;即预测…

PnP算法

PnP(Perspective-n-Point)是求解3D到2D点的对应方法。它描述了当知道n个3D空间点及其位置&#xff0c;如何估计相机的位姿。如果两张图像中的一张特征点3D位置已知&#xff0c;那么至少需要3个点对(以及至少一个额外验证点验证结果)就可以计算相机的运动。 PnP的应用范围很广比…

从 HPC 到 AI:探索文件系统的发展及性能评估

随着 AI 技术的迅速发展&#xff0c;模型规模和复杂度以及待处理数据量都在急剧上升&#xff0c;这些趋势使得高性能计算&#xff08;HPC&#xff09;变得越来越必要。HPC 通过集成强大的计算资源&#xff0c;比如 GPU 和 CPU 集群&#xff0c;提供了处理和分析大规模数据所需的…