一、BVP:boundary value problem
1.motivation
BVP主要就是为了求解状态空间采样时末尾状态与上一状态之间的轨迹
2.BVP
步骤:状态参数化(多项式拟合)、添加边界条件、求解
总结:求解BVP并不难,但是OBVP很难
3.OBVP
(1)问题描述:
系统从一个状态运行至另外一个状态,中间的jerk累计和最小
(2)问题建模:
系统状态:只考虑无人机的某个轴K,状态为位置、速度、加速度
输入:jerk即加速度的导数
(3)通过极小值原理求解
①使用最小值原理需要首先定义协态,协态与模型System model有关即v、a、j,模型有三个变量,则有三个协态
②使用最小值原理需要定义哈密顿函数,哈密顿函数需要根据代价函数去获得
③代价函数的定义包括两部分:终端代价与过程代价,进而根据代价函数去定义哈密顿函数
④哈密顿函数的组成:过程代价中被积分的部分+协态的转置*系统模型
⑤极小值原理理解:
协变量是如下微分方程的解,这个微分方程就是哈密顿函数中的状态与输入都取得最优解的时候对状态的偏导数再取反,且协变量存在边界值为终端代价在末状态对状态求偏导的相反数,通过求微分方程的解及边界条件即可求出协变量。通过协变量去求如何取u的值使得哈密顿函数最小,u的取值即是最优值
(4)OBVP具体实例
①明确协变量、哈密顿函数、微分方程
②由于是边界最优问题,代价函数中不再存在终端代价,已经被终端约束所取代,所以代价函数中不存在h一项,所以可以直接求协变量
③求u*:在哈密顿函数中关于状态的变量已经最优,则哈密顿函数变成了关于j的函数,求二次方程的最优问题,直接可以求出来j的值,j的值也就是u*的取值
④根据u*=j向前积分则可得到状态,再加入边界条件即可求出系数进而求出最优状态的具体值,即从初始状态到末尾状态的轨迹
⑤知道系数后,也可以求出u*,进而代价函数也可求出,如下图
注意:终端状态中p、v、a如果只有p指定,则v与a必须加入边界条件去求解协态
二、启发式函数
1.motivation
由机器人的feasible local motion connection构成的lattice graph 做搜索时仍希望有一些启发式函数
目的:如图所示,在不考虑障碍物的搜索搜索在避障问题上表现不好,然而不考虑动力学的搜索反而在避障上表现得很好,所以需要将两者结合
2.用OBVP去优化A*
g值使用格点与格点之间的feasible local motion,而h用obvp计算出的代价取代直接欧式距离
3.对比
使用考虑动力学而不考虑障碍物的OBVP优化问题的解(类似于泊车)来作为启发式函数可以大大降低搜索的数量