exponenta event banner

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

  • string - символьный вектор (char)

  • list - массив ячеек (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

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

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

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

свернуть все

Список параметров, возвращаемый в виде массива ячеек векторов символов. Это список всех параметров, доступных в основной записи 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

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

См. также

Функции

Объекты

Представлен в R2019b