【自动驾驶】决策规划算法概述

2024-08-27 00:28

本文主要是介绍【自动驾驶】决策规划算法概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花

📚 系列专栏:【决策规划】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~


文章目录

  • 引言
  • 一、自动驾驶级别划分
    • 1、级别划分依据
    • 2、核心模块作用类比
  • 二、决策规划算法模块三大构成
    • 1、导航规划模块
    • 2、行为规划模块
    • 3、运动规划算法
  • 三、目录与大纲
  • 四、仿真环境
  • 参考资料


引言

  各位小伙伴们大家好,本篇博客开一个新的系列,自动驾驶决策规划算法。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。

  本篇博客是第一节序章,也就是整个教程的开篇,介绍决策规划的地位以及作用。


一、自动驾驶级别划分

  首先讲一下自动驾驶的六个级别,从 L 0 L0 L0 L 5 L5 L5

级别功能
L0没有任何自动驾驶功能
L1有横向和纵向自动驾驶功能,但横纵向无法联合作用
L2横纵向可以联合作用,但驾驶员必须对驾驶所发生的一切情况负责
L3横纵向可以联合作用,但对部分场景驾驶员不必负责
L4大部分道路都可以自动驾驶,大部分场景不需要驾驶员负责
L5完全自动驾驶

  这就是自动驾驶从 L 0 L0 L0 L 5 L5 L5 六个级别的区分。

1、级别划分依据

有两个区分等级的关键因素:

  • 车辆可实现的功能
  • 驾驶员所负的责任

  从 L 0 L 0 L0 L 2 L2 L2 主要是功能区分,从 L 3 L3 L3 L 5 L5 L5 主要是责任区分,区别不在于有什么花里胡哨的功能,而是在于责任划分。

  不同公司的 L 2 L2 L2 L 2 L2 L2 之间差距巨大,只要厂家宣称驾驶员需要负全责,那即使在功能上做到和 L 4 L4 L4 一样的功能,但只要说驾驶员需要负全责,本质上还是 L 2 L2 L2,而 L 2 L2 L2 本身是比较宽泛的概念。

  比如车辆只有 定速巡航 + 车道保持,就是非常简单的可以横纵向联合控制的称为 L 2 L2 L2

  车辆具有 L 5 L5 L5 级别的功能,但厂家宣称驾驶员必须负全责,即在自动驾驶过程中必须要盯着,准备随时接管,那么车也属于 L 2 L2 L2

  从简单的 L 2 L2 L2 进化成什么都能做的 L 2 L2 L2,其重要模块就是决策规划算法。

   有人可能会觉得决策规划的算法难道不是 L 4 L4 L4 应该做的事情嘛?为什么是 L 2 L2 L2 的模块?上面也说了, L 4 L4 L4 L 2 L2 L2 就是有功能上的区别,但最重要的区别还是在于责任。 L 4 L4 L4 在大多数情况下都是车负责,驾驶员不需要接管, 而 L 2 L2 L2 是一切情况都要人接管。

2、核心模块作用类比

模块类比
感知模块人的眼睛、耳朵
控制模块人的小脑、双脚
决策规划模块人的大脑

  功能越往上做越丰富、越复杂,决策规划的算法也就越重要,并且也越难。

  在 L 4 L4 L4 中,决策规划模块是整个模块中最重要的,也是最复杂、最难做的模块,难做到要把整个模块一分为三,还要加上地图模块,每个每块单独处理,才能勉强完成大脑的工作。


二、决策规划算法模块三大构成

  整个决策规划算法模块一分为三。

1、导航规划模块

  导航规划算法计算整体上从 A A A B B B 的最优路径,和机器人导航、手机导航的算法基本一致,长度在几公里到几百公里不等,该算法是整个规划模块中最成熟的算法。

  特点:导航算法给出粗略的、大范围的路径,但路径不考虑如何避障,也不考虑车辆动力学约束,所以规划出来的路径是不规则的折线,导航算法一般只需执行一次,只有遇到大范围的拥堵、施工、偏航情况才会再次执行。

2、行为规划模块

  行为规划算法又叫决策算法,决定车辆行驶意图。对于静态障碍物,往左绕还是往右绕?对于动态障碍物是减速避让还是加速超车,决策算法决定了车辆的行驶意图,是整个规划算法中最难做的部分。

  特点:给出车辆的行驶意图,指导车辆该避让还是该超车,该左转还是往右转,但决策并不给具体的运动建议,例如左转多少度或车辆加减速到多少。由于实际环境瞬息万变,所以决策算法需要有较高的执行频率,一般为 10 H z 10Hz 10Hz

  决策算法也需要有一定的稳定性,不允许在周围环境比较稳定的情况下,出现“朝令夕改”的现象,即决策算法在环境稳定时不允许出现决策指令的剧烈波动。除非环境发生变化,否则决策算法不允许频繁改变结果,这样会导致控制效果变得非常差。

3、运动规划算法

  运动规划算法是根据决策给出的行为意图,在相关的时空中搜索或优化出一条具有详细路径速度信息,且满足各约束条件的轨迹,并将轨迹发给控制模块去跟踪,轨迹长度一般在几米到几十米不等。

  特点:运动规划生成的轨迹是整个决策规划模块最终的输出,具有详细的路径、速度信息,且执行频率与决策频率相同,都是 10 H z 10Hz 10Hz

  运动规划也要有一定的稳定性,在环境不发生剧烈变动的情况下,运动规划的轨迹要基本一致。


三、目录与大纲

  本系列博客将详细讲解决策算法与运动规划算法,不讲导航算法,因为导航算法相对比较成熟。以 Apollo EM Planner 算法为例,本算法擅长处理复杂环境下的决策规划问题,也是 Apollo 默认的决策规划算法。

  注意EM Planner 是在Apollo 1.5 1.5 1.5 时加入,在 Apollo 6.0 6.0 6.0 时的 EM Panner 换了个名字叫 OnLine Planning。本系列博客所讲解的是最初 1.5 1.5 1.5 版的 EM Planner,当然思想上是殊途同归的,建议各位学完后要看一下 6.0 的 OnLine Planning。和最初的 EM Planner 相比有些变化。

  下面介绍本系列博客大概的目录和大纲:

章节内容
序章决策规划算法概述
第一章数学基础
第二章Apollo EM Planner 理论篇
第三章Apollo EM Planner 代码篇
终章决策规划算法总结
  • 第一章是必要的数学基础。
  • 第二章将详细解读 Apollo EM Planner 理论,到底是怎么解决决策规划问题的。
  • 第三章将具体的实践,写 Apollo EM Planner 程序的仿真。
  • 终章是决策规划算法的总结,具体讲 Apollo EM Planner 的优点和缺点,以及除了 EM Planner 之外的其他决策规划算法是怎么做的。

四、仿真环境

  目前代码环境是在 Windows 下做,软件采用 Prescan + Matlab + Carsim 三者联合。

  在熟悉 EM Planner 之后,再用 Linux 下的 C++EM Planner 代码。因为目前主流的规划算法是在 C++ 上写更好,不过对于初学还是先在 Windows 下做。

  本篇博客到此结束,下一节再见,欢迎关注!


参考资料

  自动驾驶决策规划算法序章 总纲与大致目录


后记:

🌟 感谢您耐心阅读这篇关于 自动驾驶决策规划算法概述 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

这篇关于【自动驾驶】决策规划算法概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110108

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同