PreScan快速入门到精通第三十五讲:车道线识别传感器-ALMS车道线传感器

智驾社
关注

35.5 Simulink中的输出可视化

ALMS的输出可以使用一个专用的Simulink块进行可视化。通过点击任何实验的主编译表上的 "打开有用的块 "按钮可以找到这个块。

Simulink输出分析:

ALMS Simulink总线结构

ALMS传感器输出一条包含单个信息的总线。每条信息都描述了一组多项式组件,X、Y 和 Z 三个方向各一个。每条信息中的数据结构如下:

MESSAGE HEADER

Valid DATA

X

N0 N1 N2 N3 N4

Y

N0 N1 N2 N3 N4

Z

N0 N1 N2 N3 N4

Length GroupID

LineLabel

当配置了20个多项式的限制时,输出总线上将始终有20个消息槽。然而,它们可能不会全部被填满,这取决于传感器在给定仿真中实际拟合的多项式的数量。一个消息槽是否包含一个结果由HEADER.Valid参数表示。

N0 - N3 值以下列方式表示一个多项式的系数(在本例中为 X):

其中L是多项式有效的区间[0,length]中的一个参数。需要注意的是,只有当阶数足够高时,系数才会被填满。例如,3阶多项式相当于4个系数,会填满所有的系数,但1阶拟合只能填满N0和N1。在这种情况下,N2和N3将为零。

GroupID表示哪一组多项式代表一条线,在GroupID部分提到。LineLabel表示为每条车道线设置的Label值,如LineLabel一节所述。

使用Simulink块进行分析

ALMS Simulink输出基于嵌套总线结构。可以使用Simulink选择块提取输出值。下面是一个例子,说明如何提取X多项式的四个系数。它使用一个Simulink选择器块和一个总线选择器块来提取四个数据输出流,(在这个例子中)这些数据输出流被写入四个Workspace。

从ALMS输出块中提取数据

上面使用的选择器块在Simulink库浏览器的信号路由页面。选择器的输入端口大小参数必须设置为本ALMS的PreScan编辑器中设置的最大多项式数,见下文。

使用的第二个块是总线选择器,它也在Simulink库浏览器的信号路由页面上。总线选择器的设置直接遵循上面讨论的ALMS总线结构。

使用MATLAB函数进行分析

另一种分析ALMS输出的方便方法是使用MATLAB函数块(在旧版本中称为嵌入式Matlab函数)。下面是一段沿着每个多项式评估10个值的示例代码。这个方法的例子可以在ALMS高速公路例子中找到。

function fcn(u)

% Iterate through all data in bus

for i = 1 : size(u,1);

% The validparameter indicates that the data slot in the bus is actually filled in

if u(i).HEADER.valid == 1

% Extract polynomial coefficient vectors

% The reverse order is required forpolyval()

cx = u(i).DATA.X;

cy = u(i).DATA.Y;

Px = [cx.N3 cx.N2 cx.N1cx.N0];

Py = [cy.N3 cy.N2 cy.N1cy.N0];

% Extractpolynomial interval L1 = 0;

L2 = u(i).DATA.Length;

% Evaluate 10points along each polynomial value numOfPoints = 10;

L =linspace(L1,L2,numOfPoints);

x =polyval(Px,L);

y =polyval(Py,L);

end

end

       原文标题 : PreScan快速入门到精通第三十五讲车道线识别传感器-ALMS车道线传感器

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存