主要内容

在Simulink中管理ROS消息的阵列大小金宝app

一个ROS消息被表示为一个总线信号。有关总线信号的更多信息,请参见虚拟总线(金宝app模型)

如果你在Simulink中使用可变长度的信号金宝app®,用于消息的非虚拟总线不能包含变长数组作为属性。对于非虚拟总线,所有可变长度数组都被转换为固定长度数组。因此,您必须管理这些固定大小的数组的最大大小。在模拟选项卡上,选择ROS工具箱>变量大小信息管理数组大小。如果您的模型使用具有可变长度数组的ROS消息,则会打开以下对话框。否则,Simulink金宝app将显示一条消息。

因为消息属性的长度是可变的,所以如果它们超过了为该数组设置的最大大小,就有可能被截断。你可以选择截断与警告截断默默地.不管怎样,模拟都会运行,但是截断与警告在诊断查看器中显示消息属性已被截断的警告。当使用生成的代码时,使用日志语句ROS。这个警告将是ROS_WARN_NAMED日志语句和的名字是模型名称。

模型中的消息类型部分显示了Simulink模型中当前由Publish、Subscribe和Blank message块使用的所有ROS消息类型。金宝app通过单击复选框,您可以选择使用此消息类型的默认限制。否则,分别选择每个消息类型来设置最大长度(物品)每一个数组属性根据需要。此最大长度应用于该模型的该消息类型的所有实例。最大长度也存储在模型中。因此,可以让两个模型访问具有不同最大长度限制的相同消息类型。

管理可变长度数组的大小有助于提高性能。如果将数组的大小限制为只包含相关数据,则可以更有效地处理数据。但是,在运行这些模型时,要考虑与截断相关的可能问题,以及如果忽略某些数据会对系统造成什么影响。

注意:如果您想知道不同消息类型的适当最大长度。您可以模拟该模型并观察警告中的尺寸输出。要查看使用ROS消息和使用可变长度数组的示例,请参见在Simulink®中开始使用ROS金宝app

另请参阅

|

相关的话题