在Simulink中管理ROS消息的数组大小万博1manbetx

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

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

由于消息属性的长度是可变的,因此如果它们超过为该数组设置的最大大小,则可能会被截断。你可以选择截断与警告截断默默地。无论哪种方式,模拟都会运行,但是截断与警告在诊断查看器中显示消息属性已被截断的警告。使用生成的代码时,将发出警告日志语句ROS。警告将是aROS_WARN_NAMED日志语句和的名字是模型名称。

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

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

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

另请参阅

|

相关的话题