Geometrically Constrained Trajectory Optimization for Multicopters 论文解析

2023-05-16

关于多旋翼几何约束轨迹优化

  • MINCO 轨迹类
  • 几何约束
  • 实验

《Geometrically Constrained Trajectory Optimization for Multicopters》一文由浙江大学博士 汪哲培 2022年发表在IEEE, 涉及到这篇论文地内容,由汪哲培在 Bilibili 做了介绍:论文相关介绍

关于几何约束多旋翼轨迹规划,属于路径规划地后端优化,论文的实验实现比现有的其他路径生成算法的生成速度快一个数量级。具有简洁、高效、非奇异、适用性等优势。

论文中提到的相关工作:微分平坦性(涉及的几篇文献,简要概述)、基于采样的运动规划(PRM和RRT的发展)、基于优化的路径规划(GPOPS-Ⅱ,ACADO)需要很长的计算时间。

MINCO 轨迹类

参数化方式:中间点 q = [ P1,P2,…,P(N-1) ]T 和 T =[ T1,T2,T3,…,TN ]T ,(矩阵转置)
条件:满足起始边界条件,且满足最优性条件的固定段数轨迹。
任意给定参数,MINCO 轨迹的产生为线性复杂度,进一步设计了 MINCO 轨迹类的 Deformation 形变操作

形变操作: 轨迹类在任意用户需求下的时空变形。
在这里插入图片描述
在轨迹优化的时候,经常会碰到 无人机视野被障碍物挡住 的情况,有时候需要做一些视野上的约束,让无人机的视野不被覆盖,既要调整时间又要调整空间。第二个是无人机对安全阈值的需求,虽然原本优化的轨迹没有碰到障碍物,但是在离障碍物太近的情况下,如果无人机受到干扰,或者被风吹一下,就会产生碰到障碍物的紧急情况,在一个较高的安全阈值需求下,就需要把 watpoint 向远离障碍物的方向做相应的形变,对空间进行调整。

所有在轨迹上的需求,均可以优化直接定义在轨迹上的函数 F(c,T) 来实现,对于 MINCO 轨迹,定义:H( q, T ) = F( c(q,T) , T )


几何约束

**时间参数上的几何约束:**采用解析的 全局微分同胚 将定义域变换到欧氏空间。
在这里插入图片描述
在这里插入图片描述

空间上的几何约束: 考虑直接在几何参数下的几何约束,对于 T 而言,目标函数于定义域边界趋于正无穷。对于 q 而言,每一个中间点均被约束在任意一个凸多面体或者球之中。

具有时空变形的MINCO轨迹,在MINCO中,仅用q和T紧凑参数化
在不牺牲可扩展性的前提下,提出了时间积分惩罚函数,将有约束轨迹优化问题转化为可可靠求解的稀疏无约束轨迹优化问题

  1. 消除时间限制
  2. 球面空间约束消除
  3. 多面体空间约束消除
  4. 时间积分惩罚功能
  5. 基于无约束NLP的轨迹优化

实验

论文中实现的方法 使用纯C++ 和Eigen 依赖,串行实现,不依赖商用求解器
在这里插入图片描述
在这里插入图片描述
提出的方法比其他的方法快一个数量级,并且在轨迹质量上与求解器求解的轨迹相差不大。

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

Geometrically Constrained Trajectory Optimization for Multicopters 论文解析 的相关文章

  • 从非常大的未排序列表中获取最大 X 数字的最快方法?

    我试图从我的程序生成的分数列表中获取最高的分数 例如 100 分 不幸的是 该列表很大 大约数百万到数十亿 因此排序是程序中一个耗时的部分 排序以获得前 100 名分数的最佳方法是什么 到目前为止我能想到的唯一两种方法是要么首先将所有分数生
  • 如何优化这个 CUDA 内核

    我已经分析了我的模型 似乎该内核约占我总运行时间的 2 3 我一直在寻找优化它的建议 代码如下 global void calcFlux double concs double fluxes double dt int idx blockI
  • 迷你图渲染速度慢并且浏览器挂起

    迷你图 http omnipotent net jquery sparkline 非常适合制作小型内联图 但是 如果它们所在的容器是隐藏的 则不能简单地将它们绘制在幕后然后显示它们 您必须首先显示容器 然后调用 sparkline disp
  • 在 .NET 中,mystring.Length == 0 或 mystring == string.Empty 哪个最好? [复制]

    这个问题在这里已经有答案了 可能的重复 检查字符串内容 字符串长度与空字符串 https stackoverflow com questions 10230 checking for string contents string lengt
  • 在现代复杂游戏中实现成就系统

    如今创建的许多游戏都带有自己的成就系统 奖励玩家 用户完成某些任务 stackoverflow 上的徽章系统是完全相同的 但有一些问题我无法找到好的解决方案 成就系统必须始终留意某些事件 想想一款提供 20 到 30 个成就的游戏 例如 战
  • 使用 :first 优化 jQuery 选择器

    我有过这样的感觉 class first 运行速度比 class 所以任何时候我都知道只有一个 class在子集中 我已经使用了它 Does first使查询运行得更快 还是没有必要 这实际上取决于浏览器 first http api jq
  • CUDA 常量内存是否应该被均匀地访问?

    我的 CUDA 应用程序的恒定内存小于 8KB 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 如果是 如何确保所有线程同时访问同一地址 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 是的 这缓存本身每
  • 排列 SSE __m128i 寄存器内的字节

    我有以下问题 In m128i寄存器有 16 个 8bit 值 顺序如下 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 我想要实现的是有效地洗牌字节以获得此排序 1 2 3 4 5 6 7 8 9 10 11
  • str.find 怎么这么快?

    我之前遇到过一个问题 我在迭代字符串并使用切片时寻找子字符串 原来这是一个really关于性能的坏主意 str find速度要快得多 但我不明白为什么 import random import string import timeit Ge
  • 有什么方法可以分析 Flex 中内置的 SWF 的大小吗?

    我的 Flex 应用程序看起来比应有的要大 里面有很多代码 但资产不多 而且看起来很大 但我不知道如何弄清楚空间的去向 我知道 link report 选项 但它只给出外部链接库类的大小 我非常有兴趣查看应用程序中所有类和资源大小的报告 如
  • 了解 Tensorflow 中的 while 循环

    我正在使用用于 Tensorflow 的 Python API https www tensorflow org api docs python 我正在努力实施罗森布罗克函数 https www sfu ca ssurjano rosen
  • Python 中快速、小型且重复的矩阵乘法

    我正在寻找一种使用 Python Cython Numpy 快速将许多 4x4 矩阵相乘的方法 任何人都可以给出任何建议吗 为了展示我当前的尝试 我有一个需要计算的算法 A 1 A 2 A 3 A N 哪里每个 A i A j Python
  • 在 Ruby 中构建字符串时,为什么铲运算符 (<<) 优于加等于 (+=)?

    我正在通过 Ruby Koans 进行工作 The test the shovel operator modifies the original string公案中about strings rb包括以下评论 Ruby 程序员倾向于使用铲子
  • 用于预乘 ARGB 的 SSE alpha 混合

    我正在尝试编写一个支持 SSE 的 alpha 合成器 这就是我想出的 首先 混合两个 4 像素向量的代码 alpha blend two 128 bit 16 byte SSE vectors containing 4 pre multi
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是
  • 我有*很多*源文件要添加到 git 存储库,如何使其快速

    我在看here https git scm com docs git fast import寻找更快地将批量文件导入 git 存储库的灵感 但不确定是不是这样 基本上情况是 我有超过 1 亿个文件想要提交到 git 存储库 我已将它们分解为
  • CSS 选择器在哪个方向进行验证?

    我记得不久前在网上看过一个视频 是雅虎工程师的演讲 他在视频中提到浏览器从右到左读取 CSS 选择器 而不是从左到右 意义 body header links a实际上会拉出页面上的所有锚点 过滤那些具有类父级的锚点links有一个班级的家
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 方法返回 IOrderedEnumerable 而不是 IEnumerable 是否有利?

    Can it be advantageous for a method to return IOrderedEnumerable instead of IEnumerable 仅当您希望人们每次都订购该枚举并且发现很难弄清楚如何执行此操作时

随机推荐