Строковые параметры ROS

Чтобы использовать строковые параметры ROS в Simulink®, бросьте их к массивам uint8. Эти примеры показывают, как получить, установить, сравнивают и управляют строками для параметров ROS. Чтобы запустить эти примеры, необходимо сначала настроить сеть ROS. Используйте rosinit.

Установите строковый параметр в сети ROS

Чтобы создать ваш строковый параметр, используйте блок Constant и бросьте его к uint8 путем определения uint8(['my_string_parameter']) в Constant Value маски блока. Строка передается в блок Set Parameter наряду с дополнительным входом, Длиной, заданной со вторым блоком Constant. Длина относится к максимальной ожидаемой длине строки и требуется для всех строковых параметров. Для получения дополнительной информации смотрите блок Set Parameter.

Получите строковый параметр ROS и сравните с заданной строкой

Можно сравнить строковые параметры с заданными строками, чтобы подтвердить триггерные подсистемы или настройки. Чтобы получить параметр от сервера, используйте блок Get Parameter. Затем используйте Функциональный блок MATLAB®, чтобы сравнить параметр со строкой uint8 от блока Constant. Эти проверки модели, чтобы видеть, называют ли ранее установленный параметр формата камеры 'jpeg'.

Следующий код используется в блоке MATLAB function stringCompare. Функция сравнивает каждый символ своих двух входных строк, чтобы видеть, соответствуют ли они. Вывод является одной булевской переменной, указывающей, соответствуют ли строки.

function y = stringCompare(str1,str2)
%#codegen
minLength = min(length(str1),length(str2));
st1 = str1(1:minLength);
st2 = str2(1:minLength);
y = all(st1(:)==st2(:));

Проверяйте параметр кодирования изображений на сообщение ROS изображений

Эта модель показывает, как получить доступ к строковым параметрам и использовать их, чтобы инициировать операции подсистемы. Это получает формат изображения от набора сервер параметра ROS. Это получено как массив uint8, который сравнен с помощью блока MATLAB function strcmp. Когда новое изображение получено от блока Subscribe, и форматом является uint8('jpeg'), это инициировало блок "Process Image", чтобы выполнить задачу на данных изображения.

Эта модель требует, чтобы вы были соединены с сетью ROS. Вызовите rosinit в командном окне MATLAB®. Параметр '/camera/rgb/image_raw/compressed/format' должен быть установлен, и тема '/camera/rgb/image_raw/compressed' должна иметь опубликованные сообщения изображений. Используйте кнопки в модели, чтобы установить параметры формата изображения, чтобы проверять блок strcmp. Вывод eq должен быть 1, когда параметр устанавливается на 'jpeg'.

Смотрите также

Блоки

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте