先从一个简单的例子开始吧(滑块模型)

在满足图所示的边界条件,我们可以找到很多可行解,但是我们通常的做法是找到一个“最优解”

为了寻找一个最优解,我们先引入几个概念:

约束:也就是求解优化问题的限制条件,在上述滑块模型中,我们有两个约束条件(系统动力学和状态的边界条件)

可行解:满足上述约束的解,一般可行解是一个很大的区域,我们需要在这个区域里面寻找一个最优解

最优解:寻找可行解中的最优解,通常我们会形式化一个目标函数,上述滑块模型我们的目标函数可以是最小力平方与最小功率

于是,可以为轨迹优化做一个数学上的定义:

带约束条件下的目标函数求解(其实就是一个最优控制问题),有目标函数,有约束条件

既然谈到了最优控制,那么不得不说最优控制的求解:

(1)变分法

(2)极大值定理

(3)动态规划

(4)LQR

(5)...

我们首先采用最简单的变分法来讨论:

目标函数:仅考虑Lagrange项,也就是只有路径积分项

这类问题求解方法可以采用Euler-Lagrange方程,就是上图那个公式(后面再填坑),既然有了这个方法,我们就需要构造Lagrange函数

当然滑块问题的Lagrange函数很简单,也就是加速度平方

将Lagrange函数代入Euler-Lagrange方程,可以得到: [公式] ,这意味着最优轨迹具有三次多项式(最简单是三次多项式,其他满足这个条件的也行)的形式。

然后待定系数,代入边界条件很容易求出最优轨迹。


接下来,我们来得到更一般的结论:

现在的目标函数我们定义为状态及其连续n阶导数的泛函,然后我们也可以写出其Euler-Lagrange方程

为了简化问题,我们构造最简单的Lagrange函数:状态n阶导数的平方

于是,我们根据n的不同,可以定义不同的问题,minjerk应该是最常用的问题呢

模仿上述的求解过程,我们可以得到结论:最简单的minjerk轨迹规划是 五次多项式

至此,我们知道了多项式为啥可以作为轨迹规划(更广泛地说是轨迹优化)的基本算法之一了。


小结:

(1)从最优控制的角度看 轨迹优化 问题

(2)变分法求解轨迹优化问题

(3)基本轨迹优化算法:多项式函数

Reference:

  1. Kelly M. An introduction to trajectory optimization: How to do your own direct collocation[J]. SIAM Review, 2017, 59(4): 849-904
  2. blog.csdn.net/qq_350075