时间约束和kinematics约束及雅格比矩阵的推导

时间约束

EdgeTimeOptimal类太简单了,误差函数 _error[0] = timediff->dt();,优化 ,那么对其求偏导,显然只有一个矩阵,一个元素 1 : _jacobianOplusXi( 0 , 0 ) = 1;

kinematics 约束

两个误差方程,一个是 non-holonomic约束, :

初始配置和方向之间的角度 必须等于配置和方向之间的夹角,即

根据二维叉积 A×B=|A| |B|⋅sinα 得到

所以代码中的目标函数写成

另一个是 positive-drive-direction约束

两个configure,所以两个雅格比,维度明显是 2x3,两个误差方程分别对(x, y, angle)求偏导,源码里的求导很简单,还不如速度约束的求导复杂,就不写过程了。

值得注意的是绝对值的求导结果会用sign函数表示。