6. Launch-файлы, параметры и пространства имён
Для чего нужен launch
Файл запуска описывает состав системы: какие процессы запустить, какие параметры передать и как назвать узлы и топики. Он позволяет воспроизвести конфигурацию без ручного запуска множества терминалов.
Имя пакета выбирает установленный ресурс, executable — исполняемую программу, name — имя узла, namespace — область имён. Remapping меняет используемые имена интерфейсов; параметр меняет настройку узла, если узел эту настройку поддерживает.
Минимальный пример
Создайте launch/turtles.launch.py в своём пакете:
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(package='turtlesim', executable='turtlesim_node',
namespace='demo', output='screen'),
])
Добавьте каталог launch в правила установки пакета. Для ament_python это data_files в setup.py, для ament_cmake — команда install в CMakeLists.txt. После сборки и подключения окружения файл должен находиться в установленном share/<package>/launch.
Практика
Запустите файл через ros2 launch <package> turtles.launch.py, заменив <package> именем своего пакета. Затем изучите ros2 node list и ros2 topic list. Сравните имена с запуском без namespace.
Параметры запущенного узла можно исследовать командами ros2 param list, ros2 param get и ros2 param describe, указав имя узла и параметра.
Самостоятельное задание
Объедините turtlesim и свой регулятор в одном launch-файле. Затем запустите вторую независимую копию системы в другом namespace.
Самопроверка
- Почему существующий в исходниках launch-файл может не находиться командой запуска?
- Как отличаются name, namespace и remapping?
- Какие значения следует вынести из кода узла в параметры?
Основа урока: учебное пособие «Операционная система для роботов ROS 2», ИТМО, 2026, печатные страницы 14–16, 44–46. Это учебный конспект с упражнениями; полные примеры и рисунки приведены в пособии.
YouTube канал чтобы посмотреть видео по робототехнике & семинары
Аккаунт в Телеграмм чтобы следить за анонсами мероприятий & Исследованиями