局部路径规划+轨迹跟踪过程中,我们利用全局路径生成了一个局部期望路径。Yref表示局部期望路径,Y_ref为全局期望路径(也就是我们的双移线轨迹)。
%一定要注意加法的优先级是高于冒号的优先级的,所以一定是先算加法再看冒号
Yref=(Y_ref(1,round(State_Initial(5,1))+1:round(State_Initial(5,1))+15))';
State_Initial(5,1) ;%代表车辆的纵向位置X,是从carsim里面导进来的
Yref=[Y_ref(1,round(X)+1:round(X)+15)]';%我们将局部期望路径的形式进行设置
下面我们来解释一下这行代码:
由于刚开始Y_ref是通过代码生成的一个行向量,表示我们参考的一个全局路径的数据序列。
那么在这第一行里面到底取多长的参考路径序列呢?我们来探讨一下!
Yref=[Y_ref(1,round(X)+1:round(X)+15)]';%我们将局部期望路径的形式进行设置
那么为什么里面有round(X)+1:round(X)+15呢?是因为我们的预测时域是15对不对!也就是从当前位置开始一直往后取我们设定的预测时域(Np=15)个全局期望路径。
最后我们对我们取的这些列进行整体的转置,这时候我们的局部期望路径Yref就是一列了。
Yref=[Y_ref(1,round(X)+1:round(X)+15)]'
我们做以下实验就可以发现在Matlab中的结果和我们预期讲解的结果一致!
Y_ref=1:0.1:10
X=2.1
Yref=[Y_ref(1,round(X)+1:round(X)+15)]'
Yref=
1.20000000000000
1.30000000000000
1.40000000000000
1.50000000000000
1.60000000000000
1.70000000000000
1.80000000000000
1.90000000000000
2
2.10000000000000
2.20000000000000
2.30000000000000
2.40000000000000
2.50000000000000
2.60000000000000