Чтобы использовать строковые параметры ROS в Simulink®, бросьте их к массивам uint8
. Эти примеры показывают, как получить, установить, сравнивают и управляют строками для параметров ROS. Чтобы запустить эти примеры, необходимо сначала настроить сеть ROS. Используйте rosinit
.
Чтобы создать ваш строковый параметр, используйте блок Constant и бросьте его к uint8
путем определения uint8(['my_string_parameter'])
в Constant Value маски блока. Строка передается в блок Set Parameter наряду с дополнительным входом, Длиной, заданной со вторым блоком Constant. Длина относится к максимальной ожидаемой длине строки и требуется для всех строковых параметров. Для получения дополнительной информации смотрите блок Set Parameter.
Можно сравнить строковые параметры с заданными строками, чтобы подтвердить триггерные подсистемы или настройки. Чтобы получить параметр от сервера, используйте блок 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. Это получено как массив 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'
.