Drone X

CLI-диагностика: глаза джуна

5 блок(ов) теории · 12 заданий · 140 баллов

Диагностика в ROS 2 начинается не с кода, а с наблюдения, и глаза джуна — это три команды CLI (command-line interface, «интерфейс командной строки»: работа с системой текстовыми командами в терминале). ros2 node list — кто вообще жив в графе: имена всех запущенных нод. ros2 topic list — карта эфира: имена всех созданных каналов. ros2 topic echo <топик> — что именно летит по каналу: сообщения одного за другим. Порядок чтения — от обзора к точке: сначала «кто тут», затем «какие каналы есть», затем «что в потоке»; каждая следующая команда уточняет картину предыдущей.

Эмулятор курса исполняет ровно эти три команды и читает шину последнего ros-прогона сессии: любой зелёный прогон код-задания прошлых модулей оставляет после себя настоящий граф. Пустой вывод — не поломка, а честное сообщение: в этой сессии ros-код ещё не запускался; вернуть граф в шину можно, запустив любое код-задание снова. Инспектор, который сначала смотрит, а потом думает, — профессия: дальше модуль учит превращать три распечатки в диагноз.

Три распечатки складываются в диагноз. Молчащая нода: имя в ros2 node list есть, канал в ros2 topic list есть, echo молчит — нода жива и подключена, но не публикует: забытый таймер или публикация вне колбэка. Это не «упавшая нода»: упавшая исчезает из списка узлов — имя в списке довод, что процесс на месте. Опечатка в имени: подписчик слушает /telemetry/batery, издатель пишет в /telemetry/battery — обе стороны «работают», но не встречаются; в списке каналов будут оба имени — канал с опечаткой создало само подключение подписчика, а echo по нему честно отвечает «канал есть, но пока молчит»; сравнение списка каналов с кодом находит лишнюю букву. Мёртвая связь: канал без подписчика — публикации выходят в никуда, доставок ноль; или подписчик без издателя — канал создан, но молчит (канал умеет создавать и подписка).

Отдельный навык — читать пустоту. Пустой ros2 node list в реальной системе — не приговор, а первые вопросы чек-листа: ноды вообще запущены? оболочка подхватила окружение установки (source install/setup.bash)? В эмуляторе курса ответ проще: прогон ещё не запускался. И помните границы: echo печатает до пяти последних сообщений и не показывает тип — тип подтверждается кодом издателя; команд у реального CLI больше, и ros2 topic info с ros2 node info выдают «паспорта» с типами и счётчиками, которых эмулятору не хватает.

Задания

0/12 заданий · 0/140 баллов

1. Терминал: ros2 node list — кто жив в графе

10 балл(ов)

Первая команда глаз джуна. ros2 node list печатает имена нод шины последнего ros-прогона сессии: любой зелёный прогон код-задания прошлых модулей оставляет после себя граф — например, heartbeat_node после задания о таймере из модуля 5. Исполните команду в терминале и прочитайте вывод внимательно: сколько нод, как они названы. Пустой вывод — тоже честный ответ, и диагностика начинается с него: прогон в сессии ещё не запускался — вернитесь к любому код-заданию и запустите.

Симуляция ROS 2 (учебный мок); на реальном железе — по инструкции модуля

Эмулятор ros2 CLI (учебный мок) над шиной последнего ros-прогона. Команды белого списка: ros2 node list, ros2 topic list, ros2 topic echo <топик>.
Введите команду и нажмите Enter.

Цель: ros2 node list исполнен и вывод прочитан: имена нод последнего ros-прогона сессии; пустой список — честный сигнал «прогон ещё не запускался», а не поломка эмулятора · выполнено 0/2

Какие команды доступны?
  • · Имена нод последнего ros-прогона сессии: например heartbeat_node после зелёного прогона задания о таймере из модуля 5; пустой список — честный сигнал «прогон ещё не запускался», а не поломка
  • · Кросс-проверка: каналы того же последнего прогона — у каждой ноды в графе есть, что создать или что слушать
1 / 12