[运动规划算法]Minimum Snap轨迹规划


简介

1.为什么需要平滑轨迹?

  • 为了更好地自主移动。
  • 速度不能立即改变。
  • 机器人不应该在转弯时停止。
  • 节省能量,经常地加减速会减少能量。
    在这里插入图片描述

2.平滑轨迹生成

  • 边界条件:开始、目标位置(方向)
  • 中间条件:航路点位置(方向) •可通过路径规划(A*、RRT*等)找到航路点
  • 平滑度的标准
    • 通常是转化为最小化“输入”的变化率

一、微分平坦

系统状态可以被平坦空间的状态以及他们的导数所组成的代数组合所表示。

无人机一般认为有12个维度:
在这里插入图片描述
在这里插入图片描述


二、Minimum-snap

1.平滑的一维轨迹

简单的BVP问题(两点边界值问题),已知始末状态,通过参数化来调整平滑度。
在这里插入图片描述
使用五次多项式来描述这段轨迹:
在这里插入图片描述


每个分段的一维轨迹

在这里插入图片描述


2.基于优化的轨迹生成

  • 显式最小化平面输出空间中的某些导数
  • 四旋翼动力学
    在这里插入图片描述
  • Minimum jerk: 最小化角速度,有利于视觉跟踪
  • Minimum snap: 最小化差速推力,节省能量

3.Minimum Snap轨迹生成

在这里插入图片描述

  • 每个段都是一个多项式;
  • 每个分段的多项式都是相同的阶次,这样对于问题的求解比较简单;
  • 每一段的时间间隔必须是已知的。

Minimum snap问题的限制条件:初始条件以及结束条件的限制(包含有位置,速度,加速度等);中间节点连续(包含有位置,速度,加速度)。

在这里插入图片描述
针对minimum jerk,则需要提供位置,速度,角速度3个状态量。所以N = 2 * 3(jerk) - 1 = 5
针对minimum snap,则需要提供位置,速度,加速度,以及角速度,4个状态量。所以N = 2 * 4-1 = 7

如果考虑多段的情况,例如K段,则minimum jerk ,需要 (k-1) +3 +3= k+5 , 这里只要求能够连续的到达中间点,至于以怎样的速度,怎样的加速度到达这个点,是优化出来的,不属于约束 。

假设每一段的阶数为N ,则每一段轨迹所能提供的自由度为为N+1。N阶多项式可以提供N次导数,加上原多项式,即为N+1。 所以,总计 (N+1)*k。
(N+1)*k>= k+5. 则 N = 5 / k。表明轨迹段数越多,则提供的阶次越低。

构建约束方程
在这里插入图片描述
一个多项式分段的导数约束
•还对路径点约束建模(0阶导数)
在这里插入图片描述
两段之间的连续性约束:

  • 在没有给出特定导数的情况下确保轨迹段之间的连续性
    在这里插入图片描述
    带约束的二次规划(QP)公式:
    在这里插入图片描述

三、凸优化

1.凸函数和凸集定义

在这里插入图片描述
凸集
在这里插入图片描述
在这里插入图片描述

2.轨迹优化经常遇到的问题

在这里插入图片描述


四、闭式求解解决Minimum Snap轨迹规划

在轨迹生成中,解析解中的限制条件没有物理意义,而且数值会在高次产生不稳定性,所以要把对系数(无物理意义)的优化变为对va的优化。

通过映射矩阵M将P与限制条件d相连产生关系。d又可以通过选择矩阵Ct把d中的fix条件和free条件分开为dF dP.所以P就可以换成与条件有关的矩阵,通过qp得到闭式解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


参考资料

【1】深蓝学院运动规划课程;
【2】

  • 20
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
深蓝学院运动规划minimum snap trajectory generation作业的答案如下: 在深蓝学院的运动规划课程中,我们学习了许多不同的轨迹生成算法,其中之一是minimum snap trajectory generation。这个算法的目标是生成满足一定条件的光滑轨迹。 Minimum snap trajectory generation算法的基本思想是通过最小优化问题来生成一条满足给定约束条件的光滑轨迹。算法的核心是最小化snap的总和,其中snap表示轨迹在加速度的五阶导数上的变化率。最小化snap的总和意味着生成的轨迹具有较小的曲率变化,使得机器人或其他移动实体在跟随轨迹的过程中更加平滑。 具体而言,minimum snap trajectory generation算法的步骤如下: 1. 首先,我们需要确定起始和目标状态,包括位置、速度和加速度。这些状态将用于生成轨迹。 2. 接下来,我们将定义一个多项式函数,其中的系数表示轨迹的形状。这个多项式函数通常以time作为变量。 3. 为了满足约束条件,我们需要利用起始和目标状态的信息,以及其他约束条件,例如最大速度和最大加速度。通过这些约束条件,我们可以求解一个最小化问题,目标是最小化snap的总和。 4. 我们使用求解得到的最小化问题的结果,得到多项式函数的系数,从而生成最终的轨迹。 通过minimum snap trajectory generation算法生成的轨迹具有较小的曲率变化,能够使得移动实体在遵循轨迹时更加平滑。这在许多移动应用中都非常有用,例如机器人路径规划和自动驾驶。 总结来说,深蓝学院运动规划课程中介绍了minimum snap trajectory generation算法,通过最小化snap的总和来生成满足约束条件的光滑轨迹。这个算法的步骤包括确定起始和目标状态,定义多项式函数,利用约束条件求解一个最小化问题,最后生成轨迹。这个算法在实际应用中有着广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Travis.X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值