【论文阅读】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:/ ...
随机推荐
- docker 权限问题 Got permission denied while trying to connect to the Docker daemon socket at 。。。
非root用户运行docker命令报如下错误 说明没有权限 haima@haima-PC:/usr/local/docker/docker_compose_efk$ docker ps -a Got ...
- gin-vue-admin 03 项目打包上线
目录 作者视频 思路 环境要求 1. 配置nginx 2.打包前台vue代码 3.打包后台go代码 4. 上传代码到服务器 5. 后台运行power 6. 访问后台 开发场景: 1. nginx 配置 ...
- JavaScript实现全选选项框的功能和鼠标划入出现下拉框的功能--JavaScript实例集锦(初学)
有一些论坛,文章后台编辑都会出现选择框的操作. 1.实现选项框全选和取消全选的功能: 代码实现: <!DOCTYPE html> <html> <head> < ...
- 从零开始写 Docker(十四)---重构:实现容器间 rootfs 隔离
本文为从零开始写 Docker 系列第十四篇,实现容器间的 rootfs 隔离,使得多个容器间互不影响. 完整代码见:https://github.com/lixd/mydocker 欢迎 Star ...
- java学习之旅(day.21)
HTML 初识HTML HTML: Hyper Text Markup Language(超文本标记语言) 超文本包括文字.图片.音频.视频.动画等 W3C标准 W3C :World Wide Web ...
- Spring 面向切面编程AOP 详细讲解
1. Spring 面向切面编程AOP 详细讲解 @ 目录 1. Spring 面向切面编程AOP 详细讲解 每博一文案 2. AOP介绍说明 2.1 AOP的七大术语 2.2 AOP 当中的 切点表 ...
- EDP .Net开发框架--业务模型
平台下载地址:https://gitee.com/alwaysinsist/edp 业务模型概述 业务模型管理中所涉及的业务模型,业务模型的属性,业务模型的视图都是可以通过权限设置来实现数据的行(视图 ...
- C# 泛型里使用四则运算的办法,委托的妙用
直接上代码 public static class TestGenricCalc { public static T Clac<T>(T t1, T t2,Func<T,T,T> ...
- java 反射——任意类型数组扩容
//java object[]无法转换为原对象类型,可以使用反射来做. //这里的参数不是传object[] 而是传object. public Object GoodArrayGrow(Object ...
- Java8新特性default关键字,引出Java多继承问题
概述 最近在看JDK集合的源码时,在Collection接口中发现了default关键字,并且惊奇的发现接口中的方法居然包含方法体,这顿时让我产生兴趣,为此我也稍微研究了一下default关键字. 很 ...