首页 > Python资料 博客日记
相关改进RRT算法的路径规划(相关改进的RRT算法+原理分析+python仿真对比分析)
2025-01-16 23:30:07Python资料围观13次
一、改进RRT算法的各个策略
对于传统RRT算法,由于随机点在地图空间的选取过于随机,导致传统RRT算法在寻找目标点的目标引导性能较差,使算法在整个地图内搜索目标点,从而较多地探索了地图中的无用空间,加大了算法的计算量。同时,算法在得到初始路径后,路径由于是随机点引导生成的路径点,所以路径中的路径点会有曲折性较大,冗余节点较多的缺点。
为了克服RRT算法存在的以上问题,各种改进的RRT算法被提出,本文主要介绍以下几种改进的RRT算法:
目标偏置RRT算法、双向扩展RRT算法、采样约束与自适应偏置RRT算法、逆向寻优优化路径RRT算法、三次B样条曲线优化路径RRT算法。
二、目标偏置RRT算法
目标偏置RRT(Goal-Biased RRT)算法是一种改进的 RRT 算法,旨在增加在路径规划过程中选取目标点的概率,从而加速路径搜索并提高搜索效率。该算法在随机采样阶段引入了一定概率选择目标点作为随机点的策略,以便更快地朝向目标点搜索路径。
方法:
- 目标偏置采样: 在每次随机采样时,以一定概率选择目标点作为随机点,而不是完全随机选择。这可以通过设定一个概率阈值来实现,例如,设定一个较高的概率值,使得选择目标点的概率更高。
- 路径扩展: 当新节点生成后,沿着从最近节点到随机点的路径方向进行扩展。这可以通过调整节点生成的方法来实现,使得更多的节点朝着目标点方向生长。
原理:
- 目标偏置采样: 在随机点选取阶段,引入了一定的概率p,根据上述公式,判断选择随机点,以便更频繁地选择目标点作为随机点。这样做可以加速搜索接近目标的路径。如上图点Xrand3和点Xnew3的生成。
- 路径扩展: 在生成新节点时,沿着从最近节点到随机点的路径方向扩展。如果该方向指向目标点,那么路径搜索会更快地朝着目标方向延伸。如上图点Xrand3到点Xnew3的边所示。
优点:
- 加速路径搜索: 目标偏置采样使得更多的采样点朝向目标点,从而加速路径搜索过程,减少搜索时间。
- 有效解决局部最优问题: 通过增加对目标点的偏置,可以有效避免算法陷入局部最优解,提高了全局搜索能力。
- 简单易实现: 相对于其他复杂的路径规划算法,目标偏置RRT算法相对简单,易于实现和理解。
缺点:
- 对目标点的依赖性: 如果目标点选择不合适或者目标点与起始点之间存在较大障碍物,可能会导致路径搜索效率下降。
- 对参数敏感: 算法中的概率阈值参数需要合适地设置,过高或者过低的值都可能影响算法的性能。
- 无法保证最优解: 虽然目标偏置RRT算法能够加速路径搜索,但并不能保证找到最优路径,仍有可能陷入次优解。
仿真结果:
综上所述,目标偏置RRT算法通过增加对目标点的偏置来加速路径搜索,具有简单易实现、解决局部最优问题等优点,但在目标点选择和参数设置方面仍存在一定挑战。
三、双向扩展RRT算法
双向扩展RRT(Bidirectional Rapidly-Exploring Random Trees)算法是一种改进的RRT算法,它同时从起始点和目标点出发,在两个方向上生成两棵树,通过不断扩展这两棵树来搜索可行路径。下面是该算法的详细介绍:
方法:
- 初始化: 将起始点和目标点分别加入两棵树的根节点。
- 扩展节点: 从第一棵树中选择一个随机节点进行扩展,生成新节点。在第二棵树中,将该新节点作为随机点,第二棵树中新节点生成方式与标准RRT算法一样,根据一定策略在第二棵树中寻找最近的节点,并在其方向上生成新节点。接着,再以第一棵树中的新节点为随机点,在第二棵树中,获得第二个新节点。然后判断树1和树2的节点数量大小,如果树2小于树1,就将两棵树互相交换。
- 连接检查: 检查新节点是否可以连接到另一棵树的节点。如果可以连接,则尝试连接两棵树的节点,形成一条路径。
- 重复扩展和连接: 重复以上步骤,直到两棵树相遇或者达到最大迭代次数。
原理:
- 双向搜索: 算法同时从起始点和目标点开始,分别生成两棵树。这样做的好处是可以在两个方向上搜索路径,从而更有效地找到起点和终点之间的路径。如上图黑色随机树和绿色随机树的扩展所示。
- 连接策略: 在生成新节点时,每次选择离随机点最近的节点进行扩展,直到两棵树相遇或者达到最大迭代次数为止。
优点:
- 快速收敛: 由于算法同时从两个方向搜索路径,因此可以更快地收敛到起点和目标点之间的路径。
- 有效避免局部最优: 通过双向搜索,算法可以更有效地避免陷入局部最优解,提高了全局搜索能力。
缺点:
- 额外计算成本: 双向扩展需要额外的计算成本来维护两棵树,并且需要进行连接检查,增加了计算复杂度。
- 对环境要求高: 对于复杂的环境,双向扩展RRT算法可能会受到环境约束的限制,导致搜索效率降低。
- 在两棵树相连接的过程中,可能会存在较大转向角度甚至是180度直线交叉等问题,使机器人沿路径行走困难。
仿真结果:
总的来说,双向扩展RRT算法通过同时从起始点和目标点开始搜索,能够更快地找到可行路径,并且有效避免了局部最优问题,但也存在额外的计算成本和对环境要求较高的缺点。
四、采样约束与自适应偏置RRT算法
这种新算法,我称之为"目标吸引约束RRT"(Target Attraction Constrained RRT),结合了对已有随机点位置的约束和目标偏置策略,以更高效地搜索可行路径。下面是该算法的详细介绍:
原理:
约束点引导原理图
目标偏置原理图
- 约束点引导: 算法通过对已有随机点位置的约束,使得新生成的随机点倾向于朝向目标点。这种约束方法类似于将已有随机点形成的墙体,逐渐向右压缩可采样的空间,以减少探索无用空间,从而加速搜索过程。如上图所示。
- 目标偏置策略: 借鉴目标吸引的概念,引入一种新的权重𝑤𝑔机制,使得新节点更倾向于向目标点靠近。这显著提升了搜索速度,让算法更快地找到可行路径,也能使规划的路径长度更短,不会过分偏离障碍物。如上图所示。
过程:
- 初始化: 将起始点加入树的根节点,并设定目标点。
- 约束点引导: 每次生成新的随机点时,对其施加约束,使其朝向目标点,从而压缩采样空间。
- 目标偏置: 在生成新节点时,根据目标偏置策略,考虑采样点和目标点的方向,使新节点更倾向于向目标点靠近。
- 路径连接: 不断尝试连接新节点和已有节点,直到找到可行路径或达到最大迭代次数。
优点:
- 高效的搜索: 通过约束点引导和目标偏置策略,加速了搜索过程,使算法更快地找到可行路径。
- 一定程度的路径优化: 目标偏置策略确保生成的路径更趋向于直接朝向目标点,因此不会过分偏离障碍物,从而提高了路径的优化程度。
缺点:
- 复杂度: 引入了额外的约束和偏置机制,增加了算法的复杂度和计算量。
- 对初始参数敏感: 算法的效果可能受到初始参数的影响,需要仔细调节以达到最佳效果。
- 局部最小值:由于目标点的引力影响,在陷入局部最小值时无法摆脱,因此受该引力影响较大。
仿真结果:
总的来说,"目标吸引约束RRT"算法通过约束点引导和目标偏置策略,能够更高效地搜索可行路径并优化生成的路径,但也需要注意算法复杂度和初始参数的调节以及地图环境的应用。
五、逆向寻优优化路径RRT算法
逆向寻优是一种路径优化技术,通常用于改善已有路径,使其更接近最优路径。在路径规划领域,逆向寻优通常指从目标点开始,沿着当前路径的反方向进行搜索,以寻找更直接、更优的路径。下面是关于逆向寻优的详细介绍:
原理:
逆向寻优的原理是从目标点出发,通过不断向初始点反向前进,尝试找到一条更优的路径。在从目标点开始逆向寻优的过程中,首先反向判断目标点和各个路径点,直到判断出目标点与点path2没有通过碰撞检测,然后重新连接目标点与path3。再从path3开始,再次逆向寻优,直至找到起点为止。通过沿着路径反方向搜索,可以删除冗余的路径节点,从而发现可能存在的更短、更直接的路径段,从而改善整体路径的质量。如下图所示:
过程:
- 起始点设置: 将路径规划的目标点作为逆向寻优的起始点。
- 路径逆向寻优搜索: 从目标点开始,沿着当前路径的反方向进行搜索,不断前进直至达到初始点或找到更优的路径段。
- 路径更新: 如果找到了更短或更优的路径段,将其与初始路径进行合并或替换,更新当前路径。
- 终止条件: 当达到初始点或无法找到更优路径时,停止搜索,得到优化后的路径。
优点:
- 改善路径质量: 逆向寻优能够找到更直接、更优的路径段,从而显著改善整体路径的质量。
- 适用范围广: 逆向寻优可以与各种路径规划算法结合使用,适用于不同类型的路径规划问题,并且使用各种障碍物环境。
缺点:
- 不保证最优解: 尽管逆向寻优能够改善路径质量,但并不能保证找到最优解,搜索受限于初始路径和搜索策略。
- 转向角减小:逆向寻优的过程是通过反向搜索来寻找更直接的路径段。如果过度优化,即寻找过于直接的路径,可能会导致路径的转向角度过大。这是因为逆向寻优可能会过度拟合局部环境,导致路径绕过障碍物或特定地形时转向角度过大。这样的路径可能会导致机器人突然有加大的转向操作,增加了路径跟踪的难度。
仿真结果:
总的来说,逆向寻优是一种有效的路径优化技术,通过反向搜索找到更优的路径段,改善整体路径的质量,但需要注意不能保证最优解的限制和转向角变化问题。
六、三次B样条曲线优化路径RRT算法
原理: 三次B样条曲线是一种光滑的曲线插值方法,通过控制点和节点间的插值来生成光滑的曲线。在路径规划中,可以使用三次B样条曲线来优化和平滑机器人行走的路径,从而减少路径的转向角度和长度,提高路径的可行性和舒适性。
详细请看以下链接内容:
过程:
- 生成初始路径: 使用常规的路径规划算法(如RRT)生成机器人的初始路径。
- 提取路径控制点: 将生成的初始路径转换为一系列控制点,这些控制点将用于生成三次B样条曲线。
- 应用三次B样条曲线: 使用控制点作为输入,在路径的每个段落上应用三次B样条曲线插值算法,生成平滑的曲线段。
- 路径连接: 将生成的平滑曲线段连接起来,形成优化后的路径。
- 路径验证: 验证优化后的路径是否满足机器人行走的要求,如避开障碍物、遵循地形等。
- 优化迭代: 可以进行多次迭代,通过调整控制点或曲线参数来优化路径,直到满足要求。
优点:
- 路径平滑: 使用三次B样条曲线可以实现路径的平滑,减少路径的转向角度和长度,提高路径的可行性和舒适性。
灵活性: 三次B样条曲线对于控制点的位置和数量具有较高的灵活性,可以根据需要调整路径的形状和曲率。
- 可视化: 生成的平滑曲线路径具有良好的可视化效果,更容易理解和调整。
缺点:
- 计算复杂度高: 生成三次B样条曲线需要进行大量的计算,特别是在路径较长或需要多次迭代优化时,计算复杂度较高。
- 转向角过大: 在某些情况下,三次B样条曲线可能会有转向角过大问题,导致生成的曲线路径与初始路径过度拟合,不利于机器人实际转向运动。
- 拟合不足:在某些情况下,三次B样条曲线可能会与原始路径拟合不足,致使规划的曲线路径与障碍物碰撞,导致曲线路径规划失败。
- 参数选择困难: 选择合适的控制点和曲线参数对于生成理想的路径至关重要,但是这通常需要经验和反复尝试。
仿真结果:
从仿真图可以看出,三次B样条曲线(Cubic-B-spline)与折线路径(Improved clipping path)的拟合度较低,这样会使三次B样条曲线与原始路径拟合不足,致使规划的曲线路径与障碍物碰撞,导致曲线路径规划失败。
综上所述,使用三次B样条曲线优化路径可以实现路径的平滑和优化,但需要考虑计算复杂度和参数选择等方面的挑战。
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程