exponenta event banner

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Установка значения параметра АФК или добавление нового параметра
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