以下实例为MathWorks官方实例,本人翻译整理了相关知识点,记录一下学习笔记。
原文链接:https://ww2.mathworks.cn/help/nav/ref/referencepathfrenet.html
Generate Alternative Trajectories for Reference Path
使用Frenet坐标生成参考路径的替代轨迹。 为轨迹指定不同的初始状态和终端状态。 根据生成的轨迹调整状态。
从waypoints的集合生成一个参考路径,从参考路径创建一个trajectoryGeneratorFrenet
的对象。
waypoints = [0 0;50 20;100 0;150 10];
%创建路径点集合
refPath = referencePathFrenet(waypoints);
%通过函数referencePathFrenet生成了一条基于路径点集合的平滑曲线refPath
connector = trajectoryGeneratorFrenet(refPath);
%通过函数trajectoryGeneratorFrenet生成基于refPath的一条轨迹
在路径原点和路径下30米的点之间生成一个5秒的轨迹,作为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(connector,initState,termState,5);
%其中的~代表忽略第一个输出的参数,然后通过connect函数连接初始和最终状态,5代表时间间隔5s。
在全局坐标中显示该轨迹。
show(refPath);
%显示路径的函数
hold on
axis equal
%横纵坐标比例相等
plot(trajGlobal.Trajectory(:,1),trajGlobal.Trajectory(:,2),'b')
%画图
legend(["Waypoints","Reference Path"