当前位置: 首页 > news >正文

自动驾驶轨迹规划之时空语义走廊(一)

欢迎大家关注我的B站:

偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)

目录

1.摘要

2.系统架构

3.MPDM

4.时空语义走廊

​4.1 种子生成

4.2 具有语义边界的cube inflation

​4.3 立方体松弛


本文解析了丁文超老师的这篇论文Safe Trajectory Generation for Complex Urban Environments Using Spatio-Temporal Semantic Corridor | IEEE Journals & Magazine | IEEE Xplore

1.摘要

引入:城市道路轨迹规划的难点在于有很多语义元素。

创新点1:不同的语义元素有不同的数学表征形式,提出了一种新的统一的时空语义走廊来为不同类别的语义元素来提供abstraction,可以推广到任何语义元素组合的场景。

创新点2:SSC由一系列互相连接的无碰撞cubes组成,其中包含了动态约束,并且轨迹生成问题可以归结于一个QP问题,并且通过贝塞尔曲线来保证轨迹安全性和可行性。

2.系统架构

第一阶段:环境理解,通过语义地图管理器管理用于本地规划目的的语义要素

第二阶段:包含自车high-level的行为预期以及他车预测轨迹的预测器

第三阶段:利用多策略决策的行为规划器

第四阶段:离散未来状态作为生成走廊的种子的运动规划器

3.MPDM

行为规划问题被被表述为多智能体的POMDP问题,来对动态环境中的交互和不确定性进行建模。但是当车辆数量增加,计算负担会很重。MDPM将问题简化为有限的闭环离散策略(如向左变道,车道保持等)。自车和他车都在执行简单的策略。

自车和他车的预测都通过简化的模型前向模拟来实现,并且结合理想化的转向和速度控制器来评估最佳行为。而自车的前向模拟状态是走廊生成过程中的种子。由于粗糙的分辨率和简化的模型,这不能直接由车辆执行,这也是轨迹生成器的必要性。

MPDM同时为多个行为提供前向模拟,我们为所有潜在行为生成候选轨迹。

4.时空语义走廊

由于大多数语义元素都与车道几何结构有关,因此我们需要将笛卡尔坐标系转换到基于参考车道的frenet坐标系,并且对于时空联合规划我们将处理一个SLT三维配置空间。语义主要有obstacle-like和constraint-like两类元素。障碍物就是slt空间内不允许驶入的空间,约束就是一些速度限制等。而语义边界可以对所有constraint-like的元素进行统一的表示。

下图则是走廊生成的算法流程

4.1 种子生成

种子是由行为规划器中前向模拟状态投影到SLT空间下得到的。我们要求连续种子构建的初始立方体无碰撞,例如,对于以30m/s的纵向速度和0.15s的种子分辨率,所需的间隙约为4.5m,这比需要的紧急制动距离短得多。因此,如果有碰撞直接驳回的判断是合理的。

而在种子周围生成走廊的动机是对拓扑等效的自由空间进行建模。比如这张图显示了种子的拓扑含义是在这两个动态障碍物之间通行。由于膨胀在碰到语义边界或障碍物后停止,因此膨胀过后的走廊的同伦与种子是一样的。

4.2 具有语义边界的cube inflation

初始立方体是通过两个连续的种子生成的,立方体的膨胀是在碰到障碍物与语义边界时停止。这样处理使得不在语义边界内的立方体不用考虑约束,在语义边界的立方体直接关联约束。未来保持凸性,立方体之间没有重叠。但也可以引入时间进行优化,重叠可能是有益的。

4.3 立方体松弛

在立方体膨胀过程之后,膨胀的立方体几乎与语义边界匹配,但比如变道持续时间约束等都是软约束,我们可以通过cube relaxation来松弛边界,但要保持硬约束和无碰撞。允许松弛的最大裕度一般由两个连续立方体结合运动学去估计。

下一次将介绍轨迹生成与实验

相关文章:

  • 鸿蒙Harmony应用开发—ArkTS-ForEach:循环渲染
  • Linux环境变量【终】
  • element-ui checkbox 组件源码分享
  • 10、chrome拓展程序的实现
  • 01分布式搜索引擎ES
  • GT20L16S1Y标准汉字字库芯片完全解析(2)
  • 基于FPGA的UDP协议栈设计第三章_ARP层设计
  • RESTful架构
  • 零基础-MySQL数据库的基本操作
  • PWM脉宽调制技术
  • 第十节:Vben Admin实战-系统管理之角色管理实现(分页查询,修改)-中
  • creator-webview与Android交互
  • Unity:2D
  • 读算法的陷阱:超级平台、算法垄断与场景欺骗笔记19_前方的路
  • leetcode最大连续1的个数(简单)
  • 【css3】浏览器内核及其兼容性
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • nginx 配置多 域名 + 多 https
  • nodejs实现webservice问题总结
  • overflow: hidden IE7无效
  • React Transition Group -- Transition 组件
  • 笨办法学C 练习34:动态数组
  • 番外篇1:在Windows环境下安装JDK
  • 回流、重绘及其优化
  • 前端_面试
  • 前端代码风格自动化系列(二)之Commitlint
  • 深度解析利用ES6进行Promise封装总结
  • 我与Jetbrains的这些年
  • 用 Swift 编写面向协议的视图
  • 优化 Vue 项目编译文件大小
  • 进程与线程(三)——进程/线程间通信
  • 数据库巡检项
  • # C++之functional库用法整理
  • # Maven错误Error executing Maven
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #define 用法
  • #Spring-boot高级
  • #图像处理
  • ( 10 )MySQL中的外键
  • (二)Linux——Linux常用指令
  • (翻译)terry crowley: 写给程序员
  • (算法二)滑动窗口
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转载)Linux网络编程入门
  • ***通过什么方式***网吧
  • .aanva
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 获取url的方法
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net6+aspose.words导出word并转pdf
  • .net开发时的诡异问题,button的onclick事件无效
  • @RunWith注解作用