主要内容

连接

连接初始和终端Frenet状态

描述

frenetTrajectory=连接(connectorFrenetinitialStateterminalState时间间隔在一段时间内(以秒为单位)将指定的初始Frenet状态连接到指定的终端状态。该对象函数支持从1到-nn比1,或n- - - - - - - - -n成对轨迹连接。

例子

___globalTrajectory=连接(___除了前面语法中的所有参数外,还返回全局坐标中的轨迹。

例子

全部折叠

使用弗莱内坐标为参考路径生成可选轨迹。为你的轨迹指定不同的初始和最终状态。根据生成的轨迹调整状态。

从一组路径点生成一个参考路径。创建一个trajectoryGeneratorFrenet对象从引用路径返回。

路点= [0 0;...50 20;...100 0;...150 10];refPath = referencePathFrenet(路径点);connector = trajectoryGeneratorFrenet(refPath);

生成一个5秒的轨迹,在路径原点和路径下30米的点之间。

initState = [0 0 0 0 0 0];% [S ds ddS L dL ddL]termState = [30 0 0 0 0 0 0];% [S ds ddS L dL ddL][~,trajGlobal] = connect(connector,initState,termState,5);

在全局坐标中显示轨迹。

显示(refPath);持有平等的情节(trajGlobal.Trajectory (: 1) trajGlobal.Trajectory (:, 2),“b”)传说([“锚点”“参考路径”“弹道高度30米”])

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示路径点,参考路径,到30m的轨迹。

创建横向偏差在-3米到3米之间的终端状态矩阵。生成轨迹,在10秒内覆盖相同的弧长,但横向偏离参考路径。显示新的替代路径。

termStateDeviated = termState + ([-3:3]' * [0 0 0 0 1 0 0]);[~,trajGlobal] = connect(connector,initState,termStateDeviated,10);clf显示(refPath);持有平等的i = 1:length(trajGlobal) plot(trajGlobal(i).Trajectory(:,1),trajGlobal(i).Trajectory(:,2),‘g’结束传奇([“锚点”“参考路径”“另类轨迹”)举行

图中包含一个轴对象。axis对象包含9个line类型的对象。这些对象表示路径点、参考路径、可选轨迹。

指定一个新的终端状态来生成一个新的轨迹。这种轨迹是不可取的,因为它需要反向运动才能达到10米/秒的横向速度。

newTermState = [5 10 0 5 0 0];[~,newTrajGlobal] = connect(connector,initState,newTermState,3);clf显示(refPath);持有平等的情节(newTrajGlobal.Trajectory (: 1) newTrajGlobal.Trajectory (:, 2),“b”);传奇([“路标”“参考路径”“新轨迹”)举行

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示路径点、参考路径、新轨迹。

通过指定的弧长来放宽对纵向状态的限制.再次生成并显示轨迹。新位置显示出偏离参考路径的良好替代轨迹。

relaxedTermState = [NaN 10 0 5 0 0];[~, trajglobalrelaxstate] = connect(connector,initState,relaxedTermState,3);clf显示(refPath);持有平等的情节(trajGlobalRelaxed.Trajectory (: 1) trajGlobalRelaxed.Trajectory (:, 2),‘g’);持有

图中包含一个轴对象。axis对象包含3个line类型的对象。

输入参数

全部折叠

Frenet轨迹发生器,指定为trajectoryGeneratorFrenet对象。

初始Frenet状态,指定为n-by-6数值矩阵。矩阵的每一行都是表示轨迹初始状态的一组弗莱内坐标[S dS ddS L dL ddL].的价值n必须等于?中的行数terminalState参数或1

最后弗莱纳州,指定为n-by-6数值矩阵。矩阵的每一行都是表示轨迹初始状态的一组弗莱内坐标[S dS ddS L dL ddL].的价值n必须等于?中的行数initialState参数或1

所有轨迹的时间范围,指定为以秒为单位的正标量。所生成的轨迹在此时间跨度内均匀采样TimeResolution的属性trajectoryGeneratorFrenet对象中指定的connectorFrenet论点。

输出参数

全部折叠

所有初始状态和最终状态之间的Frenet轨迹,返回为具有以下字段的结构数组:

  • 轨迹- - - - - -n-by-6数值矩阵。矩阵的每一行都是表示轨迹初始状态的一组弗莱内坐标[S dS ddS L dL ddL]

  • 时间-来自的正标量向量0时间间隔在几秒钟内。

相对于参考路径的弗莱内状态描述

该函数支持从1到-nn比1,或n- - - - - - - - -n基于行数的成对轨迹连接initialState而且terminalState

所有初始和最终状态之间的全局轨迹,返回为带字段的结构或结构数组:

  • 轨迹- - - - - -n-by-6数值矩阵。矩阵的每一行都是该形式的一组全局状态[x y theta kappa dkappa s]

  • 时间-来自的正标量向量0时间间隔在几秒钟内。

描绘全球弗莱内坐标

该函数支持从1到-nn比1,或n- - - - - - - - -n基于行数的成对轨迹连接initialState而且terminalState

扩展功能

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

版本历史

R2020b中介绍

Baidu
map