ParameterTree

Доступ к серверу параметров ROS

Описание

A ParameterTree объект взаимодействует с сервером параметров ROS. Сервер параметров ROS может хранить строки, целые числа, двойные числа, булеаны и массивы ячеек. Параметры доступны глобально по сети ROS. Можно использовать эти параметры для хранения статических данных, таких как параметры конфигурации.

Чтобы непосредственно задать, получить или получить доступ к параметрам ROS, не создавая ParameterTree объект, см. rosparam.

Следующие типы данных ROS поддерживаются как значения параметров. Для каждого типа данных ROS, соответствующий MATLAB® также указан тип данных.

Тип данных ROSТип данных MATLAB
32-битное целое числоint32
булевlogical
дваждыdouble
строкавектор символов (char)
списокмассив ячеек (cell)
словарьструктура (struct)

Создание

Описание

ptree = rosparam создает древовидный объект параметра, ptree. После ptree создается, подключение к серверу параметров остается постоянным до тех пор, пока объект не будет удален или не станет недоступен мастер ROS.

пример

ptree = ros.ParameterTree(node) возвращает ParameterTree объект для связи с сервером параметров ROS. Дерево параметров присоединяется к узлу ROS, node. Чтобы соединиться с глобальным узлом, задайте node как [].

Свойства

расширить все

Это свойство доступно только для чтения.

Список имен параметров на сервере, заданный как массив ячеек.

Пример: {'/myParam';'/robotSize';'/hostname'}

Типы данных: cell

Функции объекта

getПолучите значение параметров ROS
hasПроверьте, существует ли имя параметра ROS
searchПоиск имен параметров в сети ROS
setУстановите значение параметра ROS или добавьте новый параметр
delУдалите параметр ROS

Примеры

свернуть все

Запустите мастер ROS и создайте узел ROS.

master = ros.Core;
Launching ROS Core...
Done in 0.71922 seconds.
node = ros.Node('/test1');

Создайте древовидный объект параметра.

ptree = ros.ParameterTree(node);

Установите несколько параметров.

set(ptree,'DoubleParam',1.0)
set(ptree,'CharParam','test')
set(ptree,'CellParam',{{'test'},{1,2}});

Просмотрите доступные параметры.

parameters = ptree.AvailableParameters
parameters = 3x1 cell
    {'/CellParam'  }
    {'/CharParam'  }
    {'/DoubleParam'}

Получите значение параметров.

data = get(ptree,'CellParam')
data=1×2 cell array
    {1x1 cell}    {1x2 cell}

Поиск имени параметра.

search(ptree,'char')
ans = 1x1 cell array
    {'/CharParam'}

Удалите дерево параметров и узел ROS. Завершите работу ведущего устройства ROS.

clear('ptree','node')
clear('master')

Используйте структуры, чтобы задать словарь параметров ROS в определенном пространстве имен.

Подключение к сети ROS.

rosinit
Launching ROS Core...
Done in 0.68879 seconds.
Initializing ROS master on http://192.168.0.10:59999.
Initializing global node /matlab_global_node_46082 with NodeURI http://bat6315glnxa64:39021/

Создайте словарь значений параметров. Этот словарь содержит информацию, относящуюся к изображению. Отобразите структуру для проверки значений.

image = imread('peppers.png');

pval.ImageWidth = size(image,1);
pval.ImageHeight = size(image,2);
pval.ImageTitle = 'peppers.png';
disp(pval)
     ImageWidth: 384
    ImageHeight: 512
     ImageTitle: 'peppers.png'

Установите словарь значений с помощью необходимого пространства имен.

rosparam('set','ImageParam',pval)

Получите параметры с помощью пространства имен. Проверьте значения.

pval2 = rosparam('get','ImageParam')
pval2 = struct with fields:
    ImageHeight: 512
     ImageTitle: 'peppers.png'
     ImageWidth: 384

Завершите работу сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_46082 with NodeURI http://bat6315glnxa64:39021/
Shutting down ROS master on http://192.168.0.10:59999.
Введенный в R2019b