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 может хранить строки, целые числа, двойные числа, булеаны и массивы ячеек. Параметры доступны для каждого узла в сети ROS. Используйте параметры для хранения статических данных, таких как параметры конфигурации. Используйте get, set, has, search, и del функции для манипулирования и просмотра значений параметров.

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

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

  • Логический - logical

  • double - double

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

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

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

Примеры

свернуть все

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

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

rosinit
Launching ROS Core...
Done in 0.73229 seconds.
Initializing ROS master on http://192.168.0.10:58060.
Initializing global node /matlab_global_node_59415 with NodeURI http://bat6315glnxa64:39799/

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

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_59415 with NodeURI http://bat6315glnxa64:39799/
Shutting down ROS master on http://192.168.0.10:58060.

Подключение к сети 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 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.

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

свернуть все

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

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

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

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

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

  • Булеаны - logical

  • парный разряд - double

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

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

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

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

свернуть все

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

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

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

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

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

Ограничения

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

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

    • logical - Если pval является "true" или "false"

    • int32 - Если pval является целым числом, например 5

    • double - Если pval является дробным числом, например 1.256

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

См. также

Функции

Объекты

Введенный в R2019b