ADAS虚拟车道边界生成
ADAS虚拟车道边界生成
Virtual Lane Boundary Generation for Human-Compatible Autonomous Driving: A Tight Coupling between Perception and Planning
论文地址:
http://faculty.cs.tamu.edu/dzsong/pdfs/Binbin_LDRGT_IROS2019_V19.pdf
摘要
现有的无人驾驶(AV)导航算法将车道识别,避障,局部路径规划和车道跟踪视为单独的功能模块,从而导致驾驶行为与人类驾驶员不兼容。必须设计与人类兼容的导航算法以确保运输安全。开发了一个新的紧密耦合的感知计划框架,该框架结合了所有这些功能以确保人类兼容。使用GPS-相机-激光雷达传感器融合,可以检测实际车道边界(ALB),并提出可用性,合理性,可行性(ARF)三重测试,以确定应该生成虚拟车道边界(VLB)还是遵循ALB。如果需要,可以使用动态可调的多目标优化框架来生成VLB,该框架考虑了避障,轨迹平滑度(满足车辆运动动力学约束),轨迹连续性(避免突然运动),GPS跟踪质量(执行全局计划)以及车道跟随或部分方向跟随(达到人类期望)。因此,车辆运动比现有方法更具人类兼容性。已经实现了算法,并在开源数据下进行了测试,结果令人满意。
贡献
1. 提出了一个新的紧密耦合的感知计划框架,以提高人类的适应性。
2. 使用GPS-相机-雷达多模式传感器融合,可以检测实际的车道边界(ALB),并提出可用性-共振能力可行性测试,以确定是否应该生成虚拟车道边界(VLB)还是遵循ALB。
3. 必要时,可使用可动态调整的多目标优化框架生成VLB,该框架考虑避障,轨迹平滑度(满足车辆动力学动力学约束),轨迹连续性(避免突然运动),GPS跟踪质量(执行全局计划)和车道跟踪或部分跟随(以满足人类期望)。由此产生的轨迹比现有方法更具人类兼容性。
4. 随着越来越多的公司发展自主车辆(AVs),重要的是确保AVs的行为与人类相容,因为AVs将在未来的岁月里与人类司机共享道路。当为AV计划运动时,可以调整速度和许多可能的轨道,但并非所有的计划都能保证人的相容性,需要理解人工决策过程。人类司机比处理复杂情况时的视听设备。人力司机可避开障碍物并仍遵守车道标线(LMs)在很大程度上是交通锥。人类司机可以在适当的场景中覆盖车道边界(LBs):车道标记(LMs)可能消失或被施工堵塞或停放车辆,LMs可能与行驶方向,车辆可能行驶过快,因此暂时无法跟上LMs等。事实上,感知之间存在着紧密的耦合用于场景理解和运动规划,包括在多个目标下寻找最优轨迹。
图1 生成用于自动驾驶的虚拟车道边界,以确保在复杂的道路条件下实现人类兼容驾驶:(a)当前车道缺少左侧车道边界,(b)交通锥改变了道路,(c)停放的汽车阻塞了街道,(d)有完全没有LM。绿色曲线是的算法生成的VLB(最好以彩色显示)。
图2 系统图。实心星形表示姿势估计的输出,它也是连续LB生成和LB投影的输入。
图3 六种不同场景的示例算法输出(最好以彩色显示)。
示例输出如图3所示。绿色面具,面积是算法检测到的自由空间。很明显这条路指向,谷歌地图太糟糕了,不能直接用来导航,如紫色线条质量差所示的指南。什么时候?比较的算法输出和GPS记录,人类驾驶,蓝线与图3(e)中唯一例外的红线。注意红色,由于轨迹不同,直线超出蓝线,长度并不意味着他们不同意。甚至在图3(e)中,蓝线和红线都是可行的选择。在任何情况下算法都可以生成符合人类的期望。
表1 VLBS上的KITTI数据集
图4 不同组成部分对LCC成本的贡献。
Conclusion
本文开发的一种新的紧密耦合,使AVs能够考虑的感知和规划框架,同时产生多个相互冲突的目标,与人类相容的导航轨迹。利用激光雷达探测自由空间的前期工作,融合和建议的ARF测试来确定AV,应该简单地遵循ALBs或者通过将车辆动力学约束、避障,平稳运动,GPS轨迹跟踪,多目标优化框架中的LMs,针对不同道路场景的动态可调权重。本文的算法和测试结果,确认了设计方案。今后将进行更多的物理实验, 加入更多的功能,如速度,计划做出更人性化的导航决策与人类相容。
ADAS虚拟车道边界生成的更多相关文章
- 车道线识别/Opencv/传统方法
车道检测(Advanced Lane Finding Project) 实现步骤: 使用提供的一组棋盘格图片计算相机校正矩阵(camera calibration matrix)和失真系数(disto ...
- 多加速器驱动AGX的目标检测与车道分割
多加速器驱动AGX的目标检测与车道分割 Object Detection and Lane Segmentation Using Multiple Accelerators with DRIVE AG ...
- GIS案例学习笔记-三维生成和可视化表达
GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...
- 深刻理解 React (一) ——JSX和虚拟DOM
版权声明:本文由左明原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/155 来源:腾云阁 https://www.qclou ...
- 虚拟路由冗余协议VRRP
一.VRRP简介 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网 ...
- 虚拟Dom详解 - (一)
随着Vue和React的风声水起,伴随着诸多框架的成长,虚拟DOM渐渐成了我们经常议论和讨论的话题.什么是虚拟DOM,虚拟DOM是如何渲染的,那么Vue的虚拟Dom和React的虚拟DOM到底有什么区 ...
- 聊一聊React中虚拟DOM
1. 什么是虚拟 DOM 在 React 中实际上是 render 函数中return 的内容会生成 DOM,return 中的内容由两部分组成,一部分是 JSX ,另一部分就是 state 中的数据 ...
- VRRP(Virtual Router Redundancy Protocol) 虚拟路由器冗余协议简介
因工作中使用Keepalived配置Nginx代理和MySQL代理的高可用,而Keepalived是VRRP协议在linux上的软件实现.因此了解了下VRRP的基础. 1. VRRP技术的引入 随着I ...
- SolidWorks242个使用技巧
1 您可以使用 CTRL+TAB 键循环进入在 SolidWorks 中打开的文件. 2 使用方向键可以旋转模型.按 CTRL 键加上方向键可以移动模型.按 ALT 键加上方向键可以将模型沿顺时针或逆 ...
随机推荐
- Python中的Pandas模块
目录 Pandas Series 序列的创建 序列的读取 DataFrame DataFrame的创建 DataFrame数据的读取 Panel Panel的创建 Pandas Pandas ( Py ...
- Python中的可迭代Iterable和迭代器Iterator
目录 Iterable可迭代对象 如何判断对象是否是可迭代对象Iterable Iterator迭代器 如何判断对象是否迭代器Iterator 将Iterable转换成Iterator Iterabl ...
- C++ Socket 简单封装
以下代码一部分来自于<网络多人游戏架构与编程>, 其它的都是我瞎写的. 备忘. 一个简单的Socket封装,没有做什么高级的操作(比如IO完成端口等等). 1 #pragma once 2 ...
- Java中实现某方法和重写某方法的区别
实现(implements) 实现一个方法,在实现某个接口,或者是继承某个抽象类,在接口和在抽象类中定义的方法,本身是没有实现的,也就是没有方法体,你在当前类中就需要去实现这个方法. 重写(overl ...
- 二、postman断言及正则表达式取值
postman老式断言与新式断言总结:本文以微信开发者文档为例 断言处如图所示 一.老式断言 老式断言总结:var variables相当于代码中定义的变量,test['']=true;相当于pyth ...
- 基于ray的分布式机器学习(一)
基本思路:1.对数据分块,使用多个worker分别处理一个数据块,每个worker暴露两个接口,分别是损失计算的接口loss和梯度计算的接口grad:2.同时定义full_loss和full_grad ...
- 10个 解放双手的 IDEA 插件,这些代码都不用写(第二弹)
本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 鸽了很久没发文,不写文章的日子真的好惬意,每天也不用愁着写点什 ...
- SparkSQL电商用户画像(四)之电商用户画像数据仓库建立
六. 电商用户画像数据仓库建立 7.1 数据仓库准备工作 为什么要对数据仓库分层?星型模型 雪花模型 User----->web界面展示指标表 l 用空间换时间,通过大量的预处理来提升 ...
- 用fseek和ftell获取文件的大小
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char ...
- C#是怎么跑起来的
解释流程前,需要了解一些基本的概念. 基本概念解释: CPU :中央处理器,计算机的大脑,内部由数百万至数亿个晶体管组成,是解释和运行最终转换成机器语言(二进制代码)的地方.机器语言是通过CPU内存的 ...