Bubble Planner无人机运动规划算法解读

2023-05-16

Bubble Planner无人机运动规划算法解读

本文将介绍一种无人机的在线路径规划算法 Bubble Planner,Bubble Planner 是港大张富老师MaRS实验室提出了一种的新型规划算法,是一种用于解决复杂任务规划问题的算法,其通过将任务分解为可重复使用的子任务,并以“泡泡”形式呈现任务之间的依赖性,从而使规划过程更加直观和易于理解。这个算法基于人类的直觉和习惯,通过将任务分解为可重复使用的子任务,并以“泡泡”形式呈现任务之间的依赖性,从而使规划过程更加直观和易于理解。
在本文章中讲 Bubble Planner 的前端轨迹优化的算法 和模型图, 后端轨迹优化公式 的参数和作用列出来讲解 , 作为学习参考使用,详细推论请看原论文,由于编者水平有限 ,对于讲解中可能出现的错误,还望多多包涵!!


轨迹优化前端设计

A. Sphere-Shaped Corridor

Bubble Planner 的球形走廊指由一系列球形空间构成的三维空间区域,用于限定无人机的飞行区域。具体来说,Bubble
Planner
通过不断生成球形空间,并将其合并到已有的球形空间中,来形成一个连续的、覆盖了起点到终点的空间区域,该区域即为球形走廊。球形走廊的直径可以根据需要进行调整,以满足不同的任务需求。在球形走廊中,无人机的运动轨迹被限定在球形空间内部,而不会超出球形空间的范围。由于球形空间具有良好的几何性质,Bubble
Planner 可以使用一系列基于球形空间采样和优化的算法来实现路径规划和控制,从而提高无人机的自主飞行能力和安全性。

在这里插入图片描述

  • 如图所示 是一个球体和其中一条轨迹的定义 ,qs 和 qe 是轨迹的起点和终点,T是时间分配,o是球体的中心,n是最近的障碍点。

要生成新球体,我们首先使用障碍点云对于给定的球体执行最近邻搜索(NN搜索)在KD树上找到最近的障碍点n,算法如下所示:
在这里插入图片描述

  1. 算法的输入包括全局引导路径T、起点p0和终点pg,以及航行走廊B的标记。
  2. 定义本地引导点ph。
  3. 初始化航行走廊Bcur,将其设置为以p0为球心的一个球形空间。
  4. 将Bcur加入航行走廊列表B中。 进入循环。
  5. 获取引导路径T上当前位置Bcur的前方点ph。
  6. 使用BatchSample方法在球形空间Bcur中进行样本采样,生成一组候选路径片段。
  7. 将新的路径片段加入航行走廊列表B中。
  8. 如果终点pg在当前路径片段Bcur中,则跳出循环。
  9. 结束循环。
  10. 对航行走廊列表B中的航线进行初始化,包括航点和时间的计算等。

B . Flight Corridor Generation

Bubble Planner 的 飞行走廊是通过球形空间采样的方式来生成的。具体而言,算法首先将起点p0作为球心,以给定的初始半径为半径生成一个初始球形空间Bcur。然后,算法根据全局引导路径T上Bcur的前方点ph,使用BatchSample方法在球形空间Bcur中进行样本采样,得到一组候选的路径片段,这些片段可以覆盖Bcur的前方区域。接下来,算法将这些路径片段与Bcur进行合并,形成一个新的、更大的球形空间Bnew,以覆盖更多的地面区域。这个过程一直进行到终点pg被包含在当前球形空间中为止,最终,所有生成的球形空间构成了航行走廊B,其中每个球形空间都覆盖了一段地面区域,且相邻的球形空间之间有一定的重叠部分,以保证航线的连续性和平滑性。生成的航行走廊B可以作为后续路径规划和控制的依据。

BatchSample方法

这个算法是一种用于生成飞行走廊中下一个可飞行球的方法,其中每个球代表一组飞行姿态。该算法的主要思想是在飞行走廊中通过随机采样器生成一系列可行的飞行球,然后通过对这些球的评分,选取得分最高的球作为最佳球。评分的过程包括根据球的几何特征计算得分,以及根据球和指导点之间的距离,以及球之间的距离计算得分。这样,算法可以在保证球之间的安全距离的同时,寻找最佳的飞行方案。

在这里插入图片描述

1.首先,定义符号表示:Bf表示最后一个可飞行球;ph表示指https://www.bilibili.com/video/BV1q44y1n7Tx/?spm_id_from=333.788.recommend_more_video.3&vd_source=7687c7ece2574806a613b44866bbd9d0导点;Bbest表示本轮中最佳球;S表示随机采样器;K表示最大采样数;rd表示安全距离;Q表示按球得分排序的优先级队列。

2.初始化采样器S,设置k=0。

3.在样本数量小于最大采样数K的情况下,进行以下循环操作。

4.从采样器S中获取一个随机样本pcand。

5.根据pcand生成一个球Bcand。

6.计算球Bcand的得分。

7.将球Bcand插入到优先级队列Q中。

8.增加k的值。

9.循环结束后,如果优先级队列Q为空,则返回采样失败;否则,选取Q中得分最高的球Bbest作为本轮中最佳球。

10.返回Bbest。

在这里插入图片描述
绿色圆圈Bf是上一轮批次中生成的球体 ,样品黄色点为指导点ph。紫色点为根据由橙色阴影区域。蓝色圆圈是这一轮中最好的球体。
在这里插入图片描述
这是一项算法产生的无人机道路比较。
(a) 论文试验中提出的方法
(b)Gao等人产生的走廊。

在同一测试中
(c) 两者重叠体积的比较100次测试中的相邻球体
(d) 每个球体的体积超过100

测验。阴影区域表示超过100的最大值和最小值

C. Receding Horizon Corridors in Replan

新规划的地平线走廊是一种在当前路径被阻塞时重新计算路径的方法。
当遇到阻碍物时,Bubble Planner会将当前飞行走廊分割成多个子段,并将每个子段表示为一系列的空间区域(称为“bubble”)。然后,Bubble Planner使用随机采样的方法在每个bubble中生成一组路径候选,评估它们的安全性和可行性,并选择最优的路径作为重新规划后的路径。

具体来说的重新规划流程如下:

  1. 将当前路径分割成一系列子段,每个子段都是一个bubble。
  2. 对每个bubble进行随机采样,生成一组路径候选。
  3. 对每个路径候选计算安全性和可行性得分,并选择最优路径作为重新规划后的路径。
  4. 将所有路径段组合成一个新的完整路径。

在这里插入图片描述
后退的走廊战略
a) 绿色和粉色 虚线圆圈分别是上一个和当前复制图中的规划地平线。
b) 粉色点是重叠区域的中心,由默认初始化。
c) 绿色球形走廊之前使用热初始化生成。蓝色的走廊是新的使用默认初始化生成。

后端轨迹优化

Bubble Planner 的后端轨迹优化包括两个部分:动态规划路径优化和轨迹加速度规划。
首先,Bubble Planner 使用动态规划对前端路径进行进一步优化,以最小化路径长度和时间成本,并同时考虑路径的安全性和航迹约束条件,如飞行器的最大速度、最大加速度和最小转弯半径等。动态规划方法可以对复杂的约束条件进行求解,并找到最优的路径。
其次,Bubble Planner 对动态规划生成的路径进行加速度规划,以实现平滑的运动轨迹。这个过程中,Bubble Planner 将采用类似样条函数的方法,通过插值实现平滑轨迹。在轨迹规划的过程中,Bubble Planner 还考虑了无人机的动力学模型,如动力、惯性、重力和空气阻力等,以确保规划的轨迹是安全且可行的。

无人机在规划的路径上的运动轨迹

公式1 安全飞行函数

在这里插入图片描述
这个式子表示了在时间区间 [ti-1, ti] 中的一段平滑的曲线,其中 pi 是这段曲线在时间 t = ti-1 时的起点,Bi 是一个圆柱体区域,表示无人机在这段时间内可以安全飞行的空间范围。这个曲线的形状是由时间区间内的点 pi 确定的,可以根据实际需要进行调整,但必须保证曲线在时间区间内始终位于圆柱体内,以确保无人机的安全飞行。

公式2 最小化代价函数

在这里插入图片描述

这是 Bubble Planner 后端轨迹优化的优化问题表述。目标是最小化一个代价函数 J,包括路径的时间长度、偏差与曲率,以及路径离原路径的距离。这个问题的约束条件包括起点和终点、路径通过指定的关键点、路径长度、速度和加速度的限制、以及路径在预先定义的安全区域内。这个优化问题的解决将会得到一条光滑的路径,该路径满足所有约束条件,同时具有最小化的代价。该路径将被视为无人机在执行任务时的最优路径,从而提高无人机的效率和安全性。

p(t):路径
pi:第i段路径的起点
ti:第i段路径的起始时间
d0:路径的起始点
dg:路径的结束点
T:全局引导路径
kp(1):速度惩罚系数
kp(2):加速度惩罚系数
v_max:速度上限
a_max:加速度上限
s:总路径长度
M:路径段数
Bi:第i段路径的边界
ρT:全局引导路径惩罚系数
ρvel:速度平滑惩罚系数
ρacc:加速度平滑惩罚系数
L:Lagrangian乘子

公式3 路径约束函数

pi(t) 表示在时间t时,机器人所在的位置,即轨迹。ci(q,T) 是一个路径约束函数,它描述了机器人运动必须遵守的限制条件,其中 q 是机器人当前的位置, T 是全局导引路径。β(t) 是一组表示机器人在时间 t 时的欧拉角姿态的函数。t ∈ [0, Ti] 表示时间范围,其中 Ti 是轨迹所在的时间区间。
在这里插入图片描述

公式4 平滑惩罚函数

这个函数是一种的平滑惩罚函数,它在x≤0时惩罚值为0,当x逐渐增大时,惩罚值也会逐渐增大,但增长过程不是线性的,而是带有一定的平滑性,这使得优化问题可以更好地被解决。
在这里插入图片描述

公式5 轨迹优化函数

这个公式是用来表示Bubble Planner中的轨迹优化问题的目标函数。该问题的目标是最小化总轨迹长度和一些惩罚项,以确保生成的轨迹满足一些限制条件,如速度和加速度的最大值等。其中,kp和τi是优化变量,表示每个子轨迹的时间长度和每个子轨迹的位置。Lμ(x)是一个惩罚函数,用于对不符合限制条件的轨迹进行惩罚,例如速度和加速度超过了最大值。ρT,ρvel,ρacc和ρc是惩罚系数,用于调节不同约束条件的相对重要性。

τ和q是Bubble Planner的输入参数,表示一系列的时间段和时间段内的目标状态。
Ti表示第i个时间段的时长,Z表示时间段的数量。
pi(t)表示第i个时间段内的位置,也就是飞行器在第i个时间段内的轨迹。
kp(1)和kp(2)分别表示在时间段i内的速度和加速度,这些速度和加速度必须在一定的范围内,即不能超过vmax和amax。
Lµ(x)是一个损失函数,表示飞行器与障碍物之间的最小距离,其中x表示飞行器与障碍物之间的距离,µ是一个常数,用于平衡惩罚和飞行器的最小安全距离。
ρT,ρvel,ρacc和ρc是权重系数,用于平衡时间代价和空间代价的权重。
在这里插入图片描述

参考

https://arxiv.org/abs/2202.12177
https://www.bilibili.com/video/BV1q44y1n7Tx/?spm_id_from=333.788.recommend_more_video.3&vd_source=7687c7ece2574806a613b44866bbd9d0

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

Bubble Planner无人机运动规划算法解读 的相关文章

  • ArduPilot飞控之Mission Planner模拟

    ArduPilot飞控之Mission Planner模拟 1 源由2 Mission Planner安装 amp 模拟2 1 安装Mission Planner2 2 Mission Planner模拟 3 注意事项3 1 界面语言设置3
  • 无人机自主定位导航避障VINS+fast_planner实测~

    厦大研一研究的一个项目 xff0c 将项目开发用到的技术和难点在这记录一下 常更新 xff0c 先把框架写好 xff0c 有空的时候就过来更新 xff0c 要是有漏的或者有错误的地方 xff0c 请大佬指点 因为采用的是TX2 xff0c
  • ROS运动规划学习五---global_planner

    文章目录 前言一 global planner功能包结构二 planner core1 执行过程2 calculatePotentials 3 getPlanFromPotential 总结 前言 本节将学习ROS中的全局规划期global
  • EGO Planner代码解析----CMakeLists.txt和package.xml

    ROS本质上就是由一个又一个的package组成的 xff0c package可以说是ROS的细胞 在catkin make的时候它会一个一个的去找package然后生成目标文件 一个package可以有多个节点 判断是否为Package
  • EGO Planner代码解析bspline_optimizer部分(3)

    1 int BsplineOptimizer earlyExit void func data const double x const double g const double fx const double xnorm const d
  • ROS teb_local_planner使用

    teb local planner则是2D导航堆栈的base local planner的插件 实现了一个在线优化的本地轨迹规划器 xff0c 用于导航和控制移动机器人 xff0c 作为ROS 导航包的插件 全局规划器生成的初始轨迹在运行时
  • Fast-planner 和 Ego-planner 比较

    Fast planner 和 Ego planner 比较 Fast PlannerEgo planner Fast planner和Ego planner都是无人机路径规划中常见的算法 xff0c 但它们的实现方式和目标略有不同 Fast
  • VINS标定---Ego-planner

    1 检查realsense 和飞控的连接 查看飞控串口 ls span class token operator span dev span class token operator span ttyA span class token o
  • 【Docker】利用Docker构建motion planner运动规划的开发环境

    文章目录 一 在Native PC上安装ubuntu二 Docker开发环境 xff08 1 xff09 安装Docker xff08 2 xff09 安装Docker Compose xff08 3 xff09 获取镜像 xff08 4
  • Mission Planner中级应用(APM或PIX飞控)4——无人机APM飞控硬件故障简单维修(上)

    目录 一 飞控USB口针脚脱落 二 科教类装调无人机塑料桨射桨 一 飞控USB口针脚脱落 xff08 以apm为例 xff09 出现的问题主要原因一是USB口那一侧不要装接收机 xff0c 要装另外一侧 xff0c 免得连线的时候变形 xf
  • Mission Planner中级应用(APM或PIX飞控)1——振动测量

    https ardupilot org planner docs common measuring vibration html highlight 61 vibrat 以上为参考网站 测量振动 自动驾驶仪具有对振动敏感的加速度计 这些加速
  • Mission Planner中级应用(APM或PIX飞控)2——飞控减振

    飞控减振 自动驾驶仪具有对振动敏感的加速度计 这些加速度计值与气压计和GPS数据来估计无人机的位置 随着过度振动 xff0c 依赖精确定位的模式下的性能 xff08 例如在无人机上 xff1a AltHold Loiter RTL Guid
  • Bubble Planner无人机运动规划算法解读

    Bubble Planner无人机运动规划算法解读 本文将介绍一种无人机的在线路径规划算法 Bubble Planner xff0c Bubble Planner 是港大张富老师MaRS实验室提出了一种的新型规划算法 xff0c 是一种用于
  • TGK-Planner无人机运动规划算法解读

    高速移动无人机的在线路径规划一直是学界当前研究的难点 xff0c 引起了大量机器人行业的研究人员与工程师的关注 然而无人机的计算资源有限 xff0c 要在短时间内规划出一条安全可执行的路径 xff0c 这就要求无人机的运动规划算法必须轻型而
  • mission planner日志分析

    通过USB连接pixhawk xff0c 打missionplanner 选择需要的日志下载 xff0c 下载很慢 xff0c 慢慢等 https ardupilot org dev docs common diagnosing probl
  • XTDrone+VINs+fast-planner

    接下来的工作需要把XTDrone VINS和fast planner集成到一起 在XTDrone集成VINs按照XTDrone使用手册来就可以了 xff0c 按照仿真平台基础配置 xff0c PX4飞控与EKF配置和视觉惯性里程计 xff0
  • Fast Planner——代码解读参考资料整理

    1 地图部分 1 1 EGO Swarm代码解读 地图部分 参数解读 主要函数解读 1 2 EGO Swarm代码阅读笔记之GridMap类 1 3 EGO PLANNER代码阅读 xff08 地图部分 xff09 1 4 欧几里得距离转换
  • fast-planner 港科大

    可以使用能够更顺畅地改变航向的航向 xff08 偏航角 xff09 计划器 现在可以使用在线建图算法 它可以将深度图像和相机姿势对作为输入 xff0c 进行射线广播以更新概率体积图 xff0c 并为规划系统建立欧几里德有符号距离场 xff0
  • D435i+vins-Fusion+ego-planner+yolo无人机避障实测

    vins Fusion部分更改 1 D435i相机文件修改 修改 catkin ws src realsense ros launch 目录下的rs camera launch 重新新建重命名为rs camera vins launch x
  • 从零实现vins-mono+fast-planner+M100无人机实验在现实场景中的应用

    版权声明 本文为博主原创文章 未经博主允许不能随意转载 本文链接 https blog csdn net AnChenliang 1002 article details 109535355 最近由于科研的需要 要将VINS mono与fa

随机推荐