路径规划 | 随机采样算法:Informed-RRT*

2023-05-16

在文章路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*中,介绍了具备渐近最优性的RRT*算法。随着采样点数的增多,RRT*算法的规划结果会逐渐收敛到最优。

但是可以观察到,RRT*算法是对自由空间进行均匀采样,搜索树上会生成很多冗余的分支,我们可以对RRT*算法的采样过程进行改进。

Informed-RRT*算法就是对RRT*的采样过程进行优化得到的算法,它采用一个椭圆采样方式来代替全局均匀采样,如图:

在这里插入图片描述

接下来介绍椭圆采样区域的表示方式

标准椭圆方程为:
x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1
焦点坐标为 ( ± c , 0 ) (±c, 0) (±c,0),长轴长度为 a a a,短轴长度为 b b b,它们间满足:椭圆上任一点到两焦点的距离之和等于 2 a 2a 2a,可以得到:
a 2 = b 2 + c 2 a^2=b^2+c^2 a2=b2+c2

Informed-RRT*算法椭圆采样区域可由下图来表述。在Informed-RRT*算法中,以起点 x s t a r t x_{start} xstart和终点 x g o a l x_{goal} xgoal作为椭圆的焦点,令 a a a等于初始路径长度的一半,即 a = c b e s t 2 a=\frac{c_{best}}{2} a=2cbest,则 c = c m i n 2 c=\frac{c_{min}}{2} c=2cmin b = c b e s t 2 − c m i n 2 2 b=\frac{\sqrt{c_{best}^2-c_{min}^2}}{2} b=2cbest2cmin2 。这样就可以得到椭圆方程的所有参数。
在这里插入图片描述

在之后的迭代中,没找到一次更短的路径,就用这条更短路径的长度作为新的 c b e s t c_{best} cbest,更新采样椭圆。

然后在椭圆采样区域中进行采样

先在标准方程中采样,再将采样点旋转平移到实际采样区域,需要两个矩阵:平移向量、旋转矩阵。这两个参数只需要在初始化时计算即可

转换后的坐标为:
[ x ′ y ′ ] = [ c o s θ s i n θ − s i n θ c o s θ ] ⋅ [ x y ] + [ x c e n t e r y c e n t e r ] \left[\begin{matrix}x'\\y'\end{matrix}\right]=\left[\begin{matrix}cos\theta&sin\theta\\-sin\theta &cos\theta\end{matrix}\right]\cdot\left[\begin{matrix}x\\y\end{matrix}\right]+\left[\begin{matrix}x_{center}\\y_{center}\end{matrix}\right] [xy]=[cosθsinθsinθcosθ][xy]+[xcenterycenter]
其中 R = [ c o s θ s i n θ − s i n θ c o s θ ] R=\left[\begin{matrix}cos\theta&sin\theta\\-sin\theta &cos\theta\end{matrix}\right] R=[cosθsinθsinθcosθ]是旋转矩阵, θ \theta θ表示起点 x s t a r t x_{start} xstart和终点 x g o a l x_{goal} xgoal连线与 x x x轴的夹角, T = [ x c e n t e r y c e n t e r ] T=\left[\begin{matrix}x_{center}\\y_{center}\end{matrix}\right] T=[xcenterycenter]是平移向量,可以用起点 x s t a r t x_{start} xstart和终点 x g o a l x_{goal} xgoal的中点来表示。

除了采样过程外,Informed-RRT*的流程和RRT*是一样的。

在这里插入图片描述
程序见:ghowoght/motion-planner

参考

Gammell J D , Srinivasa S S , Barfoot T D . Informed RRT*: Optimal Sampling-based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal Heuristic[J]. 2014.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

路径规划 | 随机采样算法:Informed-RRT* 的相关文章

  • cmake相关:sudo make install后的卸载

    sudo make install后的卸载 我们知道linux中一般的编译一个package的顺序是 span class token function git span clone package git span class token
  • 提取rosbag中的图像话题存为本地图像

    新建存放图片文件夹 首先运行ros master roscore 在目标文件夹目录下运行 rosrun image view extract images sec per frame 61 0 05 image 61 lt ROSIMAGE
  • matlab循环读取文件

    一般情况下 xff0c 假如我要读取一个名为a txt的文件 xff0c 只需要利用下面的语句 xff1a a span class token operator 61 span span class token function load
  • 使用OpenMVG获取相机位姿的方法

    在生成sfm data bin文件后 xff0c 在文件目录下执行 openMVG main ConvertSfM DataFormat binary span class token operator span i yoursfm dat
  • Ubuntu修改文件夹下面所有文件权限的方法

    ubuntu修改文件夹下所有文件的权限 命令为 xff1a sudo chmod span class token operator span R 777 filename filename为要修改的文件夹名字 R应该是表示递归修改file
  • 写出对js事件,事件流,事件对象的理解

    事件 JavaScript 使我们有能力创建动态页面 事件是可以被 JavaScript 侦测到的行为 网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件 比方说 xff0c 我们可以在用户点击某按钮时产生一个 onC
  • UDP实时图像传输

    写在前面 首先问个问题 xff0c 为什么要用UDP传输图像 xff0c 而不是TCP xff1f TCP是我们经常使用的通信协议 xff0c 从认识它的第一天起 xff0c 就应该知道 xff0c 它非常稳 xff0c 丢包率超低 但是一
  • 机器学习 | 使用k-近邻算法实现手写识别系统

    KNN概述 k 近邻算法就是通过计算不同特征值之间的距离来进行分类的算法 假设我们现在有一个样本集 xff0c 每个样本都有几个特征用来描述这个样本 xff0c 以及一个它所属分类的标签 当我们拿到一个没有标签的样本时 xff0c 该如何判
  • Windows下如何查看一个process内有哪些thread

    从https docs microsoft com en us sysinternals downloads pslist下载PsTools xff0c 解压后找到pslist exe并移动到C盘任一目录下 xff0c 使用说明都在Psto
  • 机器人路径规划之动态窗口法

    动态窗口法 Dynamic Window Approach 概述 DWA是一种基于速度的局部规划器 xff0c 可计算达到目标所需的机器人的最佳无碰撞速度 程序实现 DWA算法主要分三步 xff1a 计算动态窗口计算最优 v
  • cso(布谷鸟)算法优化神经网络参数

    之前写了一篇pso工程上使用方法 xff0c 这一篇使用布谷鸟算法 xff0c 相关的原理也比较多的介绍了 目前实验结果还是pso快一点 一 布谷鸟算法介绍 布谷鸟搜索算法 xff0c 是 由剑 桥 大 学YANG等在文献 中提出的一种群智
  • 多线程之线程安全(Thread Safety)

    什么是线程安全 Thread Safety xff1f 怎样才能做到线程安全 xff1f 线程安全 线程安全指某个函数 函数库在多线程环境中被调用时 xff0c 能够正确地处理多个线程之间的共享变量 xff0c 使程序功能正确完成 数据类型
  • 多线程之简易注册验证程序

    问题描述 使用VC2010或以上版本编写一个多线程注册验证程序 xff0c 要求 xff1a 通过对话框输入若干人的学号和姓名 xff0c 并存入列表中作为注册记录 用户输入一个学号 xff0c 程序能通过多线程的方式与注册记录比对来验证其
  • 多线程之基于积分法与欧拉恒等式法的圆周率计算及OMP优化

    文章目录 一 问题描述二 积分法算法推导编程实现OMP优化 三 欧拉恒等式算法推导编程实现前期准备加法减法乘法除法 算法实现 OMP优化 四 总结积分法与欧拉恒等式法的对比OMP实现方式的对比 一 问题描述 分别采用积分法和欧拉恒等式计算
  • 语音信号处理 | 基于Hilbert-Huang变换的基音检测方法

    HHT原理 Hiibert Huang变换是由Huang等人于1998年提出来的一种信号分析方法 xff0c 它主要由两个部分组成 经验模型分解 Empirical Mode Decomposition EMD 和希尔伯特变换 xff08
  • 机器学习 | 使用TensorFlow搭建神经网络实现鸢尾花分类

    鸢尾花分类问题是机器学习领域一个非常经典的问题 xff0c 本文将利用神经网络来实现鸢尾花分类 实验环境 xff1a Windows10 TensorFlow2 0 Spyder 参考资料 xff1a 人工智能实践 xff1a Tensor
  • 语音信号处理 | 基于卡尔曼滤波的语音增强算法

    文章目录 1 概述2 卡尔曼滤波原理被估计的信号离散卡尔曼滤波算法参数选择 3 基于卡尔曼滤波的语音增强算法语音模型分析参数确定 4 程序实现语音数据的导入 加噪与分帧卡尔曼滤波器参数初始化卡尔曼滤波过程结果可视化 5 运行结果与结果分析运
  • UDP实时图像传输进阶篇——1080P视频传输

    在UDP实时图像传输一文中 xff0c 介绍了如何使用UDP来实现图像的实时传输 xff0c 并使用C 进行了发送端和接收端的搭建 但是文中的方法是对整张图片进行JPEG压缩 xff0c 并通过UDP一次性地发送到接收端 xff0c 由于一
  • 机器人路径规划之Dijkstra算法

    在机器人路径规划之动态窗口法文中 xff0c 介绍了一种局部路径规划方法 动态窗口法 xff0c 本文将介绍一种全局路径规划方法 Dijkstra算法 狄克斯特拉算法 Dijkstra算法是从一个顶点到其余各顶点的最短路径算法 xff0c
  • 语音信号处理 | 使用短时能量和谱质心特征进行端点检测

    文章目录 概述原理及MATLAB实现基本流程特征提取短时能量谱质心 阈值估计和阈值化处理提取语音片段 MATLAB2020a中的VAD函数参考 概述 在复杂的应用环境下 xff0c 从音频中分割出语音信号和和非语音信号 xff0c 是一个很

随机推荐

  • 语音信号处理 | 傅里叶变换、短时傅里叶变换、小波变换、希尔伯特变换、希尔伯特黄变换

    在信号处理领域 xff0c 存在诸多变换 xff0c 比如标题中的五个变换 本文将对这五个变换进行介绍和比较 在开始之前 xff0c 我们需要先理清什么是平稳信号 xff0c 什么是非平稳信号 我们知道 xff0c 自然界中几乎所有信号都是
  • clang-format格式文件。可以直接复制引用

    Language Cpp BasedOnStyle LLVM AccessModifierOffset 2 AlignAfterOpenBracket Align AlignConsecutiveMacros false AlignCons
  • 多线程之多核线上考试试题瞎解

    匆忙的大三早已结束 xff0c 时隔两月 xff0c 再以此文祭奠我炸掉的多核考试 这次考试真正能写出来的也就两道题 xff0c 以下简单地记录一下 第二题 随机产生2个10 10的浮点数矩阵A和B xff0c 先将矩阵A和B作转置 xff
  • 视觉SLAM | RealsenseD435i相机标定

    在运行VINS MONO VINS Fusion等SLAM方案的时候 xff0c 需要很准确的相机参数 xff0c 否则很容易漂移 本文是RealsenseD435i相机标定过程的记录 xff0c 标定主要有三个步骤 IMU标定相机标定IM
  • 视觉SLAM | 使用RealsenseD435i运行VINS-Fusion

    使用RealsenseD435i运行VINS Fusion VINS Fusion是基于双目的视觉惯导方案 xff0c 不太符合我目前的需求 xff0c 但这是我使用的第一个视觉SLAM方案 xff0c 接下来还是简单记录下 运行环境 硬件
  • 视觉SLAM | 在ROS上运行ORB-SLAM2

    本文直接使用的github上的orb slam 2 ros实现在ROS上运行ORB SLAM2 xff0c 这个ros包能够得到相机的位姿以及稀疏点云 xff0c 而且删掉了对Pangolin的依赖 xff0c 进行可视化时要用RViz 运
  • ROS报错记录及解决方法(不定期更新)

    ROS下载缓慢 如果是在国内安装 xff0c 建议在安装之前先配置国内的镜像源 xff0c 在软件和更新进行更改即可 参考 xff1a Ubuntu18 04下安装ROS 由于没有公钥 xff0c 无法验证下列签名 安装ROS时报错 xff
  • ROS与STM32通信

    ROS与STM32是用串口进行通信的 xff0c 主要有两种方式 xff0c 一是将STM32作为一个节点 xff0c 二是制作一个上位机节点 负责与STM32进行串口通信 xff0e 第一种方式需要专门的硬件 xff0c 所以我选择第二种
  • 使用VScode搭建ROS开发环境

    俗话说 xff02 工欲善其事必先利其器 xff02 xff0c 之前在Ubuntu上运行的ROS项目都是用vim或者gedit编写和修改代码 xff0c 然后在终端编译运行 xff0c 很不方便 xff0c 函数跳转查看都没办法实现 所以
  • TCP实时图像传输

    之前尝试过使用UDP进行图像传输 xff0c 而UDP协议要求包小于64K xff0c 对于较大的图像 xff0c 需要使用分片压缩的方式进行传输 xff0c 操作较复杂 xff0c 同时不能保证图片的每一部分都能够正确传输 详见 xff1
  • STM32部分BUG及解决方法记录(不定期更新)

    1 编译使用CubeMX生成的代码时报错 Error L6218E Undefined symbol HAL PWREx DisableUCPDDeadBattery referred from stm32g4xx hal msp o 解决
  • 语音信号处理 | Python实现端点检测

    由于项目需要 xff0c 我要使用Python对语音进行端点检测 xff0c 在之前的博客使用短时能量和谱质心特征进行端点检测中 xff0c 我使用MATLAB实现了一个语音端点检测算法 xff0c 下面我将使用Python重新实现这个这个
  • 进程,线程,应用程序。概念理解

    简单的说 xff0c 进程 可以承载一组相关的 NET 程序集 xff0c 而 应用程序域 xff08 简称AppDomain xff09 是对该进程的逻辑细分 一个应用程序域进一步被细分成多个 上下文边界 xff0c 这些边界用来分组目的
  • 搭建STM32开发环境

    安装keil 点击这里下载安装最新版的keil 破解 以管理员身份运行keil xff0c 打开File gt License Management 复制CID xff0c 如下 xff1a 运行keygen2032 exe xff0c 修
  • 路径规划 | 图搜索算法:DFS、BFS、GBFS、Dijkstra、A*

    地图数据常常可以用图 Graph 这类数据结构表示 xff0c 那么在图结构中常用的搜索算法也可以应用到路径规划中 本文将从图搜索算法的基本流程入手 xff0c 层层递进地介绍几种图搜索算法 首先是两种针对无权图的基本图搜索算法 xff1a
  • 移动机器人中地图的表示

    在学习算法之前 xff0c 首先要做的是理解数据 xff0c 所以本专栏在开始介绍运动规划算法前 xff0c 首先介绍一下地图的数据形式 地图有很多种表示形式 xff0c 在移动机器人中比较常用的是尺度地图 拓扑地图 语义地图 尺度地图 x
  • 路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*

    基于图搜索的路径规划算法主要用于低维度空间上的路径规划问题 xff0c 它在这类问题中往往具有较好的完备性 xff0c 但是需要对环境进行完整的建模工作 xff0c 在高维度空间中往往会出现维数灾难 为了解决这些问题 xff0c 本文将介绍
  • ROS多机通信

    配置主从机IP地址 分别使用sudo vi etc hosts在主从机的 etc hosts文件中添加下面的代码 xff0c 其中pi是主机的用户名 xff0c esdc是从机的用户名 ip要相应的进行更改 xff0c 可以使用ifconf
  • 路径规划 | 图搜索算法:JPS

    JPS算法全称为Jump Point Search xff0c 也就是跳点算法 xff0c 可以视为A 算法的一种改进算法 xff0c 它保留了A 算法的主体框架 xff0c 区别在于 xff1a A 算法是将当前节点的所有未访问邻居节点加
  • 路径规划 | 随机采样算法:Informed-RRT*

    在文章路径规划 随机采样算法 xff1a PRM RRT RRT Connect RRT 中 xff0c 介绍了具备渐近最优性的RRT 算法 随着采样点数的增多 xff0c RRT 算法的规划结果会逐渐收敛到最优 但是可以观察到 xff0c