ParameterTree

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

Описание

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

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

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

Тип данных ROSТип данных MATLAB
32-битное целое числоint32
булевская переменнаяlogical
'double'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 1.2339 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 = 7x1 cell
    {'/CellParam'                                   }
    {'/CharParam'                                   }
    {'/DoubleParam'                                 }
    {'/rosdistro'                                   }
    {'/roslaunch/uris/host_bat1072001glnxa64__38839'}
    {'/rosversion'                                  }
    {'/run_id'                                      }

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

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 1.2159 seconds.
Initializing ROS master on http://192.168.0.10:52274.
Initializing global node /matlab_global_node_51437 with NodeURI http://bat1072001glnxa64:39995/

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

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_51437 with NodeURI http://bat1072001glnxa64:39995/
Shutting down ROS master on http://192.168.0.10:52274.
........
Введенный в R2019b