OSQP-多项式路径平滑

参考:二次规划(QP)样条路径优化_shawfy的博客-CSDN博客_qp二次规划

主要是参考上面这篇文章实现了下代码,几个要点记录一下:

1. 这里的建模是在Frenet系下,用SL之间的多项式关系进行建模的。

2. 我自己建模过程中两个重要概念:

  • knot(分段点,或称为锚点):要用knot - 1个多项式来表征整条路径。
  • segment(细分小段,即每两个锚点之间还要多分几个小段):主要用来画曲线 & 设置边界条件的。

3. 我自己实现过程中,目标函数、边界条件里只考虑到二阶信息,二阶连续,感觉够用了。

4. 补充一下重要的公式:

  • Hessian矩阵里,二阶导的积分:

\int_{0}^{d_{i}} {f_{i}}''(s)^{2}ds = \begin{bmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3} & a_{i4} & a_{i5} \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 4d_{i} & 6d^{_{i}^{2}} & 8d^{_{i}^{3}} & 10d^{_{i}^{4}} \\ 0 & 0 & 6d^{_{i}^{2}} & 12d^{_{i}^{3}} & 18d^{_{i}^{4}} & 24d^{_{i}^{5}}\\ 0 & 0 & 8d^{_{i}^{3}} & 18d^{_{i}^{4}} & \frac{144}{5}d^{_{i}^{5}}& 40d^{_{i}^{6}}\\ 0 & 0 & 10d^{_{i}^{4}} & 24d^{_{i}^{5}} & 40d^{_{i}^{6}} & \frac{400}{7}d^{_{i}^{7}} \end{bmatrix} \begin{bmatrix} a_{i0}\\ a_{i1}\\ a_{i2}\\ a_{i3}\\ a_{i4}\\ a_{i5} \end{bmatrix}

  • Hessian矩阵在构造的时候,不同阶的积分是直接加权在一起的
  • 约束方面:每个knot处有初值约束 or 连续性约束,非两端点处有上下界约束

5. 直接贴一下效果:

整体是在一个大直道上去做的实验,初值给了个-1.0的偏移,整体看上去还是可以绕过边界 + 保证曲线平滑的。

 6. 代码放在这里了,就花了几个小时写了一下,写的很随意,估计各种bug,仅供参考:

https://github.com/BITcsy/path_smooth

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值