先从一个简单的例子开始吧(滑块模型)
在满足图所示的边界条件,我们可以找到很多可行解,但是我们通常的做法是找到一个“最优解”
为了寻找一个最优解,我们先引入几个概念:
约束:也就是求解优化问题的限制条件,在上述滑块模型中,我们有两个约束条件(系统动力学和状态的边界条件)
可行解:满足上述约束的解,一般可行解是一个很大的区域,我们需要在这个区域里面寻找一个最优解
最优解:寻找可行解中的最优解,通常我们会形式化一个目标函数,上述滑块模型我们的目标函数可以是最小力平方与最小功率
于是,可以为轨迹优化做一个数学上的定义:
带约束条件下的目标函数求解(其实就是一个最优控制问题),有目标函数,有约束条件
既然谈到了最优控制,那么不得不说最优控制的求解:
(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:
- Kelly M. An introduction to trajectory optimization: How to do your own direct collocation[J]. SIAM Review, 2017, 59(4): 849-904
- https://blog.csdn.net/qq_35007540/article/details/105672547
评论(0)
您还未登录,请登录后发表或查看评论