Сообщение ROS представлено в виде сигнала шины. Для получения дополнительной информации о сигналах шины смотрите Виртуальная шина (Simulink).
Если вы работаете с сигналами переменной длины в Simulink®, невиртуальная шина, используемая для сообщений, не может содержать массивы переменной длины в качестве свойств. Все массивы переменной длины преобразуются в массивы фиксированной длины для невиртуальных шин. Поэтому необходимо управлять максимальным размером для этих массивов фиксированного размера. На вкладке Simulation выберите ROS Toolbox > Variable Size Message, чтобы управлять размерами массивов. Если ваша модель использует сообщения ROS с массивами переменной длины, откроется следующее диалоговое окно. В противном случае Simulink отображает сообщение.
Поскольку свойства сообщения имеют переменную длину, возможно, что они могут быть усечены, если они превысят максимальный размер, установленный для этого массива. У вас есть опция Truncate with warning
или Truncate silently
. В любом случае симуляция будет запущена, но Truncate with warning
отображает в средстве просмотра предупреждение об усечении свойства сообщения. При использовании сгенерированного кода предупреждение будет выдаваться с помощью операторов журнала в ROS. Предупреждение будет ROS_WARN_NAMED
журнал, и name является именем модели.
В Message types in model разделе показаны все типы сообщений ROS, которые в настоящее время используются блоками Publish, Subscribe и Blank Message в вашей модели Simulink. Для использования пределов по умолчанию для этого типа сообщения можно опцию установить флажок. В противном случае выберите каждый тип сообщения по отдельности, чтобы задать Maximum length (items) каждого Array Property по желанию. Эта максимальная длина применяется ко всем образцам этого типа сообщений для этой модели. Максимальная длина также сохранена в модели. Поэтому возможно иметь две модели, получающие доступ к одному и тому же типу сообщения с различными максимальными пределами длины.
Управление размером массивов переменной длины может помочь улучшить эффективность. Если вы ограничиваете размер массива только включением релевантных данных, можно более эффективно обрабатывать данные. Однако при запуске этих моделей учитывайте возможные проблемы, связанные с усечением и тем, что может произойти с вашей системой, если некоторые данные будут проигнорированы.
Примечание: Если вы хотите знать соответствующие максимальные длины для различных типов сообщений. Можно симулировать модель и наблюдать размеры, выводимые в предупреждении. Чтобы увидеть пример использования сообщений ROS и работы с массивами переменной длины, смотрите Запуск с ROS в Simulink ®.