Параметры 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