主要内容

管理Simulink中ROS消息的阵列大小万博1manbetx

ROS消息表示为总线信号。有关总线信号的更多信息,请参阅虚拟总线(万博1manbetxSimulink).

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

由于消息属性具有可变长度,因此如果它们超过为该数组设置的最大大小,则可能会被截断用警告截断无声地截断.无论如何,模拟都会运行,但是用警告截断在诊断查看器中显示消息属性已被截断的警告。使用生成的代码时,将使用发出警告日志语句在罗斯。警告将是一个警告ROS_WARN_命名log语句和名称是模型名。

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

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

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

另见

|

相关话题