图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

目录

  • 1 自动驾驶驶向何处?
  • 2 什么是运动规划?
  • 3 运动规划实战教程
  • 4 加入我们
  • 5 订阅需知

1 自动驾驶驶向何处?

自动驾驶,又称无人驾驶,是依靠计算机与人工智能技术在没有人为操纵的情况下,完成完整、安全、有效驾驶的一项前沿科技。

自动驾驶技术能够协调出行路线与规划时间,从而大程度提高出行效率,因此成为各国近年的一项研发重点。

在这里插入图片描述
自动驾驶分为五个等级

  • L1辅助驾驶
    依靠自适应巡航释放双脚但双手不能离开方向盘驾驶员仍需操控汽车
  • L2半自动驾驶
    驾驶员需要持续监控汽车行驶情况
  • L3高度自动驾驶
    驾驶员无需持续监控汽车但遇到一些情况驾驶员需根据系统要求介入车辆行驶
  • L4更高级别的自动驾驶
    在例如开高速或进入停车场的情况下系统自动控制汽车驾驶员无需监控汽车
  • L5最高级别的自动驾驶
    无人驾驶,此时无需驾驶员

百度创始人、董事长兼CEO李彦宏在2022世界人工智能大会上指出,目前L2级自动驾驶技术已经可以实现大规模商业化,接下来将继续向L3、L4发力。

在这里插入图片描述

自动驾驶这项前沿技术的底层逻辑是什么呢?在自动驾驶技术栈中,主要分为感知决策规划控制三个模块。

感知模块就像是人的眼睛和耳朵,负责对外部环境进行感知,包含定位、建图、传感器融合等技术;控制模块就像人的手脚,负责将指令传达到电机、引擎,包含鲁棒控制、模型预测控制等技术;决策规划模块就像人的大脑,基于接收到的感知信息进行行为预测、决策,并生成指令传达给控制模块。

在决策规划中,有一类技术称为运动规划,那么什么是运动规划呢?

2 什么是运动规划?

运动规划(Motion Planning)以最优性为核心,在环境中给定起点和终点的条件下,规划机器人无冲突行进的状态序列。运动规划框架如下所示,主要包含路径规划与轨迹规划两大组件。

在这里插入图片描述
那路径规划和轨迹规划有什么区别和联系呢?

  • 路径规划(Path Planning)

    以可达性为核心,基于路径约束(如障碍物),规划机器人首末位置间无冲突行进的最优路径序列。

  • 轨迹规划(Trajectory Planning)以稳定性和快速性为核心,基于运动学、动力学约束和路径序列,规划运动状态 以逼近全局路径。

一般地,路径规划的输入是全局静态环境,也称为全局规划(Global Planning);轨迹规划的输入是全局路径、动态环境和模型约束,通常在局部范围内进行动态避障和路径跟踪,也称为局部规划(Local Planning)

本专栏将重点介绍路径规划和轨迹规划技术,并且采用工程上常用的ROS C++以及仿真中常用的Python/Matlab三种语言对常见的规划算法进行实现,帮助读者理解原理。同时,辅以部分控制原理、传感技术、常见机器人运动学与动力学建模,弥补一些运动规划的底层知识,具体大纲如下

3 运动规划实战教程

🔥 专栏地址:运动规划实战精讲

🚀 第零章——自动控制原理

  • 控制原理 | Matlab控制系统仿真常用功能合集
  • 控制原理 | PID控制的三个参数如何影响控制效果?(附参数整定方法)
  • 控制原理 | 你真的分得清系统误差、随机误差和偶然误差吗?(含例题)
  • 控制原理 | 深刻理解傅里叶级数与傅里叶变换的关系
  • 控制原理 | 详细总结卡尔曼滤波原理+具体案例分析

在这里插入图片描述

🚀 第一章——常见机器人建模

  • 建模分析 | 图文详解D-H法(以SCARA机器人为例)
  • 建模分析 | 仿人机器人(五连杆、七连杆)拉格朗日动力学建模
  • 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真)
  • 建模分析 | 差速轮式移动机器人运动学建模(附Python/Matlab仿真)
  • 建模分析 | 阿克曼机器人运动学建模(附Python/Matlab仿真)

在这里插入图片描述

🚀 第二章——常用地图结构解析

  • 地图结构 | 图解占据栅格地图原理(附Matlab建图实验)
  • 地图结构 | 图解代价地图原理(附ROS C++仿真)
  • 地图结构 | 图解维诺图Voronoi原理(附C++/Python/Matlab仿真)
  • 地图结构 | 详解八叉树Octomap原理与Rviz可视化

在这里插入图片描述

🚀 第三章——全局规划之图搜索

  • 路径规划 | 图解A*、Dijkstra、GBFS算法的异同(附C++/Python/Matlab仿真)
  • 路径规划 | 图解跳点搜索JPS算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解Theta*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解Lazy Theta*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解动态A*(D*)算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解D* Lite算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 详解维诺图Voronoi算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 详解混合A*算法Hybrid A*(附ROS C++/Python/Matlab仿真)

在这里插入图片描述

🚀 第四章——全局规划之采样搜索

  • 路径规划 | 图解概率路图PRM原理及其参数分析
  • 路径规划 | 图解RRT算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解RRT-Connect算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解Informed RRT*算法(附ROS C++/Python/Matlab仿真)

在这里插入图片描述

🚀 第五章——智能算法

  • 路径规划 | 蚁群算法图解与分析(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解粒子群算法PSO(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解遗传算法GA(附ROS C++/Python/Matlab仿真)

在这里插入图片描述

🚀 第六章——局部路径规划

  • 轨迹规划 | 图解路径跟踪PID算法(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解最优控制LQR算法(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解模型预测控制MPC算法(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解动态窗口算法DWA(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解分析人工势场算法APF(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解TEB算法(附ROS C++/Python/Matlab仿真)

在这里插入图片描述

🚀 第七章——曲线生成与轨迹规划

  • 曲线生成 | 基于多项式插值的轨迹规划(附ROS C++/Python/Matlab仿真)
  • 曲线生成 | 图解贝塞尔曲线生成原理(附ROS C++/Python/Matlab仿真)
  • 曲线生成 | 图解三次样条曲线生成原理(附ROS C++/Python/Matlab仿真)
  • 曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)
  • 曲线生成 | 图解B样条曲线生成原理(附ROS C++/Python/Matlab仿真)
  • 曲线生成 | 图解Dubins曲线生成原理(附ROS C++/Python/Matlab仿真)
  • 曲线生成 | 图解Reeds-Shepp曲线生成原理(附ROS C++/Python/Matlab仿真)

在这里插入图片描述

🚀 第八章——趣味应用

  • 趣味应用 | 硬核,你见过机器人玩“密室逃脱”吗?(附代码)
  • 趣味应用 | 硬核,机器人只需5秒就跟踪上了爱心曲线
  • 趣味应用 | 硬核,这年头机器人都开始自学“倒车入库”了
  • 趣味应用 | 工程师的浪漫:用机械臂画一个爱心

在这里插入图片描述

4 加入我们

目前博主正在组建机器人技术交流群,群中成员是有明确共同目标,共同愿景的,这样才能共同成长。所以如果苦于闭门造车、无人交流,就请加入我们(下方名片),让我们一起从理论到实践攻克运动规划,为从事相关工作或科研打下基础!

在这里插入图片描述

在这里插入图片描述
当然群里也配套长期更新的资源福利等你领取!

在这里插入图片描述

5 订阅需知

  • 上面给出的是教程的大致大纲,后面可能会有顺序和内容的调整,但可以保证内容量只增不减
  • 各个算法基本都提供C++/Python/Matlab三个版本的实现,便于应对各种需求;但同时工程量较大,故后期会涨价
  • 更新频率为两周1更,篇篇精品

🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

2.1.2 事件驱动reactor的原理与实现

LINUX 精通 2 day14 20240513 day15 20240514 算法刷题:2维前缀和,一二维差分 耗时 135min 习题课 4h 课程补20240425 耗时:4h 课程链接地址 回顾 怎么学0voice课网络io——一请求一线程,一个client一个连接再accpet分配io f…

linux系统修改网卡名称

说明: 因操作过程需要停用网卡,导致ssh远程连接不上,需要控制台登录操作。 测试环境: CentOS7.9、8.2虚拟机 Suse15 SP4虚拟机 操作步骤: 方法一: 1、 查看网卡当前名称及状态 ip a2、 将网卡状态从启用…

记一次苹果appstore提审拒审问题1.2

有关苹果appstore审核1.2问题的处理方案 2023.8.6苹果回复 Bug Fix Submissions The issues weve identified below are eligible to be resolved on your next update. If this submission includes bug fixes and youd like to have it approved at this time, reply to thi…

Flutter 中的 CupertinoActionSheet 小部件:全面指南

Flutter 中的 CupertinoActionSheet 小部件:全面指南 在Flutter中,CupertinoActionSheet是用于在iOS风格的应用中显示动作面板的组件。它提供了一个简洁的界面,让用户可以快速从一组选项中做出选择。CupertinoActionSheet通常伴随着一个或多…

RK3566(泰山派):GP7101背光驱动

RK3566(泰山派):GP7101背光驱动 文章目录 RK3566(泰山派):GP7101背光驱动GP7101背光驱动电路配置i2c1设备树创建驱动编写Makefilegp7101_bl.c驱动触摸I2C驱动框架。驱动中的结构体probe函数devm_backlight_…

过滤器Filter和拦截器Interceptor实现登录校验

一.过滤器 Filter过滤器可以把对资源的请求拦截下来,从而实现一些登录验证的功能 1.Filter的快速入门 1.定义Filter:定义一个类,实现Filter接口,并重写其所有方法。2.配置 public class dofilter implements Filter {Override //初始化只…

【JAVA】数组的定义与使用

前一篇我们讲述了方法的使用和递归,这一讲 我们来叙述一下数组相关知识点。最近更新较快,大家紧跟步伐哦~~ 1. 数组的基本概念 1.1 为什么要使用数组 假设现在要存5个学生的javaSE考试成绩,并对其进行输出,按照之前掌握的知识点&…

obsidian 外观设置解毒

前言 一入obsidian深似海,外观设置也是五花八门,仿佛回到读书时期折腾桌面一样。 我对比了AnuPpuccin、minimal和其他的一些外观主题,设置都太复杂了,尤其是需要调整CSS文件,最后发现一款,非常好用&#…

数据传送指令

数据传送:负责把数据、地址或立即数传送到寄存器或存储单元中 数据传送指令可以分为四个类型:通用数据传送指令、地址传送指令、标志位传送指令、专用累加器传送指令(输入、输出指令) 一、通用数据传送指令 (一)传送字或字节指…

前端框架-echarts

Echarts 项目中要使用到echarts框架&#xff0c;从零开始在csdn上记笔记。 这是一个基础的代码&#xff0c;小白入门看一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" co…

刷题之找到字符串所有字母异位词

找到字符串所有字母异位词 滑动窗口。滑动窗口大小为待比较数组的大小。 class Solution { public:vector<int> findAnagrams(string s, string p) {//滑动窗口vector<int>result;if(s.size()<p.size())return result;vector<int>pnum(26,0);//记录p的字…

链表----带环链表快慢指针进阶版

1.带环链表及其拓展 &#xff08;1&#xff09;这个题目组要就是进行判断这个链表是否带环&#xff0c;使用的是布尔类型作为返回值&#xff1b; &#xff08;2&#xff09;我们这里的思路是使用的快慢指针&#xff0c;快指针一次走2步&#xff0c;慢指针一次走1步&#xff0c…

iOS Xcode 升级Xcode15报错: SDK does not contain ‘libarclite

一 iOS Xcode 升级Xcode15报错: SDK does not contain libarclite 1.1 报错信息 SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib/arc/libarclite_iphonesimulator.a; try increasin…

Sass(Syntactically Awesome Stylesheets)是一种强大的CSS预处理器

Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;是一种强大的CSS预处理器&#xff0c;它旨在简化CSS的编写&#xff0c;并增强其功能。它让开发者能够使用变量、嵌套规则、混入&#xff08;mixins&#xff09;、继承等高级功能&#xff0c;从而编写更加结构化和…

Linux基础知识面试题

1. 请描述Linux操作系统的安装过程&#xff0c;并说明其中的关键步骤。 Linux操作系统的安装过程通常涉及以下几个关键步骤&#xff1a; 准备安装介质&#xff1a;需要从官网或者其他可靠来源下载Linux发行版的ISO镜像文件&#xff0c;并制作一个启动U盘或者烧录到DVD中。现在…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (九)

LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四) 基于 LlaMA…

Java面向对象——多态

即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的&#xff0c;但可以指向对象的引用的类型有很多&#xff08;父类&#xff0c;有关系的类&#xff09;。 多态存在的条件&#xff1a; 1. 有继承关系&#xff1b; 2. 子类重写父类…

linux 卸载Nginx

在Linux中卸载Nginx&#xff0c;通常涉及几个关键步骤&#xff0c;包括停止Nginx服务、卸载依赖库、删除文件和清理安装包。具体的命令可能因Linux发行版的不同而略有差异。以下是一个通用的卸载流程&#xff1a; 1、停止Nginx服务 在卸载Nginx之前&#xff0c;需要先停止Ngi…

思维导图软件哪个好?5个软件教你自己快速制作思维导图

思维导图软件哪个好&#xff1f;5个软件教你自己快速制作思维导图 思维导图软件在现代生活和工作中扮演着重要的角色&#xff0c;它们可以帮助人们整理思维、规划项目、记录笔记等。以下是五款值得推荐的思维导图软件&#xff0c;它们各有特色&#xff0c;可以帮助您快速制作思…

嵌入式Linux:编译和使用Protobuf库

目录 1、开发环境和工具 2、安装和编译Protobuf、Protobuf-C库 3、编写和编译proto文件 4、修改makefile文件 5、测试示例 6、参考资料 Protobuf&#xff08;Protocol Buffers&#xff09;是由 Google 开发的一种轻量级、高效的结构化数据序列化方式&#xff0c;用于在不同应用…