osqp 求解器求解时,报出 error message : P is not upper triangular matrix.
优先查看 osqp 版本,osqp 0.6.0 之后的版本,调用函数
c_int osqp_setup(OSQPWorkspace** workp, const OSQPData* data, const OSQPSettings* settings);
若 P 不是上三角矩阵,返回值非0,报错。
建议两种解决方法:
(1) P设置时,将其设置为 upper triangular matix。(此法较为麻烦,需要推公式)
(2) 回退 osqp 版本至 0.5.0,此版本 P 不需要设置为上三角矩阵,可解决此问题。
贴图 osqp 的 release 文档 https://github.com/osqp/osqp/releases
希望上述解答对各位有用,谢谢!