全覆盖规划算法学习笔记-------

这篇具有很好参考价值的文章主要介绍了全覆盖规划算法学习笔记-------。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ROS全覆盖规划算法

通过对比提供的ROS全覆盖规划算法:确定Boustrophedon Planner和Grid-based Local Energy Minimization Planner具备过程应用价值,这里选择后者进行重点研究。

参考:
官网 ipa_room_exploration - ROS Wiki

Indoor Coverage Path Planning: Survey, Implementation, Analysis

Grid-based Local Energy Minimization Planner源码学习与仿真。

算法说明与翻译:

// Function that plans a coverage path trough the given map, using the method proposed in
//
//	Bormann Richard, Joshua Hampp, and Martin Hägele. "New brooms sweep clean-an autonomous robotic cleaning assistant for
//	professional office cleaning." Robotics and Automation (ICRA), 2015 IEEE International Conference on. IEEE, 2015.
//
// This method discretizes the free space, that should be covered, into several nodes. Each of the node has to be covered, in order
// to cover the whole area. The path starts at the node that is closest to the given starting position and chooses the next node as
// the one that minimizes the energy functional, provided in the paper above. To do this here the following steps are done.
//	I.	The free area gets discretized into several nodes, using the given cell_size parameter, starting at the upper left white pixel of
//		the room. Whenever the overlaid grid then hits a white pixel, this point is added as a node. Then after all nodes have been found
//		the direct 8 neighbors for each node are found, which will be used later in the energy functional.
//	II.	After all nodes have been found, the coverage path is computed.
//			i.	The start node gets chosen as the one that is closest to the given starting position and is an edge of the given room, i.e
//				a node that has less than 4 neighbors.
//			ii.	The next node is then iteratively chosen from the directly neighboring ones, by finding the node that minimizes the given
//				energy functional and wasn't visited before.
//			iii.If in the neighborhood no accessible point could be found, search for the next node in the whole grid to continue the path.
//			iv.	This procedure is repeated, until all created nodes have been covered.
// III.	If wanted use the given vector from the robot middlepoint to the fov middlepoint to map the fov poses to the
//		robot footprint poses. To do so simply a vector transformation is applied. If the computed robot pose is not in the
//		free space, another accessible point is generated by finding it on the radius around the fov middlepoint s.t.
//		the distance to the last robot position is minimized. If this is not wanted one has to set the corresponding
//		Boolean to false (shows that the path planning should be done for the robot footprint).
//

使用Bormann-Richard、Joshua Hampp和Martin Hägele提出的方法,通过给定的地图规划覆盖路径的函数。“新型扫帚清扫专业办公室清洁的自动机器人清洁助手。”机器人与自动化(ICRA),2015年IEEE国际会议。IEEE,2015。
该方法将应该覆盖的自由空间离散为几个节点。为了覆盖整个区域,每个节点都必须被覆盖。路径从最接近给定起始位置的节点开始,并选择下一个节点作为使能量函数最小化的节点,如上文所述。为此,请执行以下步骤。
I.使用给定的cell_size参数,从房间的左上角白色像素开始,将空闲区域离散为几个节点。每当覆盖的网格碰到一个白色像素时,就会将该点添加为节点。然后,在找到所有节点后,找到每个节点的直接8个邻居,这将在稍后的能量函数中使用。
II、 在找到所有节点之后,计算覆盖路径。
i.起始节点被选择为最接近给定起始位置并且是给定房间的边缘的节点,即具有少于4个邻居的节点。
ii.然后通过找到使给定能量函数最小化并且以前没有访问过的节点,从直接相邻的节点中迭代地选择下一个节点。
iii.如果在邻域中找不到可访问点,则在整个网格中搜索下一个节点以继续该路径。
iv.重复此过程,直到所有创建的节点都被覆盖为止。
III、 如果需要,使用从机器人中点到中心凹中点的给定矢量将中心凹姿态映射到机器人足迹姿态。要做到这一点,只需应用矢量变换。如果计算的机器人姿势不在自由空间中,则通过在中心凹中点s.t周围的半径上找到另一个可访问点来生成另一个点。到最后一个机器人位置的距离最小化。如果不需要,则必须将相应的布尔值设置为false(表明应该为机器人足迹进行路径规划)。

环境搭建

源码

ROS全覆盖规划算法逻辑整理笔记

Grid-based Local Energy Minimization Planner文章来源地址https://www.toymoban.com/news/detail-819540.html

到了这里,关于全覆盖规划算法学习笔记-------的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AcWing算法学习笔记:动态规划(背包 + 线性dp + 区间dp + 计数dp + 状态压缩dp + 树形dp + 记忆化搜索)

    算法 复杂度 时间复杂度0(nm) 空间复杂度0(nv) 代码 算法 通过滚动数组对01背包朴素版进行空间上的优化 f[i] 与 f[i - 1]轮流交替 若体积从小到大进行遍历,当更新f[i, j]时,f[i - 1, j - vi] 已经在更新f[i, j - vi]时被更新了 因此体积需要从大到小进行遍历,当更新f[i, j]时,f[i - 1,

    2024年02月21日
    浏览(35)
  • UVM学习笔记1——断言和断言覆盖率

    2023.3.8 一直都没懂覆盖率和断言,今天开始慢慢学 2023.3.11 打卡学习 2023.4.4 断言不仅可以进行 时序的检测 ,还可以进行 覆盖率的收集 ,因为covergroup只适合对功能点的测试,但是信号与信号之间的时序是否正确可能不能很好的覆盖,使用断言更加方便。 用来与设计功能和时

    2024年02月09日
    浏览(29)
  • 数据结构与算法之美学习笔记:41 | 动态规划理论:一篇文章带你彻底搞懂最优子结构、无后效性和重复子问题

    本节课程思维导图: 今天,我主要讲动态规划的一些理论知识。学完这节内容,可以帮你解决这样几个问题:什么样的问题可以用动态规划解决?解决动态规划问题的一般思考过程是什么样的?贪心、分治、回溯、动态规划这四种算法思想又有什么区别和联系? 什么样的问

    2024年02月02日
    浏览(55)
  • 算法笔记(Java)——动态规划

    动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的, 动规和递归的区别是动规不是暴力的

    2024年02月08日
    浏览(37)
  • 动态规划(DP)(算法笔记)

    本文内容基于《算法笔记》和官方配套练题网站“晴问算法”,是我作为小白的学习记录,如有错误还请体谅,可以留下您的宝贵意见,不胜感激。 动态规划(Dynamic Programming,DP)是一种用来解决一类最优化问题的算法思想。简单来说,动态规划将一个复杂的问题分解成若干个子

    2024年02月05日
    浏览(38)
  • 算法笔记14.动态规划

    就是切割问题变成一堆小问题,最好子问题之间可以递推,这样就能利用之前的子问题的答案得出新的结果。 可以削减总量,比如求n个数的什么什么,可以削n的大小,n削到n-1……一直到1,1的结果很好求,然后利用1的结果求2,然后再一直求到n。 也可以不削总量削单量,比

    2024年04月15日
    浏览(20)
  • 全覆盖路径规划——ccpp

    在路径规划方法中,有一种是点到点的路径规划,这一类例如dijstra,或者A*这类算法,关注的是点到点的最短路径,偏向一种最优的选择。还有一种是全覆盖是路径规划,这一类路径规划关注的是遍历整个地图,例如扫地机器人之类的,他们的主要目的就是遍历,针对这一需

    2024年02月05日
    浏览(22)
  • 无人机覆盖路径规划综述

    摘要:覆盖路径规划包括找到覆盖某个目标区域的每个点的路线。近年来,无人机已被应用于涉及地形覆盖的多个应用领域,如监视、智能农业、摄影测量、灾害管理、民事安全和野火跟踪等。本文旨在探索和分析文献中与覆盖路径规划问题中使用的不同方法相关的现有研究

    2024年02月03日
    浏览(26)
  • 动态规划算法刷题笔记【状压dp】

    a1 == 1 判断是否为奇数,如果为1,则为奇数 因为奇数二进制末位一定是1,所以 与1 得到的结果是1 这里,114——2 14 ——第15位是1,可以表示14个1 i(1j)—— 从0开始是因为,原本第1位就是1。所以j=0时,对应的就是 i 的最低位 F l o y d Floyd Fl oy d 算法: n o w ∣ f l a g = = f l

    2024年02月11日
    浏览(33)
  • Apollo决策规划算法学习Chapter3 速度规划算法

    第一章 Apollo决策规划算法基本概念 第二章 Apollo决策规划之路径规划算法 第三章 Apollo决策规划之速度规划算法 本文为第三章,主要讲解 Apollo决策规划算法中的速度规划算法,EM planner的速度规划算法同样是是通过动态规划和二次规划实现的,下面来细讲速度规划算法。 1)回

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包