主要内容

BsplinePolytraj

使用b-splines生成多项式轨迹

描述

例子

[[,,,,QD,,,,QDD,,,,pp] = bsplinepolytraj(控制点,,,,TINTERVAL,,,,Tsamples生成一个分段立方B-Spline轨迹,该轨迹属于由控制的多边形。控制点。在给出的开始时间和结束时间之间,对轨迹进行了统一的采样TINTERVAL。该函数返回输入时间样本处的位置,速度和加速度,Tsamples。该函数还返回分段多项式pp多项式轨迹相对于时间的形式。

例子

全部收缩

使用BsplinePolytraj用给定的2-D功能xy控制点。B-Spline使用这些控制点在多边形内部创建轨迹。还给出了航路点的时间点。

cpts = [1 4 4 3 -2 0;0 1 2 4 3 1];tpts = [0 5];

计算B-Spline轨迹。该功能输出轨迹位置(), 速度 (QD),加速度(QDD),时间向量(TVEC)和多项式系数(pp使用梯形速度实现航路点的多项式。

TVEC = 0:0.01:5;[Q,QD,QDD,PP] = BsplinePolytraj(CPTS,TPTS,TVEC);

绘制结果。显示控制点和所产生的轨迹。

图图(cpts(1,:),cpts(2,:),,,'xb-') 抓住全部情节(q(1,:),q(2,:))xlabel('X')ylabel('y') 抓住离开

图包含一个轴对象。轴对象包含2个类型行的对象。

绘制B-Spline轨迹的每个元素的位置。这些轨迹是随时间参数化的立方分段多项式。

图(TVEC,Q)保持全部图([0:长度(cpts)-1],cpts,'X')xlabel('t')ylabel(“位置值”) 传奇('X位置',,,,'Y位置') 抓住离开

图包含一个轴对象。轴对象包含4个类型行的对象。这些对象代表X位,Y位置。

创建航点以与B型插条插值。

wpts1 = [0 1 2.1 8 4 3];wpts2 = [0 1 1.3 .8 .3 .3];wpts = [wpts1;WPTS2];l =长度(wpts)-1;

用于计算控制多边形内部点的形式矩阵

r =零(l+1,大小(wpts,1));a =眼(L+1);为了i = 1:(l-1)a(i+1,(i):( i+2))= [1 4 1];r(i+1,:) = 6*wpts(:,i+1)';结尾

覆盖终点并选择R0RL

a(2,1:3)= [3/2 7/2 1];a(l,(l-1):( L+1))= [1 7/2 3/2];r(1,:) =(wpts(::,1) +(wpts(:,2)-wpts(::,1))/2)/2)';r(end,:) =(wpts(:,end-end-1) +(wpts(:,end)-wpts(::,end-1))/2)/2)';dinterior =(a \ r)';

构建完整的控制多边形并使用BsplinePolytraj用新的控制点计算多项式

cpts = [wpts(:,1)Dinterior wpts(:,end)];t = 0:0.01:1;q = bsplinepolytraj(cpts,[0 1],t);

绘制结果。显示原始的航路点,计算的多边形和插值B-Spline。

数字;抓住全部情节(WPTS1,WPTS2,'o');情节(cpts(1,:),cpts(2,:),,,'X-');绘图(q(1,:),q(2,:));传奇(“原始航点”,,,,“计算控制多边形”,,,,'b-spline');

图包含一个轴对象。轴对象包含3个类型行的对象。这些对象代表原始航路点,计算的控制多边形,b-spline。

[1]法林,第9.1节

输入参数

全部收缩

B-Spline轨迹的控制多边形的点,指定为n-经过-p矩阵,哪里n是轨迹的维度p是控制点的数量。

例子:[1 4 4 3 -2 0;0 1 2 4 3 1]

数据类型:单身的|双倍的

该轨迹的开始和结束时间,指定为两元素向量。

例子:[0 10]

数据类型:单身的|双倍的

该轨迹的时间样本,指定为向量。输出位置,, 速度,QD和加速度,QDD在这些时间间隔中进行采样。

例子:0:0.01:10

数据类型:单身的|双倍的

输出参数

全部收缩

在给定时间样本中的轨迹位置Tsamples,返回为矢量。

数据类型:单身的|双倍的

在给定时间样本中的轨迹速度Tsamples,返回为矢量。

数据类型:单身的|双倍的

在给定时间样本中的轨迹加速Tsamples,返回为矢量。

数据类型:单身的|双倍的

分段多项式,作为定义分段轨迹每个部分的多项式的结构返回。您可以使用自己的分段多项式来使用Mkpp,或使用指定时间评估多项式PPVAL。该结构包含字段:

  • 形式'PP'

  • 休息p- 分段轨迹更改形式时的元素向量。p是路点的数量。

  • COEFSn((p–1) - 通过 -命令多项式系数的矩阵。n((p–1)是轨迹时间的维度。每组n行定义了描述每个变量轨迹的多项式的系数。

  • p–1。休息数减去1。

  • 命令:多项式 + 1的程度。例如,立方多项式的阶数为4。

  • 暗淡n。控制点位置的尺寸。

参考

[1] Farin,Gerald E.计算机辅助几何设计的曲线和表面:实用指南。加利福尼亚州圣地亚哥:学术出版社,1993年。

扩展功能

C/C ++代码生成
使用MATLAB®CODER™生成C和C ++代码。

在R2019a中引入