智能驾驶规划控制理论学习01-自动驾驶系统介绍、规划控制模块介绍

目录

一、自动驾驶系统概述

二、规划控制模块介绍

1、规划控制架构     

2、规划控制目标

3、Cartesian和Frenet坐标系        

4、Frenet坐标系概览      

5、解耦式规划和联合式规划


一、自动驾驶系统概述

        目前被国内外广为接受的自动驾驶级别划分标准是 SAE(国际汽车工程学会)分级,从 Level-0~Level-5 总计6 个级别,Level-0 为最低级别,Level-5 为最高级别。限于法规等政策因素,目前绝大多数车企都处在L2或是L2+水平,随着L3自动驾驶相关法规的出台,在今年年底有望出现L3水平的自动驾驶车辆。        

         这里不再过多介绍自动驾驶的各个等级,主要介绍autoware官网给出的自动驾驶软件系统框架。

        autoware是一款开源的自动驾驶框架,包含了感知、规划、控制等各个模块的算法实现官网链接https://www.autoware.org。

  • Sensing 模块:收集自动驾驶车辆上的雷达、相机等各种传感器得到的数据;
  • Localization 模块:将传感器数据和高精度地图结合,用于确定自动驾驶车辆的精确位置和方向;
  • Perception 模块:检测、识别和跟踪物体的运动(autoware 框架中将prediction 模块放在perception 模块中,因为二者的实现大致类似,都是基于深度学习、强化学习等方式);
  • Planning 模块:使用感知信息计算车辆沿特定道路的路径,以避免各种物体和障碍物;
  • Control 模块:规划信息会通过control 模块转换成具体准确的车辆控制信号(如转向角度、制动和加速),并通过下一个模块Vechile Interface发送;
  • Vechile Interface 模块:根据车辆的运动学特性,将控制信号转换成命令;
  • Map Data 模块:利用高精度地图信息,可以使车辆更好地理解环境信息。

二、规划控制模块介绍

1、规划控制架构     

        如下图所示是规划控制的基本架构,下面对各部分进行介绍: 

  •  Route Planning 是路由规划,也叫全局规划,通过用户给定的目的地和道路网络数据生成一条最优路径(与手机导航类似),将一系列的路点数据发送给下游的行为决策模块;
  • Behavior Layer 中给出了五种状态场景,同时行为决策还要对感知到的动态障碍物进行决策引导,将Motion Specification运动指令发送给运动规划模块;
  • Motion Planning 的目标是生成一条安全的、舒适的符合车辆运动学约束的运动轨迹,将这条光滑的、高质量的运动轨迹下发给下游控制模块;
  • Local Feedback Control 结合轨迹信息以及其他模块给出的车辆运动状态的估计,做出轨迹跟踪的控制,同时生成一系列车辆具体控制的指令给下游的底盘(如方向盘转角、油门踏板、刹车指令)。

        以上就是PNC模块简单的介绍。

2、规划控制目标

        规划

  • 安全性:pnc模块输出的运动轨迹能够避免和静态障碍物和动态障碍物(交通参与者)发生碰撞;
  • 舒适性:运动轨迹足够光滑;
  • 动力学可行性:规划给出的轨迹可以被下游的控制模块执行。

        控制

  • 跟踪精度:尽可能减少跟踪误差;
  • 稳定性:控制的指令足够平滑;
  • 鲁棒性:控制模块要有一定抵御外界干扰的能力。

3、Cartesian和Frenet坐标系        

        Cartesian坐标系是一种全局坐标系(地图坐标系),Frenet坐标系又叫s-l坐标系。

        将Cartesian坐标系转化为Frenet坐标系可以将车辆的运动解耦成两个一维运动:纵向运动(沿着参考线方向)和侧向运动(垂直参考线方向)。

4、Frenet坐标系概览      

        这部分只是简单介绍Frenet坐标系相比于Cartesian坐标系的优缺点,具体的内容以后再进行讲述。

        优点:可以更好地理解运动场景,因为大部分运动场景下车辆都沿车道中心线行驶;

        缺点

  • 需要一条足够光滑的坐标系(至少到达曲率级别的连续性); 
  • 曲率约束在Frenet坐标系中比较复杂;
  • 车辆在投放到Frenet坐标系中存在几何形状上的变形,如上图全部简化为矩形,因此要想实现精确的碰撞检测是比较困难的。

        总之,Frenet坐标系的引入只是为自动驾驶提供了一种可能的解决方案,但是目前并没有明确哪种坐标系更好。

5、解耦式规划和联合式规划

        在时空维度上对车辆直接进行规划难度是比较高的,因此出现了解耦式规划和联合式规划。

        解耦式规划分为横纵解耦和路径-速度解耦。

  • 横纵解耦是对横向运动和纵向运动分别做一系列的五次多项式描述,将横向运动的多项式曲线和纵向运动多项式曲线结合(进行加权处理)选择最优的策略;
  • 路径-速度解耦(以百度apollo的motion planner为例):        

        投影:将障碍物等信息投影到Frenet坐标系中;

         决策:利用动态规划的方法获得一个粗略解,对应着每个障碍物的决策信息(横向上的绕行、纵向上的让行或强行);

        控制:基于二次规划的优化方式生成平滑的曲线。

        对于联合式规划而言,直接在时空维度上对车辆运动状态进行分析:

         如图中对应的1为强行行为,行为2对应则是跟车,再转换到右侧的3维空间。

        联合式规划主要针对行为规划和运动规划两部分:

        行为规划是要发现多种策略性的动作控制(如车道保持、车道变换、让行等)、

        运动规划主要是产生同时符合时间和空间维度要求的平滑和安全的轨迹。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nano 33 BLE Sense Rev2学习第二节——手机蓝牙接收数据

Nano 33 BLE Sense Rev2需要下载的程序 #include <ArduinoBLE.h> #include "Arduino_BMI270_BMM150.h"float x, y, z; int degreesX 0; int degreesY 0;BLEService ledService("19B10010-E8F2-537E-4F6C-D104768A1214"); // create service// cre…

XSS漏洞--概念、类型、实战--分析与详解[结合靶场pikachu]

目录 一、XSS概念简述 1、XSS简介&#xff1a; 2、XSS基本原理&#xff1a; 3、XSS攻击流程&#xff1a; 4、XSS漏洞危害&#xff1a; 二、XSS类型&#xff1a; 1、反射型XSS&#xff1a; 2、存储型XSS&#xff1a; 3、DOM型XSS&#xff1a; 三、靶场漏洞复现(pikach…

LVS四层负载均衡集群

简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩博士主导的开源负载均衡项目&#xff0c;目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案&#xff0c;终端互联网用户从外部访…

diffusion model (扩散模型)原理

扩散模型分为正向过程和反向过程。 正向过程为一点点在图片上添加噪声的过程&#xff0c;反向过程为去噪声的过程。 图片的生成就是反向过程&#xff0c;给一张高斯噪声图片&#xff0c;逐步去噪生成图片。 扩散模型和VAE的区别&#xff0c; VAE是一步到位的&#xff08;通过…

一个基于差异同步数据库结构的工具 - Skeema

本文是 GO 三方库推荐的第 5 篇&#xff0c;继续介绍数据库 schema 同步工具&#xff0c;我前面已经写了两篇这个主题的文章。系列查看&#xff1a;Golang 三方库。 今天&#xff0c;推荐是的一个基于差异实现数据库 schema 迁移的工具库 - skeema&#xff0c;同样由 Go 实现。…

数字孪生10个技术栈:数据采集的八种方式

大家好&#xff0c;我是贝格前端工场&#xff0c;上期讲了数字孪生10个技术栈&#xff08;总括&#xff09;:概念扫盲和总体介绍&#xff0c;获得了大家的热捧&#xff0c;本期继续分享技术栈&#xff0c;大家如有数字孪生或者数据可视化的需求&#xff0c;可以联络我们。 一、…

【好书推荐-第九期】Sora核心技术相关书籍《扩散模型:从原理到实战》与《GPT 图解:大模型是怎样构建的》:Sora的两大核心技术,都藏在这两本书里!

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

解决DBeaver执行脚本报错No active connection

解决DBeaver执行脚本报错No active connection 1、报错问腿 2、问题解决 2.1、右键点击该数据库&#xff0c;选择SQL编辑器&#xff0c;选择新建SQL编辑器&#xff0c;然后将sql语句复制过去。 或者左击选中数据库后直接使用快捷键 Ctrl] 2.2、在Project-General中找到Scr…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter测试的详细解析

3.2.4.3 自定义starter测试 阿里云OSS的starter我们刚才已经定义好了&#xff0c;接下来我们就来做一个测试。 今天的课程资料当中&#xff0c;提供了一个自定义starter的测试工程。我们直接打开文件夹&#xff0c;里面有一个测试工程。测试工程就是springboot-autoconfigurat…

常见排序算法解析

芝兰生于深林&#xff0c;不以无人而不芳&#xff1b;君子修道立德&#xff0c;不为穷困而改节 文章目录 插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序 交换排序冒泡排序快速排序优化挖坑法前后指针法非递归版 归并排序递归非递归 总结 插入排序 插入排序&#…

【编程小记】在Windows下使用C/C++代码判断一个文件是否被其他进程占用

在Windows下使用C/C代码判断文件是否被占用 一、原理二、函数简单介绍三、实例代码 一、原理 在Windows下有一个Windows API叫做CreateFile&#xff0c;通过这个接口我们可以创建或打开文件&#xff0c;我们打开文件时可以采用独占模式进行打开&#xff0c;如果能够打开文件说…

Word Game

题目链接&#xff1a;Problem - C - Codeforces 解题思路&#xff1a; 用map存字母和出现的次数&#xff0c;然后遍历三个字母数组&#xff0c;如果map值为1&#xff0c;则加三分&#xff0c;为2加1分&#xff0c;否则不加分。 下面是c代码&#xff1a; #include<iostrea…

第41期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Linux学习-二级指针的使用

目录 ###指针传参时要用二级指针 ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的地址) ###指针传参时要用二级指针 char *str[5]; int Fun(char **ppstr,int len); ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的…

#微信小程序创建(获取onenet平台数据)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a;创建一个小程序&#xff08;http get获取onenet平台数据&#xff09; 3.记录&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1eOd-2EnilnhPWoGUMj0fzw 提取码: 2023 &#xff08;1&#xff09;新建一个工…

【C++STL详解 —— string类】

【CSTL详解 —— string类】 CSTL详解 —— sring类一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、…

2024年腾讯云发红包了,可用于抵扣订单金额,你们领了吗?

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…

回溯算法01-组合(Java)

1.组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]]示例 2&#xff1a; 输入&#x…

VMware虚拟机安装Centos7图解,提供软件包镜像(详细安装,小白入门必看)

目录 1. 安装vmware软件 2. 下载centos7镜像 3. 使用镜像安装centos操作系统 3.1 创建新的虚拟机 3.2 开机安装系统 4. 尝试网络连通性 5. 配置静态ip地址 1. 安装vmware软件 下载链接&#xff08;包含激活码&#xff09;&#xff1a;VMware https://www.alipan…

C语言初学10:共同体

一、共同体作用 提供一种在相同内存位置存储不同数据类型的有效方式 二、共同体定义 union [union tag] //tag是可选参数 {member definition;member definition;...member definition; } [one or more union variables]; // 共同体变量是可选的 三、共同体占用空间大小 #…