局部路径规划——贝塞尔曲线

对于车辆系统,规划的轨迹应满足以下准则:轨迹连续;轨迹曲率连续;轨迹容易被车辆跟随,且容易生成;

先看几张图直观感受一下:

一次贝塞尔曲线:

局部路径规划——贝塞尔曲线_第1张图片

二次贝塞尔曲线:

局部路径规划——贝塞尔曲线_第2张图片

 三次贝塞尔曲线:

局部路径规划——贝塞尔曲线_第3张图片

 贝塞尔曲线也是用数学公式生成曲线得方式。

在我的理解下:

n阶贝塞尔曲线就是:对于P0到Pn这n+1个点,先求每两个相邻点的一阶贝塞尔曲线,可以生成n个点;在对这n个点求一阶贝塞尔曲线,可以生成n-1个点,此时这几个点算是二阶的了;然后递归迭代。

def bezier(Ps,n,t):
    """递归的方式实现贝塞尔曲线

    Args:
        Ps (_type_): 控制点,格式为numpy数组:array([[x1,y1],[x2,y2],...,[xn,yn]])
        n (_type_): n个控制点,即Ps的第一维度
        t (_type_): 步长t

    Returns:
        _type_: 当前t时刻的贝塞尔点
    """
    if n==1:
        return Ps[0]
    return (1-t)*bezier(Ps[0:n-1],n-1,t)+t*bezier(Ps[1:n],n-1,t)

缺陷:

1.贝塞尔曲线的阶次是根据点的个数确定的,如果是N+1个点那么就是N次

2.生成贝塞尔曲线过程,如果点的个数过多,那么会出现很多峰谷值,也计算量也会爆炸。

3.贝塞尔曲线生成中局部不能更改

本文图片来自: 

路径规划与轨迹跟踪系列算法学习_第7讲_贝塞尔曲线法_哔哩哔哩_bilibili

你可能感兴趣的:(路径规划,自动驾驶,自动驾驶)