主要内容

TraometOryGeneratorFromet.

沿参考路径找到最佳轨迹

描述

TraometOryGeneratorFromet.对象使用相对于给定参考路径使用第四或第五级多项式生成备用轨迹。每个轨迹在指定的时间跨度上定义了Frenet状态之间的运动。

Freneet状态描述了它们相对于静态参考路径的位置,速度和加速度,指定为a参考血统目的。

该对象表达了FreneT状态作为形式的矢量[S DS DDS L DL DDL], 在哪里S.是弧长和L.是从参考路径的方向垂直偏离。衍生物S.是相互的。衍生物L.相对于弧长,S.

相对于参考路径描绘FreneT状态

要生成替代轨迹,请指定具有给定时间跨度的初始和终端Frenet状态连接对象功能。

创建

描述

例子

Connectorfromet = trajectorgeneratorfromet(反对在初始和终端状态之间生成相对于参考路径之间的轨迹反对指定为A.参考血统目的。这反对输入参数设置参考路径财产。

Connectorfromet = trajectorgeneratorfromet(反对,'timeresolution',timevalue)指定离散化的时间间隔。这TimeValue.论证设置了timeresolution.财产。

特性

展开全部

采样的Frenet状态之间的离散时间间隔,指定为秒为单位的正标量。使用时连接对象功能,此属性确定分辨率时代生成的轨迹结构的领域,Frenettrajectory.GlobalTrajectory.

数据类型:双倍的

Freneet坐标中的参考路径,指定为a参考血统目的。

对象功能

连接 连接初始和终端Frenet状态

例子

全部收缩

使用友谊坐标生成参考路径的替代轨迹。为轨迹指定不同的初始和终端状态。根据生成的轨迹调整您的状态。

从一组航路点生成参考路径。创建一个TraometOryGeneratorFromet.来自参考路径的对象。

航点= [0 0;......50 20;......100 0;......150 10];Refpath =参考水平血统(航点);连接器= TrajectoryGeneratorFromet(Refpath);

在路径源之间生成五秒的轨迹,并将路径为30米作为Frenet状态。

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(连接器,初始电台,术语,5);

在全局坐标中显示轨迹。

展示(Refpath);抓住平等的绘图(trajglobal.trajectory(:,1),trajglobal.trajectory(:,2),'B') 传奇([“航点”“参考路径”“轨迹到30米”])

图包含轴。轴包含3个类型的线。这些对象代表WayPoints,参考路径,轨迹到30米。

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

术语阶级=术语+([-3:3]'* [0 0 0 1 0 0]);[〜,trajglobal] = Connect(连接器,初始持股,术语,5);clf show(Refpath);抓住平等的为了i = 1:长度(trajglobal)绘图(trajglobal(i).traptory(:,1),trajglobal(i).traptory(:,2),'G'结尾传奇([“航点”“参考路径”“替代轨迹”]) 抓住离开

图包含轴。轴包含9个类型的类型。这些对象代表了路点,参考路径,替代轨迹。

指定新的终端状态以生成新的轨迹。该轨迹是不希望的,因为它需要反向运动以实现10米/秒的横向速度。

newtermstate = [5 10 0 5 0 0];[〜,newtrajglobal] = connect(连接器,initstate,newtermstate,3);clf show(Refpath);抓住平等的plot(newtrajglobal.traptory(:,1),newtrajglobal.trajectory(:,2),'B');传奇([“航点”“参考路径”“新轨迹”]) 抓住离开

图包含轴。轴包含3个类型的线。这些对象代表WayPoint,参考路径,新轨迹。

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

leastedtermstate = [纳米10 0 5 0 0];[〜,trajglobalrelaxed] =连接(连接器,initstate,loogedtermstate,3);clf show(Refpath);抓住平等的绘图(trajglobalrelaxed.traptory(:,1),trajglobalrelaxed.traptory(:2),'G');抓住离开

图包含轴。轴包含3个类型的线。

扩展能力

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

在R2020B中介绍