一起自学SLAM算法:11.3 路径规划

news2024/11/15 21:08:39

连载文章,长期更新,欢迎关注:

路径规划其实就是在回答图11-1中机器人提出的第3个问题“我该如何去”,不管是在已知地图上导航或是在未知环境下通过一边探索地图一边导航,路径规划其实就是在地图上寻找到一条从起点到目标点可行通路的问题。广义上的路径规划就是一种问题求解策略,比如魔方还原、积木拼图、计算机网络通信中的路由通路选择、数控机床车刀动作线、机械臂抓取动作、机器人自主导航等都蕴含着路径规划思想[7]p4~26。

对于机器人自主导航问题,通常在给定的栅格地图上进行路径规划。如图11-8所示,通过对整个栅格地图遍历很容易找到一条从A到B的路径,比如路径L1或L2,而且这样的路径并不唯一。在实际机器人导航中,不仅仅是找到一条可通行路径就完了,还必须考虑路径的各项性能(比如长度、平滑性、碰撞风险、各种附加约束等)。由于在二维栅格地图和三维栅格地图上的路径规划原理是一样的,为了方便讨论,下面就以二维栅格地图为例来介绍一些具体的路径规划算法。

 图11-8  路径规划

11.3.1 常见的路径规划算法

机器人自主导航中比较常用的路径规划算法包括Dijkstra、A*、D*、PRM(Probabilistic Roadmaps)、RRT(Rapidly-exploring Random Tree),另外还有遗传算法、蚁群算法、模糊算法等[8]。

1.基于图结构的路径搜索

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

2.基于采样的路径搜索

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

11.3.2 带约束的路径规划算法

通常路径规划问题的解并不唯一,对于导航中的路径规划来说就是存在多条可行的路径,如图11-8所示。在实际应用中,需要依据某些准则从多条可行的路径中挑选出最合适的一条路径,这就是带约束的路径规划。

1.什么是约束

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

2.几何约束

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

3.微分约束

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

11.3.3 覆盖的路径规划算法

 (先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

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

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

相关文章

CMMI3-5级如何高效落地?——CMMI落地4大工具

为了助力CMMI3-5级高效落地,近日CoCode旗下Co-ProjectV3.0智能项目管理平台全面升级,CMMI落地4大工具正式上线:CMMI成熟度自测工具、量化管理工具(组织级过程改进工具和量化项目管理工具)、组织级过程资产库。 01、CMM…

年后创业,该如何选择适合年轻人的小成本创业项目?

2023年创业大潮即将来袭,疫情政策的放开,会让越来越多的年轻人选择创业。单纯的工作已经不能满足年轻人的生活需求,那无经验、无人脉的年轻人该如何选择适合自己的创业项目?小编在这里总结了几点,适合年轻人的小成本项…

Android Kotlin 多线程编程 server

参考: 《第一行代码 第三版》 10.1 service 是什么 Service是实现程序后台运行的解决方案,适合执行非交互,后台预先的任务,即使用户打开其他应用,Service也能够正常运行 Service需要内部手动创建子线程 10.2 多线程编程 用法&a…

Makefile学习⑨:Makefile中的等号和shell命令的使用

Makefile学习⑨:Makefile中的等号和shell命令的使用 Makefile中的等号 “” 普通赋值符号,命令格式如下 变量值注意:变量的最终值为该文件中的最后进行赋值操作所赋的值。 (不管在当前文件的何处进行赋值,在使用该…

【MySQL】MySQL经常使用时间日期相关函数

MySQL经常使用时间、日期相关函数 MySQL经常使用的时间、日期相关函数 1. 日期函数 显示当前日期函数:CURDATE(), CURRENT_DATE(), CURRENT_DATE SQL:select CURDATE(), CURRENT_DATE(), CURRENT_DATE from dual; 2. 时间函数 显示当前日期函数&…

Mysql专栏(五) Mysql高可用

Mysql专栏收尾之作,作为一名后端开发人员,对于Mysql的知识了解到这里已经足以应对99的场景了,毕竟没有必要非要跟DBA抢活儿干。 而且现在的趋势都是往云上走,云数据库已经帮我们处理了高可用和数据一致性的事情了,所以…

初阶指针的介绍

文章目录 指针是什么 指针和指针类型 野指针 指针运算 指针和数组 二级指针 指针数组 一、 指针是什么 指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针变量,是用…

达梦8数据库优化

1.什么是执行计划? 一条SQL语句在数据库中执行过程或访问路径的描述。 2.如何查看达梦数据库执行计划? 通过explain命令: EXPLAIN 执行的SQL语句,如 SQL> EXPLAIN SELECT * FROM TEST1; 1 #NSET2: [1, 1113, 602] 2 …

Vue笔记01 模板语法,数据代理,事件处理,计算监听属性,绑定样式,列表渲染,数据监测

基本使用 引入vue 创建vue实例并关联容器 一个Vue实例只应对应一个容器 一个Vue实例可以有多个组件 模板语法 使用Vue实例中数据 root容器中代码被称为vue模板 语法分为插值语法和指令(v-xxx) 插值语法 绑定标签体内容 {{}}中的可以是js表达式(特殊的js代码&…

CF790 div4 F(双指针) H(逆序对)

乐,被div4薄纱了没想到把所有出现次数>k的数放一个数组里然后双指针还有H,连逆序对都没看出来,嘻感觉以后还是写写div4算了,写什么div2啊,caibiProblem - F - Codeforces题意:给定一个数列,长…

2023万象更新!smardaten企业级无代码新版本也来啦!

2022可以说是在反复的做核酸、查绿码中度过的,不曾想年终一个月还是躲不过“小阳人”的命运。而这一个月,研发部的“阳过”们依旧加班加点给我们带来了最新版本——V8R4C70。在2022-2023跨年之际,smardaten这次又有哪些新的变化呢&#xff0c…

MVC三层架构的模式

大家好,今天给大家分享一下MVC 三层架构的模式 首先你要知道,所谓的MVC就是一种面向于javaee企业级开发的设计模式 这里要强调一点,MVC 不是一种技术,不是一种像spring 那样的框架,它是一种思想(可以理解为一种解决问…

【GNSS算法工程入门】1. Git入门

写在前面笔者在GNSS算法开发岗位从业过一段时间,和大部分同学类似,在GNSS开发过程中,也是从工程化的小白逐渐成长起来。而在算法开发从业的过程中,发现有些基础的知识其实在学校学习过程中是相对缺失的。麻省理工有个课程叫计算机…

编译型语言的Docker镜像构建小技巧

最近公司需要将一个底层服务打包成docker镜像,作为征战docker一年的小白当然不能错过这次练手的好机会。简单介绍一下这个项目:该项目为一个纯restful风格的后端项目,后端由java开发、worker节点由python开发、管理员使用的命令行工具由rust开…

wpa_supplicant EAP状态机分析

EAP状态机分析RFC4137协议状态机设计原理模块划分SM状态定义SM状态转换SM使用到的变量及函数定义变量1.SM与LL交互使用到的变量列表2.SM与EM交互使用到的变量3.SM内部使用的变量函数wpas代码RFC4137协议 RFC4137:“State Machine for Extensible Authentication Pr…

强化学习笔记-01多臂老虎机问题

本文是博主对《Reinforcement Learning- An introduction》的阅读笔记,不涉及内容的翻译,主要为个人的理解和思考。 1. 多臂老虎机问题 多臂老虎机问题是指存在K个老虎机,每个老虎机的获胜金额是一个未知的概率分布且相互独立,假设…

一文解决Opencv四大经典算子——sobel算子、scharr算子、laplacian算子、canny算子

Opencv四大算子 Sobel算子Scharr算子laplacian算子canny算子总结边缘是像素值发生跃迁的位置,是图像的显著特征之一,在图像特征提取,对象检测,模式识别等方面都有重要的作用! Sobel算子 sobel算子对图像求一阶导数。一阶导数越大,说明像素在该方向的变化越大,边缘信号越…

python链接池和pymysql批量入库——从0实现大规模异步爬虫框架项目4

我将这个链接池和批量入库封装了一个工具类上传了pypi,可以直接import使用 使用也较为简单,导入PooledDBhelper的DBhelper,调用DBhelper.PooledDBhelper()方法传入数据库链接信息创建一个链接池即可 pip install PooledDBhelper1.0.0 -----------------…

虚析构函数的作用

类的析构函数是为了释放内存资源,析构函数不被调用的话就会造成内存泄漏。虚析构函数定义为虚析构函数是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。但并不是要把所有类的析构函数都写成虚函数。只有当一个类被用来作为基…

信息论复习—卷积码

目录 卷积码的基本概念: 卷积码与分组码的不同特点: 卷积码的构造与表示方法: 卷积码编码器的结构: 卷积码(3,1,3): 卷积码的卷积关系: 卷积码的生成矩阵: 卷积码的多项式: 系统码结构的卷积码: 卷积码的监督矩阵: 卷积…