rosparam

Доступ к значениям сервера параметра ROS

Описание

list = rosparam("list") возвращает список всех названий параметра ROS от ведущего устройства ROS.

Упрощенная форма: rosparam list

list = rosparam("list",namespace) возвращает список всех названий параметра под заданным пространством имен ROS.

Упрощенная форма: rosparam list namespace

пример

pvalOut = rosparam("get",pname) получает значение заданного параметра.

Упрощенная форма: rosparam get pname

pvalOut = rosparam("get",namespace) получает значения всех параметров под заданным пространством имен как структура.

Упрощенная форма: rosparam get namespace

rosparam("set",pname,pval) устанавливает значение для заданного названия параметра. Если название параметра не существует, функция добавляет новый параметр в дереве параметра.

Упрощенная форма: rosparam set pname pval

Смотрите Ограничения для ограничений на pval.

rosparam("delete",pname) удаляет параметр из дерева параметра. Если параметр не существует, функция отображает ошибку.

Упрощенная форма: rosparam delete pname

rosparam("delete",namespace) удаляет все параметры под данным пространством имен от дерева параметра.

Упрощенная форма: rosparam delete namespace

пример

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

Дерево параметра ROS связывается с сервером параметра ROS. Сервер параметра ROS может сохранить строки, целые числа, удваивается, boolean и массивы ячеек. Параметры доступны каждым узлом в сети ROS. Используйте параметры, чтобы хранить статические данные, такие как параметры конфигурации. Используйте getНабор, has, search, и del функции, чтобы управлять и просмотреть значения параметров.

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

  • 32-битное целое число — int32

  • Boolean — logical

  • дважды — double

  • строка — вектор символов (char)

  • список — массив ячеек (cell)

  • словарь — структура (struct)

Примеры

свернуть все

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

Соединитесь с сетью ROS.

rosinit
Launching ROS Core...
Done in 0.69118 seconds.
Initializing ROS master on http://192.168.0.10:57153.
Initializing global node /matlab_global_node_16012 with NodeURI http://bat6312glnxa64:35427/

Установите значения параметров.

rosparam set /string_param 'param_value'
rosparam set /double_param 1.2

Чтобы установить параметр списка, используйте функциональную форму.

rosparam('set', '/list_param', {int32(5), 124.1, -20, 'some_string'});

Получите список параметров с помощью формы командной строки.

rosparam list
/double_param
/list_param  
/string_param

Перечислите параметры в определенном пространстве имен.

rosparam list /double
/double_param

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

rosparam get /list_param
{5, 124.1, -20, some_string}

Удалите параметр. Перечислите параметры, чтобы проверить, что это было удалено.

rosparam delete /double_param
rosparam list
/list_param  
/string_param

Закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_16012 with NodeURI http://bat6312glnxa64:35427/
Shutting down ROS master on http://192.168.0.10:57153.

Соединитесь с сетью ROS. Параметры ROS должны уже быть доступными на ведущем устройстве ROS.

rosinit('192.168.17.128')
Initializing global node /matlab_global_node_91663 with NodeURI http://192.168.17.1:52951/

Создайте ParameterTree объект с помощью rosparam.

ptree = rosparam;

Перечислите доступные параметры на ведущем устройстве ROS.

ptree.AvailableParameters
ans = 33×1 cell array
    {'/bumper2pointcloud/pointcloud_radius'         }
    {'/camera/imager_rate'                          }
    {'/camera/rgb/image_raw/compressed/format'      }
    {'/camera/rgb/image_raw/compressed/jpeg_quality'}
    {'/camera/rgb/image_raw/compressed/png_level'   }
    {'/cmd_vel_mux/yaml_cfg_file'                   }
    {'/depthimage_to_laserscan/output_frame_id'     }
    {'/depthimage_to_laserscan/range_max'           }
    {'/depthimage_to_laserscan/range_min'           }
    {'/depthimage_to_laserscan/scan_height'         }
    {'/depthimage_to_laserscan/scan_time'           }
    {'/gazebo/auto_disable_bodies'                  }
    {'/gazebo/cfm'                                  }
    {'/gazebo/contact_max_correcting_vel'           }
    {'/gazebo/contact_surface_layer'                }
    {'/gazebo/erp'                                  }
    {'/gazebo/gravity_x'                            }
    {'/gazebo/gravity_y'                            }
    {'/gazebo/gravity_z'                            }
    {'/gazebo/max_contacts'                         }
    {'/gazebo/max_update_rate'                      }
    {'/gazebo/sor_pgs_iters'                        }
    {'/gazebo/sor_pgs_precon_iters'                 }
    {'/gazebo/sor_pgs_rms_error_tol'                }
    {'/gazebo/sor_pgs_w'                            }
    {'/gazebo/time_step'                            }
    {'/robot_description'                           }
    {'/robot_state_publisher/publish_frequency'     }
    {'/rosdistro'                                   }
    {'/roslaunch/uris/host_192_168_17_128__34863'   }
    {'/rosversion'                                  }
    {'/run_id'                                      }
    {'/use_sim_time'                                }

Закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_91663 with NodeURI http://192.168.17.1:52951/

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

Соединитесь с сетью ROS.

rosinit
Launching ROS Core...
...Done in 4.0269 seconds.
Initializing ROS master on http://192.168.88.1:57165.
Initializing global node /matlab_global_node_09024 with NodeURI http://ah-avijayar:60223/

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

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_09024 with NodeURI http://ah-avijayar:60223/
Shutting down ROS master on http://192.168.88.1:57165.

Входные параметры

свернуть все

Пространство имен параметра ROS в виде строкового скаляра или вектора символов. Все названия параметра начиная с этой строки перечислены при вызове rosparam("list",namespace).

Название параметра ROS в виде строкового скаляра или вектора символов.

Значение параметров ROS или словарь значений в виде поддерживаемого типа данных.

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

  • 32-битные целые числа — int32

  • Boolean — logical

  • удваивается — double

  • строки — строковый скаляр, string, или вектор символов, char

  • списки — массив ячеек

  • словари — структура

Выходные аргументы

свернуть все

Список параметров, возвращенный как массив ячеек из символьных векторов. Это - список всех параметров, доступных на ведущем устройстве ROS.

Дерево параметра, возвращенное как ParameterTree указатель на объект. Используйте этот объект для получения информации о параметре ссылки, например, ptree.AvailableFrames.

Значение параметров ROS в виде поддерживаемого типа данных MATLAB. При определении namespace входной параметр, pvalOut возвращен как структура значения параметров под данным пространством имен.

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

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

Ограничения

  • Неподдерживаемые Типы данных: Base64-закодированные двоичные данные и iso8601 данные из ROS не поддерживаются.

  • Упрощенные Команды: При использовании упрощенной команды rosparam set pname pval, значение параметров интерпретировано как:

    • logical — Если pval "true" или "false"

    • int32 — Если pval целое число, например, 5

    • double — Если pval дробный номер, например, 1.256

    • вектор символов — Если pval любое другое значение

Расширенные возможности

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

Функции

Объекты

Введенный в R2019b