贝塞尔曲线是应用于二维图形应用程序的数学曲线,由一组称为控制点的向量来确定,给定的控制点按顺序连接构成控制多边形,贝塞尔曲线逼近这个多边形,进而通过调整控制点坐标改变曲线的形状。
静态避障
需要考虑轨迹容易被车辆跟随(轨迹的曲率是否符合车辆的运动学约束)
1.找出所有的控制点
(1)p0,p1
可生成一次/阶贝塞尔曲线
(2)p0,p1,p2
两个一阶点基础上—>生成二次/阶贝塞尔曲线(最多一阶导数不为常数)
(3)p0,p1,p2,p3
两个一阶点基础上—>生成二次/阶贝塞尔曲线—>生成三次/阶贝塞尔曲线(最多二阶导数不为常数)
以上推导代换可以得到贝塞尔点与控制点之间的关系表达式
% 直接根据贝塞尔曲线定义式得到路径点
n = length(P)-1;
Path = [];
for t = 0:0.01:1
if n == 1
p_t = P;
elseif n >= 2
p_t = [0, 0];
for i = 0:n
k_C = factorial(n) / (factorial(i) * factorial(n-i));
k_t = (1-t)^(n-i) * t^i;
p_t = p_t + k_C * k_t * P(i+1,:);
end
Path(end+1,:) = p_t;
else
disp('控制点输入有误,请重新输入')
end
end