移动机器人路径规划(五)--- 基于Minimun Snap的轨迹优化

目录

1 我们本节主要介绍的

2  Minimum Snap Optimization

2.1 Differential Flatness(微分平坦)

2 Minimum Snap

3  Closed-form Solution to Minimum Snap

3.1 Decision variable mapping 待优化问题的映射

4 凸优化 及其它问题


1 我们本节主要介绍的

        1.轨迹优化需要有边界条件(从当前运动开始的,起始状态-->终止状态)

        2.中继节点:我希望经过中继点(到达一个路标点),当然,这个路标点也可以是我们中间的节点(通过路径搜索得到的)。

        3.需要有评价函数:评价这个是光滑(经过路标点的左极限右极限)且是动力学可行的。

2  Minimum Snap Optimization

2.1 Differential Flatness(微分平坦)

  1. 数学模型描述

    • 无人机的状态(states)指的是位置、速度和朝向等物理量,而输入(inputs)通常是指施加在无人机上的控制信号,比如推力或转矩。
    • 这段话表达了一种表示无人机状态和输入的方法:它们可以用代数函数来表达,而这些函数是关于四个特定的平面输出(flat outputs)及其导数的。
  2. 平面输出的作用

    • 通过选取这四个特定的输出以及它们的导数,可以更有效地描述无人机的状态和输入。这种选择有助于简化无人机运动的数学表达。
    • 这种方法的好处之一是能够自动生成飞行路径(trajectories)。
  3. 路径生成和跟踪

    • 在平面输出的空间中,几乎任何光滑的路径都可以通过这种模型下的无人机来追踪。
    • 这意味着,只要在平面输出的空间中给定了一个光滑的路径,这个无人机就可以按照这个路径飞行。
  4. 一个可能的选择

    • 这段话提到了一个可能的选择,即选取的四个平面输出分别是位置的 x、y、z 分量和朝向 ψ(通常表示偏航角度)。
    • 平面输出空间中的轨迹(Trajectory)σ_t 是一个函数,将时间作为参数,输出无人机在三维空间中的位置和旋转。

        我们先看无人机的状态:12维度

        3维位置 + 3维无人机的转动姿态 + 3维xyz运动的速度 + 3个旋转姿态的角速度

        无人机飞行的运动方程:我们通过牛顿方程和欧拉方程描述

        无人机的合力垂直于螺旋桨的,ma = -mg + R(F1+F2+F3+F4)就是一个牛顿第二定律,R是坐标变换。第二-四表示转动的关系表示力矩。

        我们证明确实可以把无人机的12维状态量压缩到xyz、yaw上:

          无人机做planing是否需要对姿态进行planing?它的姿态一定和它的加速度绑定在一起的,因为无人机的合推力一定垂直于螺旋桨的平面垂直于自己的body frame的Z轴产生的推力。我们来看一种情况:

        无人机的合力方向是确定的,合力提供的加速度是知道的。

        到此推导完毕。

2 Minimum Snap

        先拿一维来说,如果我们要生成一个光滑的一段轨迹:

        光滑等价于可导。(多项式其实就是光滑的,多阶微分可导)(如果要求速度连续,则加速度可导)

        连续要保证左右极限相同。

        如果多段呢?

        我们假设每一段有一个多项式函数,我们的机器人要通过中间点,要给定一个速度加速度的值如下:

        但是中间节点的速度,加速度是我们人为指定的,指定多少是合理的呢?我们往往是指定不了的,我们要去利用优化的思想去求解!

        那么我们现在的目标就是求解多段多项式:

        满足首末约束,经过中间点,中间点的左右极限高阶导数相同(光滑连续),整体轨迹snap最小。

        我们可以看一下分段多项式的形式:

        每一段轨迹都是多项式、每一段轨迹的时间一定要是已知的。

        那么我们怎么合理的选择轨迹的阶数呢?

        1.确保轨迹连续性

        2.确保轨迹的光滑性

        3.确保优化阶数最小

        工程上我们有些约定:

        如果我们的轨迹是K段的,我们最小化jerk,首位各提供三个约束(P、V、A),中间有K-1个分段点。每个点提供了位置约束(K-1个P约束),总共有 3 + 3 + K - 1 = K + 5个约束

        有K段轨迹,每段的阶数为N,每一段轨迹提供的未知数的自由度是N+1,总共是(N+1)*K,因此可以算出最低的N。

        还有时间线的问题:

        我们来计算代价函数:

        Qj是海森矩阵。

        我们要对优化问题增加一些约束:

        这是一个等式约束,同样的我们要增加连续性约束:

        是一个凸优化的问题:

        是考研数学的内容:凸集合就是我们在集合中取到任意两个点连接这条线上的每两个点都在集合中:

        那什么是凸优化问题呢?

        我们有一个目标函数f_0{(x)},它会受制于一些不等式、等式约束。

        几种优化问题:

3  Closed-form Solution to Minimum Snap

3.1 Decision variable mapping 待优化问题的映射

        我们之前明白了我们优化的其实是多项式的系数:五阶的话就是p_0-p_5,这样的话其实会问题,这里我们求解出了p_0-p_5其实是没有物理含义的。如果我们求解一个p_5非常大,那么就会出现轨迹不稳定的问题。因此中间点的va需要根据物理意义去求最优解。

        那么我们怎么做?我们需要构造映射矩阵M,把所有我们要求解的p映射为端点的导数

        那应该怎么写呢?把多项式的系数映射成导数。

        d怎么排布呢?端点的导数,和p排列对应,那么d就是排布第一个点的各阶导数、第二个点的各阶导数......

        上面是推导。

        我们通过两个式子可以得到下面的式子:

        将固定不变的变量和优化变量进行分解:

        构造选择矩阵C^T,乘以构造的结果等于原来端点的导数:df固定的变量、dp待优化变量。

        我们求到了解析解d_p^{*}

        我们来看看如何写这个C

        第i段轨迹的最前面的点和最后面的点的各阶导数。我们有16个的量、但是有4个重叠的量,因此只有12个。

        安全性呢?生成轨迹的时候可能撞车??

        如果我们碰到了障碍物,我们在轨迹的中间新生成一个路标点去新生成轨迹。

        但这也不是很好的:我们添加不等式约束

4 凸优化 及其它问题

        Numerical Stability:数值稳定性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/171121.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023 羊城杯 final

前言 笔者并未参加此次比赛, 仅仅做刷题记录. 题目难度中等偏下吧, 看你记不记得一些利用手法了. arrary_index_bank 考点: 数组越界 保护: 除了 Canary, 其他保护全开, 题目给了后门 漏洞点: idx/one 为 int64, 是带符号数, 所以这里存在向上越界, 并且 buf 为局部变量,…

程序员有必要考个 985 非全日制研究生嘛?

大家好,我是伍六七。 经常有读者问我,非全日制研究生好考嘛?有用嘛?今天我们来聊聊这个问题。 科普一下:什么是非全日制研究生? 非全日制研究生是国家在 2017 年对教育行业的重大改革。 非全日制需要参加…

vscode工作区多Tabs

Search,输入 window.nativeTabs,Open Settings 勾选,restart

轻量封装WebGPU渲染系统示例<36>- 广告板(Billboard)(WGSL源码)

原理不再赘述&#xff0c;请见wgsl shader实现。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/BillboardEntityTest.ts 当前示例运行效果: WGSL顶点shader: group(0) binding(0) var<uniform> objMat :…

维基百科文章爬虫和聚类【二】:KMeans

维基百科是丰富的信息和知识来源。它可以方便地构建为带有类别和其他文章链接的文章&#xff0c;还形成了相关文档的网络。我的 NLP 项目下载、处理和应用维基百科文章上的机器学习算法。 一、说明 在我的上一篇文章中&#xff0c;展示了该项目的轮廓&#xff0c;并奠定了其基础…

广西桂林钢结构钣金折弯件3d扫描全尺寸偏差检测-CASAIM中科广电

钣金是一种针对金属薄板&#xff08;通常在6mm以下&#xff09;的综合冷加工工艺&#xff0c;包括剪、冲/切/复合、折、焊接、铆接、拼接、成型&#xff08;如汽车车身&#xff09;等&#xff0c;其显著的特征就是同一零件厚度一致&#xff0c;通过钣金工艺加工出的产品叫做钣金…

代码随想录 11.21 || 单调栈 LeetCode 84.柱状图中最大的矩形

84.柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1。求在柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。和 42.接雨水 类似&#xff0c;在由数组组成的柱状图中&#xff0c;根据条件求解。 图…

大数据平台红蓝对抗 - 磨利刃,淬精兵! | 京东云技术团队

一、背景 目前大促备战常见备战工作&#xff1a;专项压测&#xff08;全链路压测、内部压测&#xff09;、灾备演练、降级演练、限流、巡检&#xff08;监控、应用健康度&#xff09;、混沌演练&#xff08;红蓝对抗&#xff09;&#xff0c;如下图所示。随着平台业务越来越复…

六要素超声波微气象仪一款气象监测设备

WX-WQX6 随着科技的发展&#xff0c;人们对天气的预测和掌控能力越来越强。在这个领域&#xff0c;六要素超声波微气象仪以其精准、实时的气象监测能力&#xff0c;赢得了众多关注。这款仪器不仅可以实时监测温度、湿度、风速、风向、气压和雨量六个气象要素&#xff0c;还可以…

关于爬虫!看这一篇就够了!

作为一个互联网的技术开发&#xff0c;爬虫不管是自己写的还是所负责的网站被爬&#xff0c;都是挺常见的。 但是一个很常见的东西&#xff0c;却一直没有系统梳理过&#xff0c;今天我们从发展历史&#xff0c;价值&#xff0c;问题和应对恶意爬虫的策略来聊一聊爬虫。 1 爬…

数字化转型与企业创新—基于中国上市公司年报的经验证据(2007-2022年)

参照潘红波&#xff08;2022&#xff09;的做法&#xff0c;对来自中南大学学报《数字化转型与企业创新—基于中国上市公司年报的经验证据》一文中的基准回归部分进行复刻。文章实证检验数字化转型对企业创新的影响。用年报词频衡量 一、数据介绍 数据名称&#xff1a;数字化转…

新手教师如何迅速成长

对于许多新手教师来说&#xff0c;迈出教学的第一步可能会感到非常困难。不过&#xff0c;通过一些关键的策略和技巧&#xff0c;还是可以快速提升教学能力的&#xff0c;我将为大家提供一些实用的建议&#xff0c;帮助各位在教育领域迅速成长。 深入了解学科知识 作为一名老师…

Dubbo开发系列

一、概述 以上是 Dubbo 的工作原理图&#xff0c;从抽象架构上分为两层&#xff1a;服务治理抽象控制面 和 Dubbo 数据面 。 服务治理控制面。服务治理控制面不是特指如注册中心类的单个具体组件&#xff0c;而是对 Dubbo 治理体系的抽象表达。控制面包含协调服务发现的注册中…

webAPI serial——串口连称

重点 关闭正在读的串口 借鉴文章:webapi串口 async closeport() {this.$emit("changeSerialStatus", false);//这里要注意&#xff0c;一定要关闭读取this.status false;//取消后&#xff0c;done会变成true&#xff0c;会执行reader.releaseLock();this.reader.c…

人机交互——机器人形态

1.聊天机器人 2.任务型机器人 3.面向FAQ的问答机器人 4.面向KB的问答机器人

Golang基础-面向过程篇

文章目录 基本语法变量常量函数import导包匿名导包 指针defer静态数组动态数组(slice)定义方式slice追加元素slice截取 map定义方式map使用方式 基本语法 go语言输出hello world的语法如下 package mainimport ("fmt""time" )func main() {fmt.Println(&…

公网环境固定域名异地远程访问内网BUG管理系统

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

传输层协议 - TCP(Transmission Control Protocol)

文章目录&#xff1a; TCP 协议关于可靠性TCP 协议段格式序号与确认序号六个标志位16位窗口大小 确认应答&#xff08;ACK&#xff09;机制超时重传机制连接管理机制连接建立&#xff08;三次握手&#xff09;连接终止&#xff08;四次挥手&#xff09;TIME_WAIT 状态CLOSE_WAI…

【Vue】响应式与数据劫持

目录 前言 响应式 Vue的响应式是如何实现的 数据劫持 Vue中的data属性都具有响应式 Vue后期添加的属性如何使其具有响应式 数组的响应式处理 如何使用数组下标去修改可以具有响应式呢 前言 什么是响应式&#xff1f;数据劫持是什么&#xff1f;Vue响应式是如何实现的&a…

成都瀚网科技有限公司抖音带货靠谱么

近年来&#xff0c;随着社交媒体的兴起&#xff0c;越来越多的企业开始利用抖音等短视频平台进行产品推广和销售。成都瀚网科技有限公司也紧跟潮流&#xff0c;通过抖音平台进行带货。那么&#xff0c;成都瀚网科技有限公司的抖音带货靠谱么&#xff1f;本文将从以下几个方面进…