ROS消息表示为总线信号。有关总线信号的更多信息,请参阅虚拟总线(万博1manbetxSimulink).
如果您在Simulink中使用可变长度信号万博1manbetx®,用于消息的非虚拟总线不能包含可变长度数组作为属性。所有可变长度数组都转换为非虚拟总线的固定长度数组。因此,您必须管理这些固定大小数组的最大大小。在模拟选项卡,选择ROS工具箱>可变大小消息管理阵列大小。如果您的模型使用具有可变长度数组的ROS消息,将打开以下对话框。否则,Simulink将显示一条消息。万博1manbetx
由于消息属性具有可变长度,因此如果它们超过为该数组设置的最大大小,则可能会被截断用警告截断
或无声地截断
.无论如何,模拟都会运行,但是用警告截断
在诊断查看器中显示消息属性已被截断的警告。使用生成的代码时,将使用发出警告日志语句在罗斯。警告将是一个警告ROS_WARN_命名
log语句和名称是模型名。
这个模型中的消息类型部分显示Simulink模型中发布、订阅和空白消息块当前使用的所有ROS消息类型。您可以通过单击复选框选择使用此消息类型的默认限制。否则,请分别选择每种消息类型以设置万博1manbetx最大长度(项目)各数组属性根据需要。此最大长度应用于该模型的该消息类型的所有实例。最大长度也与模型一起存储。因此,两个模型可以使用不同的最大长度限制访问同一消息类型。
管理可变长度数组的大小有助于提高性能。如果将数组的大小限制为仅包含相关数据,则可以更有效地处理数据。但是,当运行这些模型时,考虑与截断相关的可能问题,如果忽略某些数据,系统可能会发生什么。
注:如果您想知道不同消息类型的适当最大长度。您可以模拟模型并观察警告中输出的大小。要查看使用ROS消息和使用可变长度数组的示例,请参阅开始在Simulink®中使用ROS万博1manbetx.