路径规划算法

  • RRT路径规划
  • RRG路径规划

RRT路径规划

RRT算法:Rapid-exploration Random Tree 快速搜索随机数算法,是一种在完全已知的环境中通过随机采样扩展搜索的算法。
RRT算法是概率完备的,只要规划时间足够长,确实存在一条路径可以从起始点到终点,就一定能够找出来,但是如果规划时间不够长,采样点设置的不够,迭代次数较少,就可能无法找出实际存在的路径。主要的优点就是快,在多自由度机器人规划中发挥较大的作用,比如机械臂的规划算法大多是使用RRT算法。但是RRT算法规划的路径通常不是最优的,路径不够平滑。

算法基本流程图


鉴于采样点较多的情况下,还是不建议采用遍历的方式来找距离采样点最近的树节点,而采用KD_tree的最近邻检索方式在采样点数量较多的情况下能够节省很多的时间找到最近的树节点。

KD_tree划分方法及最近邻检索 参考:点云数据下的KD-tree

下面进行一个RRT路径规划的过程:


图1开始,设置好起始点,终止点和障碍物,就可以开始规划路径的过程了。
图2中黄色三角形为产生的随机点,从起始点向随机点连线,此时这条线未经过障碍物,随机采样点就有效,设定一定的生长步长,以起始点为一个端点,在射线上取生长步长的长度,确定一个新的树节点。

这时就有两个树节点,继续产生随机抽样点(黄色三角形示),找到离随机抽样点最近的一个树节点,由该树节点向随机抽样点做射线,在射线上取生长步长的长度,再确定一个新的树节点,没有碰到障碍物,节点有效。

图9继续生成随机抽样点,最近树节点与随机抽样点做射线,取生长步长的长度生成新的树节点(图10),此时生长的根节点在障碍物上,舍弃该随机点,再重新在地图上产生随机抽样点,重新生成根节点,反复迭代,直到新增树节点到达目标区域,就代表已经找到路径,停止迭代。

每次撒点都以新生成的树节点作为子节点,上一个根节点作为父节点,因此每一个节点都有父节点,以到达目标区域的新增树节点作为子节点反向遍历父节点,直到找到起始点,就找到了路径。

不过生成的路径都是折线并不是最优的路线。

主要的算法执行三个步骤:
循环撒点 ➡ 判断是否经过障碍物 ➡ 生成根节点 ➡ 判断是否到达目标区域

RRG路径规划

RRG是由RRT在二维平面向三维空间扩展的路径规划算法,理解了RRT算法,RRG就不难懂了。

首先,图G由唯一节点Ns初始化,每个节点N具有两个属性:中心点3D位置N.c和半径N.r。当通过随机采样函数sample获得新的点Cr,nearest函数在G中寻找距离Cr最近的节点Nc。intersect函数生成一条由Cr到Nc.c的射线,并返回射线与Nc球体相交的点Nn.c,我们把这个点作为新节点Nn的中心位置,通过半径搜索函数radius_search在地图M中寻找一个最大的安全球体半径Nn.r,如果寻找到的半径足够大,这个新节点会被加入到G中,并将其与Nc相连。同时,我们将与Nn相交的所有节点找到,根据重叠体积的大小来决定是否将Nn与它们相连,这个大小要能够使得无人机或机器人安全的穿过。

RRG目的:生成一个由球体安全区域构成的路径图

下面是实现RRG算法的Python程序:

RRG on Point Cloud
Requires  MG <- Ns, i <- 0while i <= N doCr <- sample()Nc <- nearest(Cr, G)Nn.c <- intersect(Nc.c, Cr)Nn.r <- radius_search(Nn.c, M)if Nn.r > λr thenG <- GUNnconnect(Nc, Nn)for all Nj ∈ neighbor(Nn, G) doif overlap_volume(Nj, Nn) > λv thenconnect(Nj, Nn)end ifend forend ifi <- i + 1end while

下图是通过RRG结合A*算法获得的最优路径:


图(a)是产生的通过障碍物的飞行走廊,图(b)是飞行走廊俯视图,由具有重叠部分的安全区域球组成。

【机器人路径规划算法RRT和RRG】相关推荐

  1. a算法和a*算法的区别_机器人路径规划算法,全局路径规划与局部路径规划究竟有哪些区别?...

       若步智能                  移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是 ...

  2. 扫地机器人路径规划算法

    路径规划算法 路径规划技术是扫地机器人研究的核心内容之一,机器人定位与环境地图构建(后面雷锋网专栏将会更新)就是为路径规划服务的.所谓机器人路径规划技术,就是机器人根据自身传感器对环境的感知,自行规划 ...

  3. 扫地机器人路径规划算法解读

    随着人们生活水平的提高,人们对于智能家居的需求日益旺盛,扫地机器人就是其中之一,据前瞻网发布的数据显示,2018年扫地机市场增长预计达到120亿元,随着扫地机器人技术的不断发展,未来扫地机器人将会有更 ...

  4. 基于采样的路径规划算法RRT和代码实现

    文章目录 前言 一.概率路图法 1.1 采样阶段 1.2 搜索阶段 1.3 Lazy collision-checking 二.快速扩展随机树 2.1 RRT算法流程 2.2 RRT 算法改进 2.3 ...

  5. 【动态规划】机器人路径规划——算法设计与分析慕课作业

    题目内容: 一个机器人只能向下和向右移动,每次只能移动一步,设计一个算法求机器人从(1,1)到(m,n)有多少条路径. 输入格式: 以空格分开m,n 输出格式: 路径条数 输入样例: 4 5 输出样例 ...

  6. 【路径规划】RRT(Rapidly-exploring Random Trees)算法

    文章目录 参考 仿真结果 RRT算法 RRT-connect RRT-star RRT-star-FN Informed RRT-star 问题 参考 RRT(Rapidly-exploring Ra ...

  7. 多机器人路径规划的代码_泛在电力物联网 | 基于IACOABC 算法的变电站巡检机器人路径规划...

    区块链 | 方 响等 分布式新能源接入下的区块链共识机制研究 区块链 | 颜 拥等 基于区块链的电力数据保全应用研究 区块链 | 能源互联网中的区块链应用:优势.场景与案例 <浙江电力>2 ...

  8. 自动驾驶路径规划——基于概率采样的路径规划算法(RRT、RRT*)

    目录 1. RRT算法背景 1.1 RRT算法核心思想 1.2 RRT算法优缺点 2. 经典RRT算法 2.1 RRT算法流程 2.2 RRT伪代码 3. 基于目标概率采样 4. RRT*算法 4.1 ...

  9. 【 无错版】基于蚁群算法的机器人路径规划matlab程序代码实现

    文章目录 1. 按 2. 介绍 3. matlab实现 3.1. 代码 3.2. 效果 1. 按 网上有发的这个算法的错误版的,不知道发的意义何在,是在误人子弟吗???在此对其行为表示强烈的谴责. 错 ...

最新文章

  1. 西藏监狱首次奏响《婚礼进行曲》
  2. 工业互联网工信部苗圩谈-谋定研究:对话中国经济和信息化
  3. springboot嵌入thymeleaf后css404_SpringBoot2整合Thymeleaf
  4. ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题
  5. recyclerView + GridLayoutManager 实现任意网格布局+拖拽排序
  6. 计算机课中初中一年级学生特点分析,初中信息技术说课稿:计算机的组成
  7. 格式化网上复制过来的源代码
  8. TeeChart Pro VCL/FMX教程(六):使用系列(二)
  9. spart快速大数据分析学习提纲(一)
  10. FileZilla传输文件乱码的解决方案
  11. matlab rgb转色温,如何将RGB值转换为色温?
  12. 怎么关闭计算机安全,电脑中安全防护怎么关闭
  13. 青春饭碗——程序员,年纪大了怎么办?
  14. 门函数自卷积matlab,两个门函数的卷积
  15. html5 阿狸照片展示,阿狸手抄报美观简洁图片5张
  16. 伦敦金走势技术指标的背离
  17. 如何构建业务数据分析体系
  18. RK3399-RGA使用
  19. 西安翻译学院东区计算机教室,精品案例 | 智慧教室的秘密,竟然在西安翻译学院曝光了!...
  20. 微信小程序-入门到入土-01

热门文章

  1. python编写病毒扫描器_python实现集中式的病毒扫描功能详解
  2. 阿联酋标准局 (ESMA)认证办理流程
  3. 面试总结(zhuan)
  4. FireMonkey常用控件
  5. DOM经典例子(放大镜)
  6. NS3中Wifi网络设备模块
  7. 2021-02-26 PMP 群内练习题 - 光环
  8. Edge 插件开发 简单示例
  9. Redis实战——优惠券秒杀(超卖问题)
  10. python中稀疏矩阵的常用表示COO LIL CSR CSC【上篇】