主要内容

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

ROS消息表示为总线信号。有关总线信号的更多信息,请参阅虚拟总线(金宝appSimulink)

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

由于消息属性具有可变长度,因此如果它们超过该数组的最大大小设置,则可以将它们截断。你有选择截断与警告要么默默地截断。无论哪种方式,模拟都会运行,但是截断与警告在诊断查看器中显示警告,邮件属性已被截断。使用生成的代码时,将使用警告日志陈述在罗斯。警告将是一个ros_warn_named.日志语句和名称是型号名称。

模型中的消息类型部分显示了Simulink模型中发布,订阅和空白消息块当前使用的所有ROS消息类型。金宝app您可以选择通过单击复选框使用此消息类型的默认限制。否则,单独选择每个消息类型以设置最大长度(项目)每个数组属性如预期的。此最大长度适用于该模型的该消息类型的所有实例。最大长度也与模型一起存储。因此,可以有两个模型访问具有不同最大长度限制的相同消息类型。

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

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

也可以看看

|

相关话题