EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors(论文笔记)

2023-05-16

EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors(论文笔记)

    • ESDF欧式符号距离场
    • 避碰力估算
    • 基于梯度的轨迹优化
      • 平滑惩罚
      • 障碍惩罚
      • 可行性的惩罚
      • 数值优化

传统上,基于梯度的规划器依赖于预先构建的ESDF地图来评估梯度大小和方向,并使用数值优化来生成局部最优解。尽管优化程序收敛速度快,但由于预先构造所需的ESDF,它们受到很大的影响。构建ESDF已经成为基于梯度的规划器的瓶颈。

在本文中,设计了一个无esdf的基于梯度的本地规划框架,称为EGO,我们结合了仔细的工程考虑,使其轻量级和鲁棒性。该算法由 基于梯度的样条优化器细化后程序 组成。

ESDF欧式符号距离场

欧几里德符号距离场(ESDF)可以很方便地对障碍物进行距离和梯度信息的查询,对空中机器人的在线运动规划具有重要意义。如何快速地生成ESDF地图是进行实时运动规划的重点。

港科大开源一款构建ESDF工具FIESTA(https://github.com/HKUST-Aerial-Robotics/FIESTA ),ESDF地图的每个元素,储存了到最近的障碍物的欧氏距离。

避碰力估算

本文的决策变量为b样条曲线的控制点Q,每个Q都独立拥有自己的环境信息。将在障碍物表面分配一个锚点pij,其排斥方向向量vij,如图所示
在这里插入图片描述
从Qi到第j个障碍物的障碍物距离定义为
在这里插入图片描述

基于梯度的轨迹优化

优化问题表述如下:
在这里插入图片描述其中Js为平滑性惩罚,Jc为碰撞,Jd为可行性。λs, λc, λd为各罚项的权重。

平滑惩罚

平滑惩罚被公式化为时间积分除以导数(加速度、加速度等)的平方。在没有时间积分的情况下惩罚加速度和 jerk :
在这里插入图片描述

障碍惩罚

碰撞惩罚将路径点推离障碍物,这是通过采用安全间隙 sf 和惩罚控制点dij < sf来实现的。构造了一个二次连续可微的惩罚函数jc,并随着dij的减小抑制其斜率:
在这里插入图片描述
具体来说,添加到第i个控制点的成本值为
在这里插入图片描述
Np为属于Qi的{p, v}j对的数目。综合所有Qi的成本得到总成本Jc
在这里插入图片描述
公式推导如下:
在这里插入图片描述

可行性的惩罚

通过在每个一维上限制轨迹的高阶导数来保证可行性,惩罚函数表达式为:
在这里插入图片描述
wv, wa, wj 为每一项的权值,F(·)为控制点高阶导数的二次连续可微度量函数。
在这里插入图片描述其中cr∈C∈{Vi, Ai, Ji},选择a1, b1, c1, a2, b2, c2满足二阶连续性,cm为导数极限,cj为二次区间和三次区间的分裂点。

数值优化

本文提出的问题有两个方面的特点。

  • 首先,目标函数 J 根据新发现的障碍进行自适应调整。它要求解算器能够快速重新启动。
  • 其次,二次项在目标函数的表达式中占主导地位,使得J近似二次项。这意味着利用黑森信息可以显著加快收敛速度。

采用准牛顿方法,从梯度信息近似逆海森。(inverse Hessian)

ESDF-free Gradient-based

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

EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors(论文笔记) 的相关文章

  • 无效写入——Valgrind

    您好 我在我的 c 程序中遇到了 munmap chunk invalid point 错误 主要问题是 我什至不确定指针可能变得无效的所有方式是什么 我已经检查了我的代码中是否有没有足够空间调用的字符串 但没有发现任何看起来会超出范围的情
  • 用 css 修复渐变背景

    我希望我的页面有一个从上到下流动的渐变背景 我希望背景像固定图像一样 渐变从当前浏览器视口的顶部延伸到底部 并且当您上下滚动页面时看起来相同 换句话说 当您滚动时它不会重复 它保持固定在原位 所以我想要的是这样的 and after scr
  • “免费”的冲突类型

    我收到错误 免费 的冲突类型 打电话给free 下面的函数 int main char fx x 2 5 x 1 node fxNode buildTree fx sizeof fx sizeof char printf deriveFro
  • 图中的颜色点根据值向量的不同而不同

    我正在使用 R 绘制下图plot 功能 这是一个向量图shiftTime的时间转变 我有另一个向量intensity强度值范围从 3到 9 我想根据具有颜色渐变的这些值对图中的点进行着色 在示例中 我可以在实际绘制点的值上找到颜色 因此在本
  • 在张量流中compute_gradients返回什么

    mean sqr tf reduce mean tf pow y y 2 optimizer tf train AdamOptimizer LEARNING RATE gradients variables zip optimizer co
  • 系统托盘上下文菜单具有渐变背景

    我正在用java开发桌面应用程序 启动时我的应用程序从系统托盘运行 但是系统托盘的上下文菜单根据操作系统具有标准的外观和感觉 我想自定义上下文菜单 我想为其提供渐变背景 想要更改字体 边框等 请告诉我这可能吗 如果有一些示例 请提供相同的链
  • 如何在CSS中制作具有透明度的径向渐变

    我想在透明度变化的地方制作一个径向渐变 我可以让它线性工作 但不是径向工作 background webkit gradient linear left top left bottom from rgba 50 50 50 0 8 to r
  • 一个 SVG 文件,里面有很多 SVG 渐变

    我正在制作一组使用动态渐变的按钮 我已经通过使用 Firefox 3 6 和 WebKit 专有的 CSS 扩展来处理它们 我所需要做的就是使用 background image url gradient svg 支持 Opera iOS
  • 对指针调用 free 两次

    我在讲座中被教导 召唤free 两次使用指针真的非常非常糟糕 我知道这是一个很好的做法 将指针设置为NULL 在释放它之后 然而 我仍然没有听到任何关于为什么会这样的解释 据我了解 方法malloc 有效 从技术上讲 它应该跟踪它已分配并供
  • 为什么在释放指针后取消引用它时会得到不同的结果?

    我有一个关于 C 内存管理的问题 以及 Debian GNU Linux 下的 GCC 4 3 3 根据 K R 的 C 编程语言书籍 第 7 8 5 章 当我释放指针然后取消引用它时 会出现错误 但我有一些疑问 因为我注意到有时 正如我在
  • CSS3 是否支持在单个

    我知道你可以在一个背景上制作多个背景 div 在 CSS3 中 但是是否可以混合图像引用背景 即url 具有渐变生成背景 例如 moz linear gradient 如果是这样 语法是什么 如果不是 达到相同结果的最佳实践是什么 Than
  • 第一个元素偏移量

    结构的第一个元素的偏移量为 0 是否是保证 为了更准确 让我们考虑一下 struct foo int a double b struct foo ptr malloc sizeof struct foo int int ptr ptr gt
  • HTML5画布覆盖透明渐变

    我正在 HTML5 中创建一个颜色选择器 如下面的渐变 它由三个要素组成 纯红色背景色 必须可变 从下到上黑 透明渐变 从左到右白色透明渐变 我已经成功创建了单个渐变和单个颜色 但我不知道如何将纯色和两个渐变叠加在一起 我怎样才能做到这一点
  • CSS3 渐变背景,底部有不需要的空白

    当我应用 CSS3 渐变并且内容的高度不足以容纳滚动条时 我很难摆脱底部的空白 比如这里 http womancareolympia webs com http womancareolympia webs com 我尝试过将 html 和
  • malloc() 和 free() 在哪里存储分配的大小和地址?

    在哪里malloc and free 存储分配的地址及其大小 Linux GCC 我读过一些实现将它们存储在实际分配的内存之前的某个位置 但我无法在测试中确认这一点 背景 也许有人对此有另一个提示 我正在尝试分析一个进程的堆内存 以确定另一
  • 在透明背景上制作不透明文本渐变

    它应该看起来像http img190 imageshack us img190 1686 textgradient jpg http img190 imageshack us img190 1686 textgradient jpg 棘手的
  • 用顶点之间的渐变填充 matplotlib 多边形

    我正在使用 matplotlib 的 Poly3DCollection 绘制多边形 三角形 的集合 三角形位于具有与其关联的颜色的顶点之间 我目前正在用通过平均三个顶点的颜色确定的纯色填充每个三角形 绘制三角形以形成 3D 表面网格 I w
  • Android 创建类似 iphone 的渐变

    我需要在我的 Android 应用程序中创建类似黑色 iphone 的渐变 请查看下图中顶部的黑色渐变 怎么做 谢谢 也许是这样的
  • 如何在 C 中释放指向动态数组的指针?

    我用 malloc 在 C 中创建一个动态数组 即 myCharArray char malloc 16 现在 如果我创建一个这样的函数并通过myCharArray to it reset char myCharArrayp free my
  • createRadialGradient 和透明度

    我正在玩createRadialGradient 在 HTML5 画布上 它就像一个魅力 除非我试图实现 半 透明 我制作了这个 jsFiddle 是为了让事情变得更清晰 http jsfiddle net rfLf6 1 http jsf

随机推荐

  • BIT内存顺序

    机器的最小寻址单位是字节 xff0c bit无法寻址 xff0c 也就没有高低地址和起始地址的概念 xff0c 我们需要定义一下bit的 地址 以一个字节为例 xff0c 我们把从左到右的8个bit的位置 position 命名按顺序命名如
  • 无人驾驶感知篇之融合(五)

    今天早上看到上海新增一万七千左右 xff0c 看的真的很揪心 xff01 希望白衣战士能早点战胜这场疫情 xff0c 期待明天能有好消息 xff01 今天具体讲讲多贝叶斯估计算法的原理 xff0c 多贝叶斯估计法的主要思想是将传感器信息依据
  • MAC地址的介绍(单播、广播、组播、数据收发)

    MAC地址组成 网络设备的MAC地址是全球唯一的 MAC地址长度为48比特 xff0c 通常用十六进制表示 MAC地址包含两部分 xff1a 前24比特是组织唯一标识符 xff08 OUI xff0c OrganizationallyUni
  • stm32通用定时器输出PWM控制舵机

    stm32的通用定时器有TIM2 TIM3 TIM4 TIM5 xff0c 每个定时器都有独立的四个通道可以作为 xff1a 输入捕获 输出比较 PWM输出 单脉冲模式输出等 stm32除了基本定时器 xff0c 其他定时器都能输出PWM
  • Linux内核Socket CAN中文文档

    自己在年假中空闲之余翻译的内核中Socket CAN的文档 xff0c 原文地址在 xff1a http lxr linux no linux 43 v2 6 34 Documentation networking can txt 但是这篇
  • c/c++自定义通讯协议(TCP/UDP)

    前言 xff1a TCP与UDP是大家耳熟能详的两种传输层通信协议 xff0c 本质区别在于传输控制策略不相同 xff1a 使用TCP协议 xff0c 可以保证传输层数据包能够有序地被接受方接收到 xff0c 依赖其内部一系列复杂的机制 x
  • ubuntu 使用虚拟can 与 socketCAN使用

    原文链接 xff1a https blog csdn net xiandang8023 article details 127990159 创建虚拟CAN接口 在Linux上能使用虚拟CAN接口之前 xff0c 需要在终端执行以下三个步骤
  • cmake引入第三方库

    cmake引入第三方库 第三方库包含 lib文件和 h hpp文件动态库还包含 dll文件 小例程 3rdparty bin test dll include test hpp lib Debug test lib Release test
  • AHB-APB总线协议

    AHB APB总线协议 文章目录 AHB APB总线协议一 AHB APB总线介绍二 AHB总线设备1 AHB主设备 xff08 master xff09 2 AHB从设备 xff08 slave xff09 3 AHB仲裁器 xff08
  • Modelsim缺失库快速添加

    Modelsim缺失库快速添加 文章目录 Modelsim缺失库快速添加前言一 ini文件二 器件库配置1 将器件库放在modelsim文件夹下2 ini配置文件修改 前言 在单独使用modelsim时 xff0c 假如要编译复杂的工程文件
  • AHB-APB_Lite总线协议及Verilog实现

    AHB APB Lite总线协议及Verilog实现 文章目录 AHB APB Lite总线协议及Verilog实现一 AHB Lite协议介绍二 系统框架介绍三 代码设计四 仿真测试 一 AHB Lite协议介绍 AHB xff08 Ad
  • 通信协议详解(二):IIC总线协议(传输时序+数据格式+设计实现)

    文章目录 一 IIC xff08 Inter Integrated Circuit xff09 介绍二 传输协议1 时序传输时序写操作时序数据有效性开始 amp 结束信号从机应答信号 2 数据格式 三 设计实现1 时钟2 传输过程3 三态门
  • Qt error ------ 'XXX' has not been declared

    1 头文件没加 2 调用函数者的头文件在XXX头文件的下方 转载于 https www cnblogs com god of death p 8572306 html
  • Command Expert安装

    一 安装准备 需先下载两个安装包 1 Commmand Expert安装包 https www keysight com cn zh lib software detail computer software command expert
  • Vitis开发(一):Vivado启动vitis

    Vitis是Xilinx SDK的继承开发工具 xff0c 从Vivado 2019 2版本开始启用 在Vivado 2019 1及更早版本中 xff0c 导出的硬件描述文件为 hdf文件 xff0c 给xilinx sdk使用 在Viva
  • 数字IC刷题(一)

    一 选择 1 To achieve better leakage cells are placed A HVT B LVT C RVT 解 LVT Low V threshold xff1a 低阈值 这种库的漏电流较大 xff0c 但是延迟
  • CPU设计-分支预测

    目录 CPU分支指令类型分类 1 xff09 无条件跳转 xff0f 分支 xff08 Unconditional Jump Branch xff09 指令 无条件直接跳转 xff0f 分支 xff1a 无条件间接跳转 xff0f 分支 x
  • 数字世界的积木-从MOS管搭反相器,与非门,锁存器,触发器

    文章目录 一 MOS管MOS管搭建反相器MOS管搭建传输门MOS管搭建与非门 二 与非门R S锁存器三 电平触发器电平触发RS锁存器带异步复位 xff0c 异步置位的电平触发RS锁存器电平触发D触发器 四 边沿触发器 一 MOS管 NMOS
  • 内存对齐规则

    每个特定平台上的编译器都有自己的默认 对齐系数 也叫对齐模数 程序员可以通过预编译命令 pragma pack n xff0c n 61 1 2 4 8 16来改变这一系数 xff0c 其中的n就是你要指定的 对齐系数 规则 xff1a 1
  • EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors(论文笔记)

    EGO Planner An ESDF free Gradient based Local Planner for Quadrotors xff08 论文笔记 xff09 ESDF欧式符号距离场避碰力估算基于梯度的轨迹优化平滑惩罚障碍惩罚可