Модуль 2
Первая нода: hello, rclpy
4 блок(ов) теории · 11 заданий · 150 баллов
Жизнь ноды на rclpy — три шага, и их порядок — закон. Первый: rclpy.init() — инициализация ROS-контекста, глобального состояния Python-клиента: у библиотеки появляется «паспорт» участника графа; без init создание Node() отклоняется и в моке, и в реальном rclpy. Второй: node = Node("hello_node") — нода с именем появляется в графе, и ros2 node list видит её с этого момента. Третий: rclpy.spin(node) — передача управления циклу событий. В реальном rclpy spin блокирует: крутит обработку колбэков, пока ноду не остановят; в моке spin — шаговый executor: один вызов отрабатывает накопившееся и возвращает управление (разбор — в модуле 1, повторять не будем). Забытый spin — классическая ошибка новичка: нода числится в графе, а деяний нет — подписки не получают, таймеры не тикают. О логах: в моке логгер — обычный print(...), он попадает в вывод прогона; в реальном rclpy у ноды есть собственный логгер get_logger() с уровнями info и warn — этого API в моке нет, знать слово стоит, пишем print.
Имя ноды — её адрес в графе. Discovery знакомит соседей по именам, ros2 node list и логи читаются тоже по имени; отсюда два правила. Уникальность: два узла с одним именем — два абонента на одном адресе; мок отвергает дубликат ошибкой, реальный ROS 2 молча сливает одноимённые узлы — и диагностика врёт (мок строже реальности, это разобрано в модуле 1). snake_case — конвенция графа, единая с именами топиков: слова строчными через подчёркивание — hello_node, link_monitor. Оформление ноды — вопрос вкуса туториалов: кроме функционального стиля этого курса встречается класс-наследник Node с колбэками-методами. Курс пишет ноды функционально — каркас заданий и тесты смотрят на граф, а не на оформление.
Задания
0/11 заданий · 0/150 баллов
1. rclpy.init(): паспорт клиента графа
10 балл(ов)Первый вызов любого ros-скрипта. Собеседователь спрашивает: «Что именно делает rclpy.init()?» Выберите вариант, который верно называет работу init и объясняет, чем init не является: не демон, не создатель топиков и не сетевая настройка.