主要内容

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

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

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

确保您的Simulink模型已配置金宝app为ROS。如果不是,请遵循以下步骤:

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

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

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

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

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

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

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

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

另请参阅

|

相关的话题