RRT算法原理图解

RRT算法原理图解本文内容为原创 若引用或转载请标明转载来源 本人很懒 习惯了只看不写 废话少说 直奔主题 原始 RRT 算法原理图文简介 图都是我自己按照步骤一幅幅画的 闲的蛋疼 但应该比较直观易懂 能被借鉴参考也算我的功德 RRT 是一种通用方法 原理也较为简单 不受机器人类型和自由度的约束 下面按结合一组过程实例化的图片来讲解一下 RRT 实现路径规划的原理 第一步 如图所示 在地图中

RRT算法原理图解

  • 开始

    第二步:向地图中的自由空间(非障碍区)随机位置生成一个随机点(图中三角形),也随便举个栗子画一下;
    在这里插入图片描述

    第三步:以刚刚生成的随机点为目标,遍历生长树上的现存节点,计算每个节点到该随机点的距离,筛选出距离最小的节点作为最近点。此时树上仅存在起点(一颗没发芽的种子),所以直接选取起点为最近点。以最近点和随机点的连线(图中我牵的红线)为生长方向(随机点仅起确定生长方向的作用);
    在这里插入图片描述
    第四步:从最近点向目标点生长,生长的长度为步长,(每一次生长的步长是固定的,步长看情况设定:太短导致算法搜索速度变慢,太长导致生长会跨过障碍物),从此时的最近点也就是起点沿着生长方向生长一个步长得到一个生长点(空心圆圈);
    在这里插入图片描述
    种子终于要发芽了!
    第五步:判断新生成的生长点是否与障碍物有碰撞,若没有碰撞则将生长点添加到树上(发芽成功),若碰撞了就剔除该生长点,生长作废(发芽失败,等待重新发芽),图中很明显是没有碰到障碍物,发芽成功!此时的生长树上就存在了两个节点(蓝色);
    在这里插入图片描述
    第六步:再次生成随机点(我们根据图慢慢来讲解啊)
    在这里插入图片描述
    第七步:以刚刚生成的随机点为目标,遍历生长树上的现存节点,计算每个节点到该随机点的距离,筛选出距离最小的节点作为最近点。和上面第三步相同,计算筛选出此时生长树上离随机节点最近的最近点依然是起点,然后以最近点和随机点的连线为生长方向(继续牵线);
    在这里插入图片描述
    第八步:重复了第四步:从最近点向目标点生长,得到了新的生长点;
    在这里插入图片描述
    第九步:判断是否成功,又重复了第五步。。。很明显又成功了,你说气不气人?把新的生长点纳入生长树中(现在树上已经有三个节点了)
    在这里插入图片描述
    第十步:再来!重复操作,加随机点!看图!(争取把多种情况实例化说一遍,针对小白)
    在这里插入图片描述
    第十一步:同第三步,这次筛选出来的最近点终于不是起点了,而是第九步最新纳入生长树上的节点,直接牵线;
    在这里插入图片描述
    第十二步:如图,最近点向随机节点靠近一个步长,生成了一个生长点(长到了障碍物里面)。
    在这里插入图片描述
    第十三步:生长点都长障碍物里面去了当然发生了碰撞啊,还撞得不轻,生长失败!(红色警告)
    在这里插入图片描述
    剔除该生长节点,此次生长作废,不合格,树不接受。
    在这里插入图片描述
    第十四步:此处省去好多步(受不了了,终于写出这句话,憋了好久),重复上述操作:加随机点,找最近点,向点生长产生生长点,碰撞检测,更新生长树,直到有树节点进入了终点的设定邻域(她终于进入了他的视线),表示路径规划划成功!很多步后效果大致是这个样纸:
    在这里插入图片描述
    第十五步:从终点开始依次回溯父节点(终点找它爸爸,他爸爸找他爷爷,一直找到起点为止)把这些节点按(辈分)顺序提取出来就构成了路径。图中红色线段就是本次实例的路径结果。
    在这里插入图片描述
    END~




























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202931.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:58
下一篇 2026年3月19日 下午10:59


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号