Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Параметры ROS

Что вы узнаете в этом разделе:

  • Что такое параметры в ROS и зачем они нужны
  • Как просмотреть список всех параметров системы
  • Как получить значение конкретного параметра
  • Как установить параметр через консоль
  • Как настроить параметры через launch-файлы
  • Разницу между статическими и динамическими параметрами

Что такое параметры в ROS?

Параметры в ROS — это глобальные переменные для всех узлов системы. Они хранят конфигурационные данные, которые можно менять без перекомпиляции кода. Параметры можно настроить через консоль или при запуске ноды с помощью launch-файлов.

Основные характеристики

  • Хранятся на Parameter Server.
  • Доступны для чтения и записи из любого узла.
  • Статические параметры настраиваются при запуске узла.
  • Динамические параметры можно менять, даже если программа уже запущена.
  • Поддерживают разные типы данных: строки, числа, списки и словари.

Работа с параметрами через консоль

Просмотр доступных в системе параметров

# Просмотреть все параметры, с группировкой по нодам
ros2 param list

# Получить значение конкретного параметра
# ros2 param get <node_name> <parameter_name>
ros2 param get /camera brightness
===
Integer value is: 50

# Просмотреть всё дерево параметров и все значения
ros2 param dump camera

Установка параметров

# Установить параметр
ros2 param set /camera brightness 10
===
Set parameter successful

#Проверить значение
ros2 param get /camera brightness
Integer value is: 10

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

Установка параметров через launch файлы

Если мы хотим, чтобы при загрузке системы у нас установился параметр brightness со значением 10, то нам необходимо добавить этот параметр в launch файл, как это сделано в примере ниже.

<launch>
  <node pkg="usb_cam" exec="usb_cam_node_exe" name="camera" respawn="true" respawn_delay="15">
    <param name="brightness" value="10"/>
  </node>
</launch>

Дополнительная информация

Официальная документация о параметрах https://docs.ros.org/en/jazzy/Concepts/Basic/About-Parameters.html