路径平滑算法

路径平滑算法概述

路径平滑方案
1、路径规划阶段将机器人约束模型加入规划器。
2、规划阶段不考虑任何约束,在后处理步骤考虑非完整约束。

后处理平滑方法
三种方法:优化、差值和拟合
基于插值的方案,平滑后路径经过路径中所有的路径点,形成更长的曲线。
基于拟合的方案,平滑后路径远离规划路径的路径点,产生的曲线更短。

基于优化的路径平滑

一、APOLLO参考性平滑方法
参考线平滑,高精地图给出的道路中心线的平滑性往往都不能满足规划模块的需求,因此规划中是不能拿来直接用的,需要对其进行平滑操作。共有三种参考性平滑算法:
1)QpSpline Smoother:分段5次多项式拟合+二次规划
参考链接:https://zhuanlan.zhihu.com/p/345175084
2)SpiralReferenceLine Smoother:多项式螺旋线优化
参考链接:https://zhuanlan.zhihu.com/p/347373426
3)DiscretePoints Smoother:默认配置,离散点平滑
参考链接:https://zhuanlan.zhihu.com/p/371585754
二、Hybrid A*平滑
优化目标包括障碍物、曲率、顺滑、voronoi势场项等。代码并没有使用论文中共轭梯度下降法,而是使用了普通的梯度下降法。
参考链接:https://zhuanlan.zhihu.com/p/113697820
代码:
https://github.com/karlkurzer/path_planner【源代码】
https://github.com/linxigjs/path_smoother【加curvature项、voronoi成本、平滑项重写】
三、其余基于优化的平滑算法:
1、数字地图(高精地图)中获取道路中心线,即初步的参考线;使用共轭梯度非线性优化方法使其平滑;使用三次B样条曲线插值
参考资料:https://zhuanlan.zhihu.com/p/109341571
2、使用梯度下降法,移动和插入顶点使得离障碍物更远、离障碍物近的地方路径点更密集;使用基于cost的short-cutting方法删除不必要的路径点。
参考资料:https://zhuanlan.zhihu.com/p/113697820
代码:https://github.com/eric-heiden/grips

基于插值或者拟合的路径平滑

主要为曲线生成技术,主要分为图形方法和函数方法。
基于图的曲线生成方法:直线、弧和圆构成;圆弧组合两个直线路径段时,它们面临着曲率不连续性。包括dubins曲线和R-S曲线。
dubins:前向运动,直线+最小转弯半径圆弧。具有曲率约束的最短路径,但是曲率不连续
r-s曲线:前向或者反向运动,没有考虑障碍物信息。在障碍物环境下,搜索困难

基于函数曲线生成方法:clothoids【回旋线】、贝塞尔、b样条、三次样条、多项式插值等。
曲线参考链接:https://zhuanlan.zhihu.com/p/364421182
clothiod:clothiod的曲率半径和长度成线性关系。可以考虑有限长度的clothoid应用到机器人领域。
多项式插值:拉格朗日多项式插值、Hermite多项式插值。计算复杂,龙格现象
贝塞尔曲线
参考链接:https://zhuanlan.zhihu.com/p/437529481
代码:https://gitee.com/alanby/PathPlanning
b样条:
参考链接:https://zhuanlan.zhihu.com/p/260724041
https://blog.csdn.net/tuqu/article/details/4749586
代码:https://github.com/hubery05/A-start-with-B-spline

基于佛洛依德算法的路径平滑

参考链接:https://www.cnblogs.com/miaolegemi/archive/2017/12/05/7986335.html

备注:

总结不完善,仅供自看

你可能感兴趣的:(路径规划,算法)