如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的。闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver。
这里介绍Nicholas Roy文章中闭式求解的方法。
1. QP等式约束构建
闭式法中的 Q 矩阵计算和之前一样(参照文章一),但约束的形式与之前略为不同,在之前的方法中,等式约束只要构造成
Aipi=di, Ai=[A0 At]Ti, di=[d0,dT]i
其中 d0,dT 为第 i 段poly的起点和终点的各阶导数组成的向量,比如只考虑PVA:
块合并各段轨迹的约束方程得到
Atotal⏟k(n+1)×6k⎡⎣⎢⎢⎢p1⋮pk⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢d1⋮dk⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢p1(t0)v1(t0)a1(t0)p1(t1)v1(t1)a1(t1)⋮pk(tk−1)vk(tk−1)ak(tk−1)pk(tk)vk(tk)ak(tk)⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥6k×1
k 为轨迹段数,