主要内容

在Simulink中管理ROS消息的数组大小

ROS消息表示为总线。有关公共汽车的更多信息,请参见复合接口指南(模型)

如果你在Simulink中使用变长信号®,用于消息的非虚拟总线不能包含变长数组作为属性。对于非虚拟总线,所有变长数组都转换为定长数组。因此,您必须管理这些固定大小的数组的最大大小。

确保为ROS配置了Simulink模型。如果不是,请遵循以下步骤:

  1. 应用程序选项卡,在控制系统,点击机器人操作系统(ROS)

  2. 机器人操作系统(ROS)对话框,选择机器人操作系统(ROS)ROS网络下拉。这就打开了ROS选项卡中的指定ROS网络连接部分。

然后,在模拟选项卡上,选择ROS工具箱>可变大小消息管理数组大小。如果您的模型使用带有变长数组的ROS消息,则会打开以下对话框。否则,Simulink将显示一条消息。

“管理ROS消息的数组大小”对话框,该对话框显示模型中的所有消息类型。它还显示所选消息类型中的数组字段,以及数组的最大长度和其中每个项的数据类型。

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

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

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

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

另请参阅

|

相关的话题

Baidu
map