主要内容

trajectoryGeneratorFrenet

沿参考路径寻找最优轨迹

描述

trajectoryGeneratorFrenet对象使用相对于给定参考路径的四阶或五阶多项式生成交替轨迹。每条轨迹定义了在特定时间跨度内弗莱内状态之间的运动。

Frenet状态描述了它们相对于静态参考路径的位置、速度和加速度referencePathFrenet对象。

对象将Frenet状态表示为形式向量[S dS ddS L dL ddL],在那里年代弧长和l是与参考路径方向的垂直偏差。衍生品的年代都是相对于时间的。衍生品的l都与弧长有关,年代

相对于参考路径的Frenet状态描述

若要生成可选轨迹,请在给定的时间跨度内指定初始和末端的frenet状态连接对象的功能。

创建

描述

例子

connectorFrenet = trajectory (refPath生成相对于参考路径的初始和终端状态之间的轨迹refPath指定为referencePathFrenet对象。的refPath参数设置ReferencePath财产。

connectorFrenet = trajectory (refPath、“TimeResolution”时间价值)指定离散化的时间间隔。的时间价值参数设置TimeResolution财产。

属性

全部展开

采样的Frenet状态之间的离散时间间隔,指定为以秒为单位的正标量。当使用连接对象函数,此属性决定分辨率生成的轨迹结构场,frenetTrajectory而且globalTrajectory

数据类型:

Frenet坐标中的参考路径,指定为referencePathFrenet对象。

对象的功能

连接 连接初始和终端Frenet状态
createParallelState 使用Frenet和全局参数创建状态

例子

全部折叠

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

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

路径点= [0 0;...50 20;...100 0;...150 10];refPath = referencePathFrenet(路径点);连接器=轨迹生成器(refPath);

如Frenet所述,在路径原点和路径下30米的点之间生成5秒轨迹。

initState = [0 0 0 0 0 0];% [S ds ddS L dL ddL]termState = [30 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米”])

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

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

termState = termState + ([-3:3]' * [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’结束传奇([“锚点”“参考路径”“另类轨迹”)举行

图中包含一个axes对象。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”);传奇([“路标”“参考路径”“新轨迹”)举行

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。这些对象代表了航路点、参考路径、新轨迹。

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

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

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。

扩展功能

版本历史

在R2020b中引入

Baidu
map