Строковые параметры 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'.

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

Блоки

Похожие темы