主要内容

referencePathFrenet

光滑的参考路径适合锚点

自从R2020b

描述

referencePathFrenet对象符合平滑、分段连续曲线给出的一组锚点(xy](xyθ]。沿着曲线拟合后,点,点表示为(xyθ卡巴dkappa年代],地点:

  • xyθ- SE(2)国家在全球坐标表示,xy米和θ在弧度

  • 卡巴——或逆半径曲率1

  • dkappa曲率-导数对弧长2

  • 年代弧长,或沿着路径的路径距离原点,米

描述全球Frenet坐标

使用这个对象,全球和Frenet坐标系统之间的转换轨迹,沿着路径插入状态基于弧长,和查询最接近点从全球国家的道路。

对象表示Frenet状态向量的形式(年代dSddSl戴斯。莱纳姆:ddL],在那里年代弧长和吗l偏离垂直方向的参考路径。衍生品的年代是相对的。衍生品的l相对于弧长,年代

描述Frenet国家相对于参考路径

创建

描述

例子

refPathObj = referencePathFrenet (路点)适合一个分段,连续的曲线设置为指定的锚点。的路点参数设置路点财产。

refPathObj = referencePathFrenet (___,名称,值)集属性使用一个或多个名称-值对参数除了输入参数在前面的语法。您可以指定DiscretizationDistanceMaxNumWaypoints属性名称参数。

属性

全部展开

Presampled沿着路径点,指定为一个P2矩阵的形式(xy]P3矩阵的形式(xyθ]。指定xy米和θ在弧度。P是presampled点的数量,必须大于或等于2。

数据类型:|

这个属性是只读的。

米总arclength沿着路径。

数据类型:|

这个属性是只读的。

回旋曲线参数的开始部分,指定为一个N6矩阵N锚点的总数。每行包含的参数连续clothoidal段连接到下一个路标和形式(xyθ卡巴dkappa年代]地点:

  • xyθ- SE(2)国家在全球坐标表示,xy米和θ在弧度

  • 卡巴——或逆半径曲率1

  • dkappa曲率-导数对弧长2

  • 年代弧长,或沿着路径的路径距离原点,米

数据类型:|

插值路径点之间的弧长,指定为一个积极的标量米。对象使用插值路径指向加速性能转换的功能frenet2globalglobal2frenet。距离较小的离散化可以提高精度为代价的内存和计算效率。

例子:refPath = referencePathFrenet(锚点,DiscretizationDistance, 0.4)

数据类型:|

允许的最大数量的锚点的路径,指定为resizeable路径或一个正整数执行静态极限。

如果MaxNumWaypoints被设置为来生成代码,DynamicMemoryAllocation必须设置为“上”

例子:refPath = referencePathFrenet(锚点,MaxNumWaypoints, 10)

数据类型:|

对象的功能

closestPoint 在全球参考路径点找到最近的点
closestPointsToSequence 项目序列点的路径
closestProjections 切向量之间找到正交投影路径和查询
曲率 返回在arclength曲率
changeInCurvature 返回在arclength change-in-curvature
frenet2global Frenet状态转换为全局状态
global2frenet 将全球各国Frenet状态
插入 插入引用路径提供电弧长度
位置 返回xy-安置在arclength
tangentAngle 返回在arclength切角
显示 显示参考路径图

例子

全部折叠

生成替代使用Frenet坐标参考路径的轨迹。指定不同的初始和终端状态轨迹。基于生成的轨迹优化您的州。

生成一个参考路径的锚点。创建一个trajectoryGeneratorFrenet对象的引用路径。

路点= [0 0;50 20;100 0;150 10];refPath = referencePathFrenet(锚点);连接器= trajectoryGeneratorFrenet (refPath);

生成一个五秒钟的轨迹路径之间的起源和一个点30 m 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] =连接(连接器,initState termState 5);

在全局坐标显示轨迹。

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

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表锚点,参考路径轨迹到30米。

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

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

图包含一个坐标轴对象。坐标轴对象包含9线类型的对象。一个或多个行显示的值只使用这些对象标记代表锚点,参考路径,选择轨迹。

指定一个新的终端状态生成一个新的轨迹。这个轨迹是不可取的,因为它需要反向运动实现纵向10 m / s的速度。

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

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表路标,参考路径,新的轨迹。

放松限制的纵向国家通过指定一个弧长。再次生成和显示轨迹。新位置显示了一个不错的选择,偏离了轨迹的参考路径。

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

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用标记

扩展功能

版本历史

介绍了R2020b