机器人学:Matlab实现实时多次贝塞尔曲线(Bézier Polynomials)插值
程序员文章站
2022-07-14 22:12:36
...
0. 引言
有时候对于三次、五次实时插值并不满足我们的控制需求,而贝塞尔曲线插值越来越受到关注。
0.1 最终效果
1. 贝塞尔插值
对于一维M
次贝塞尔曲线的公式为:
1.1 Matlab代码实现
function [res] = bezierPolynomials(s,alpha)
% s在[0,1]之间 alpha决定着曲线的形状
M = size(alpha,2)-1;
M_factorial = factorial(M);
res = 0;
for k = 0:1:M
res = res + M_factorial/(factorial(k)*factorial(M-k))*alpha(k+1)*s^k*(1-s)^(M-k);
end
end
1.2 测试代码
clear
clc
alp = [0.1 0.3 0.2 0.5 0.1 0.1]*10;
s = [0:0.01:1];
dat = [];
for i = 1:size(s,2)
dat = [dat;bezierPolynomials(s(i),alp)];
end
plot(dat);
效果就是上图所示,可以通过参数优化设计属于自己的曲线类型。