【论文阅读】TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Convex Optimization
参考与前言
Last edited time: August 3, 2022 10:04 AM
Status: Reading
Type: TRO
Year: 2021
论文链接:https://ieeexplore.ieee.org/document/9302873
1. Motivation
safe motion planning对自动驾驶很重要,其中online verification 能保证自动驾驶车辆不会出现事故,但是现有的方法存在下列缺点:
- online verification并不高效,一般需要20HZ或更高的频率
- 在一些极端的情况下 全时间段内不能完全避免碰撞
- 在不安全场景,大多方法都缺少提供alternative motion plans
Related work
因聪明需要 所以总结了一下,感兴趣可看,大致了解一下无人车的规划相关工作
trajectory planning
discrete planning比较受欢迎,主要是离散化搜索空间、状态和输入空间等,motion primitives主要就是提前计算好轨迹快,然后通过search-based方案concatenaated到一起,这一步骤通常是offline的,所以可以应用于较为复杂的车辆模型,比如multibody modesl[19]
OS: 估计是将轨迹点预录下来的形式,或者建完图后有free的全局轨迹点 搜素空间
- Sampling-based: RRT为主的,比较适合高维的搜索空间,但是由于随机采样,通常无法在时间内获得optimal motion
- Graph-search: 比如state lattices,同属discrete planning。获取一系列轨迹,其goal states是预定义好的grid上的点,使用 lattice 结构表示。state lattices使用了优化来实现jerk-optimal。通常lattices能构建 可行驶的轨迹,但是 due to grid, it lack optimality and completeness
虽然discrete planning是比较容易实现并有效的解决motion问题的,但是缺点也很明显:也正是因为离散,所以可能在safety-critical scenarios with small and convoluted solution spaces 无法求解;同样的原因 也会导致在fail to determine trajectories ending in small safe terminal sets
故连续的model predictive control通过minimizing cost function 来生成无碰撞的轨迹,比如混合整数优化、sequential quadratic programs;因为求解的问题通常是非凸的,所以求解起来较为困难无法做到实时性;另一个则是可能造成local minimal
通常可以把非凸问题转成凸问题,比如线性化 vehicle dynamics,将motion分为横向和纵向的;[47]-[51] 说明了这一方法可以在全局收敛的情况下有效解决优化问题;但因为方法上分横纵,可能导致无法在复杂场景下获得可行轨迹。我们通过focusing on simple evasive maneuvers and providing safe fallback solutions来解决这一问题 → 对应Section VI.
safety verification
In theorem proving, desired system properties are formulated using logical formulas,然后verification步骤主要是checking the satisfiability of the logical formulas
如果从未进入inevitable collision states 则认为是安全的,ICS是一种状态:所有车辆自身可能的轨迹都会和障碍物相撞,ICS reason over infinite time horizons,在随机的交通场景 确定ICS是比较耗时的,大部分工作为提高效果,仅考虑其他参与者的一条轨迹。
为补充ICS,controlled invariant sets 保证了persistent feasibility,根据定义就是根据其他参与者,如果在CIS内的每个状态都存在一个无碰撞轨迹,则说明车辆是安全的。因为对障碍物未来状态的未知,计算CIS在动态环境中比较challenging
Set-based reachability analysis 通过计算所有的feasible轨迹,检查是否存在无碰撞轨迹;但是这一方法中,因为对未来所有的可能状态进行考虑,unsafe regions may grow rapidly。 导致的结果就是 刚规划的轨迹会被人为potentially unsafe,leaving AV without a safe trajectory. 在本篇文章中,我们通过结合fail-safe planning来结合reachable sets在verficiation中以解决这一问题
responsibility-sensible safety RSS 也是一种formal safety model
Contribution
主要贡献是展示了一种 verification technique 来保证车辆的安全性 弥补上面提到的以下不足,从上面抽取出来的:
- 相关规划在方法上分横纵,可能导致无法在复杂场景下获得可行轨迹。本文通过focusing on simple evasive maneuvers and providing safe fallback solutions来解决这一问题 → 对应Section VI.
- 计算CIS在动态环境中比较challenging
- 因为对未来所有的可能状态进行考虑,unsafe regions may grow rapidly。 导致的结果就是 刚规划的轨迹会被人为potentially unsafe,leaving AV without a safe trajectory
2. Method
首先定义了问题,及 相关sets,这一部分有点多,建议看原文,主要是介绍所有变量的意义等,定义了set Z R^1 是自车的possible disturbances z,运动的微分公式为:
\]
使用 \(\chi\left(t_{h}, x\left(t_{0}\right), u\left(\left[t_{0}, t_{h}\right]\right)\right)\) 来表示 此公式的解,也就是满足motion下的轨迹集合
## 2.1 Invariably Safe Sets 计算
在他们之前的工作中有提到[68],为计算 \(\mathcal S(t)\),我们遵循一下规定:
- Formal safe distances[79]:不管前方车辆状态如何 包括前方车辆急刹等情况;在这个距离下,我们总是能刹停下来
- Evasive distances[80]:这个距离下 即使前方车辆急刹,我们也可以通过向相邻车道转向来避免碰撞
后面ab给我解释,两公式用了点时间,首先有个条件:
\]
如果满足这个条件,那么安全距离为:
\]
其中前面是一个整体 即\(\frac{(v-0)^2}{2a}\);后面是另一个整体 在反应时间内的行驶相对距离 即 \(0+vt+\frac{1}{2}at^2\)
否则安全距离为: 即大家都以最大加速度减到速度为0的时候,外加一个自车的反应时间
\]
2.2 Safe& Evasive Distance Set
safe distance set
分横纵向考虑安全距离,纵向距离在[81,82] 二文中有详细考虑与证明:
\]
而这里主要解释横向的evasive distance [感觉翻译成逃逸 逃离距离都不太好 所以就用原文把],首先引入 \(d_{\mathrm{eva}}\) 作为车辆完全换道所需的横向距离,a为横向加速度
\]
同时考虑前方车辆在这个时间内的行驶距离(纵)
\]
evasive distance set
定义如下,证明在[80]
\]
Underapproximation of S
即前两者的set取并集,得到S
2.3 生成fail-safe Trajectories
纵向 Longitudinal Motion
首先是 纵向运动公式表示:\(x_{\text {lon }}=(s, v, a, j)^{T}\),纵向距离、速度、加速度、jerk;我们使用加加速度作为input,将车辆纵向运动描述为linear time-invariant system
\]
然后加入约束,a 纵向前后的车辆距离,b 车辆本身的最大小 速度、加速度和jerk
v_{\mathrm{min}}\leq &x_{\mathrm{lon}}^{(1)}(t) \leq v_{\mathrm{max}}\\ a_{\mathrm{min}}\leq &x_{\mathrm{lon}}^{(2)}(t) \leq a_{\mathrm{max}}\\ j_{\mathrm{min}}\leq &x_{\mathrm{lon}}^{(3)}(t) \leq j_{\mathrm{max}} \tag{10} \end{align*}
\]
我们演示了刹车,但是因为是>0的加速度,所以此处我们引入两个deceleration limits \(a_{\min }<a_{\lim , 2}<a_{\lim , 1}<0\),其中 \(\varsigma _{\mathrm{lon},1},\varsigma _{\mathrm{lon},2}\geq0\) 是slack variables 松弛约束 (JG: 优化的小trick 可以加速 更容易求解)
\]
纵向的cost
\]
横向 Lateral Motion
同理 横向运动表示:\(x_{\text {lat }}=(d, \theta, \kappa, \dot{\kappa})^{T}\),沿frenet坐标系下的离参考线的横向距离、orientation、曲率、自车曲率的变化
横向的运动描述为下列13公式,其中 \(u_{\mathrm{lat}}(t)=\ddot \kappa(t)\) 来源于 time-invariant linear
\]
对于collision free 将车辆看做三个圆,每个圆离参考线的距离可以用下列公式表示
\]
再加上一系列的和纵向类似的约束,就不在此赘述了
横向的cost function:
\]
生成Fail-Safe
首先是根据TTR生成初始状态,再由初始状态去计算接下来的fail-safe轨迹
下列公式中 \(\Delta_{cor}\)为由车辆中心到后轴中心的距离修正项,\(s_{min}\leq s \leq s_{max}\)
\]
\]
整体生成流程:
collision avoidance through braking
在初始状态下 能够紧急刹停的条件:Proposition 4
\]
如果碰撞一定会发生,那么guaranteed Time-To-Collision是:
\]
Evasice Acceleration可以由此表示:Proposition 5
\]
需要满足的距离曲线 示意
使用h段g的函数去近似安全距离 \(\Delta_{safe}\in\{\Delta_{safe,1},\Delta_{safe,2}\}\) 然后分速度区间去得到h段
为了将此加入到优化过程,可以表示为maximum function[88]
\]
然后加入纵向距离的约束中 公式(9)
\]
因为求解器无法求解带max的函数,所以加入h个小于等于的约束, h不应该太大 也不能太小,前者会增加计算负担,后者会有较大误差
\]
3. 实验及结果
使用了Python和C++,优化求解库使用的是:CVXPY, ECOS and CVXPY-CODEGEN
Invariably safe set of the scenario
然后主要是实验了几个特定的场景 去验证 fail-safe 的轨迹运行情况:
静态障碍物、前方车辆急刹、行人冲出
4. Conclusion
提出了fail-safe motion planning 来保证AV不会发生事故
对比于其他的verification,我们的方法是第一个能在arbitrary traffic situations使用的;同时保证了40ms内的计算时间,可以与任何其他的motion plan相结合
我们的方案并不会使AV在过度的保守策略中
如果相关法规被扩展,我们的verification也可以自动适应。通过提供的occupancy sets来捕获其他交通参与者的所有合法行为
碎碎念
一开始,ab说这篇算是保守策略的,也就是考虑最差情况;但是初读的时候发现他们在摘要就说了 不会采取过度保守策略,后面一开始没get到这个点,直到问jg的时候发现slack variable和weights的一些trick设计,也就是并不是 非0即1 而是可以超过约束
对于fail-safe的概念也是先由TTR生成状态,然后根据流程图去判断纵向刹停是否可以,不可以的话换横向避障;整体算是一个求解优化问题,只是约束条件等由一系列的状态去决定
赠人点赞 手有余香 ;正向回馈 才能更好开放记录 hhh
【论文阅读】TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Convex Optimization的更多相关文章
- 【论文阅读】Motion Planning through policy search
想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...
- 【论文阅读】PRM-RL Long-range Robotic Navigation Tasks by Combining Reinforcement Learning and Sampling-based Planning
目录 摘要部分: I. Introduction II. Related Work III. Method **IMPORTANT PART A. RL agent training [第一步] B. ...
- 【文献阅读】Automatic berthing for an underactuated unmanned surface vehicle: A real-time motion planning approach
(1)文章工作 This paper presents Extended Dynamic Window Approach (EDWA) for the automatic berthing of an ...
- 【论文阅读】CVPR2021: MP3: A Unified Model to Map, Perceive, Predict and Plan
Sensor/组织: Uber Status: Reading Summary: 非常棒!端到端输出map中间态 一种建图 感知 预测 规划的通用框架 Type: CVPR Year: 2021 引用 ...
- Motion Planning 是什么
前言与引用 这一个呢,主要是自己突然看一篇论文的时候不知道 为什么他提出的方法对于规划来说就是好的,规划又应该分为哪几个部分,解决的是哪几个部分的问题?带着这个问题,我就去搜:Motion Plann ...
- 【论文阅读】DSDNet Deep Structured self-Driving Network
前言引用 [2] DSDNet Deep Structured self-Driving Network Wenyuan Zeng, Shenlong Wang, Renjie Liao, Yun C ...
- [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion
[论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
随机推荐
- (更新中)gprMax项目代码分解:gprMax.constants.py、gprMax.exceptions
目录 1. 引言 2. gprMax.constants.py 3. gprMax.exceptions.py 4. 总结 Reference 1. 引言 本文对gprMax项目中的"gpr ...
- WebKit Inside: CSS 样式表的解析
CSS 全称为层叠样式表(Cascading Style Sheet),用来定义 HTML 文件最终显示的外观. 为了理解 CSS 的加载与解析,需要对 CSS 样式表的组成,尤其是 CSS Sele ...
- VueJS和Javascript实现文字上下滚动效果
一提到文字上下滚动,我们就会想到用不同的程序去实现,而且页面中有文字滚动会增加这个网页的互动和可信度. 1.Js最简单的方法是控制盒子的高度,使不断的重复添加 <html> <bod ...
- 5G MEC 之本地分流实现方式
目录 文章目录 目录 前言 LADN ULCL IPv6 Multi-homing(BP) 典型应用场景 前言 最近同事发表了一片非常棒的文章,笔者在此之上进行了补充,转发至此与大家分享. 本地分流作 ...
- debug技巧之使用Arthes调试
一.前言 大家好啊,我是summo,今天给大家分享一下我平时是怎么调试代码的,不是权威也不是教学,就是简单分享一下,如果大家还有更好的调试方式也可以多多交流哦. 前面我介绍了本地调试和远程调试,今天再 ...
- wblockCloneObjects 写块克隆的使用
写块克隆可以把当前数据库的实体写入到另一个dwg文件中去.用法根deepclone类似,不过deepclone只能复制到同一数据库中,而写块克隆是在不同数据库中进行复制的.写块克隆也算是深度克隆,能把 ...
- Android OpenMAX - 开篇
Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现.封装格式的了解,下到OMX IL层的实现.Decoder的封装,每一块都需要我们下很大的功夫学习.除此之外,我们还要 ...
- makedown快速入门
Makedown学习 Makedown 作为一个强大文本编辑语言,学习并熟悉应用是写好一篇优秀博客的基础 那么接下来我将介绍makedown语言最常用的几个语法 标题 +"space&quo ...
- 多项分布模拟及 Seaborn 可视化教程
多项分布 简介 多项分布是二项分布的推广,它描述了在 n 次独立试验中,k 种不同事件分别出现次数的离散概率分布.与二项分布只能有两种结果(例如成功/失败)不同,多项分布可以有 k 种(k ≥ 2)及 ...
- 安装图形化界面时候报错 Transaction check error: file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch
报错 Transaction check error:file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x8 ...