Модуль 1
Зачем роботам ROS 2: карта мира
5 блок(ов) теории · 13 заданий · 170 баллов
ROS 2 расшифровывается как Robot Operating System 2, но операционной системой не является — и это первая развилка понимания. Операционная система на борту — Linux: она делит процессор между процессами, прячет железо за драйверами, держит сеть. ROS 2 — это middleware, надстройка над ОС: библиотеки, инструменты и стандарт связи, которые превращают россыпь программ в согласованную систему. Правильная картинка в голове — не «роботом управляет ROS 2», а «программы робота общаются по стандарту ROS 2»: автопилот, камера, навигатор — отдельные процессы, а ROS 2 — их общий эфир.
Программа в этом мире называется нодой (в формулировках компетенций — «узел», в разговорной речи будем писать «нода»): обычный процесс с одной ответственностью. Симулятор АКБ меряет заряд и публикует его; монитор следит за порогами; логгер пишет историю. Правило «одна нода — одна ответственность» — не эстетика: маленькие ноды можно заменять, переносить на другие машины и отлаживать по отдельности, а упавшая нода не роняет соседей. Ноды не вызывают друг друга напрямую — они обмениваются сообщениями через топики, именованные каналы вида /telemetry/battery. Издатель (publisher) кладёт сообщения в топик, подписчик (subscriber) получает их в свой колбэк — функцию-обработчик, которую нода запускает на каждое входящее сообщение; обе стороны знают только имя топика и тип сообщения, но не друг друга. Типы сообщений берутся из std_msgs: String — текст статуса, Int32 — число спутников, Float32 — заряд АКБ, Bool — флаги вроде «линк жив». Учебный стенд «Модуля» говорит ровно этими четырьмя типами в топиках /telemetry/battery, /telemetry/sats, /telemetry/status, /telemetry/armed и /telemetry/link.
Чтобы ноды нашли друг друга, центральный мастер не нужен — и это главное отличие от ROS 1. История короткая: ROS 1 родился в 2007 году в Willow Garage и держал связь через мастер-процесс — упади он, и весь граф слепнет; экосистема выросла в стандарт исследований, но центральная точка осталась. ROS 2 переехал на DDS — сетевой стандарт, при котором ноды обнаруживают друг друга сами (discovery) и могут жить на разных машинах. Релиз эпохи этого курса — Jazzy (2024). На дроне «Модуль» расклад такой: Raspberry Pi 5 — одноплатник, здесь живёт ROS 2 со своими нодами; Speedy Bee F405 — полётник с ArduPilot, хозяин стабилизации и отказоустойчивости; MAVLink-мост — переводчик между ROS-сообщениями и протоколом полётника; ESC 4-in-1 — силовая электроника, раздающая ток моторам; GPS M10 — сенсор, чьи данные ноды читают из топиков. Полётник и без ROS 2 умеет висеть в воздухе — ROS 2 добавляет верхний этаж автономности: зрение, навигацию, миссии. Глаза джуна в этом мире — три команды CLI: ros2 node list (кто жив в графе), ros2 topic list (какие каналы есть), ros2 topic echo <топик> (что именно летит по каналу). Тем же языком говорят и команды старта: source install/setup.bash готовит оболочку, ros2 run поднимает одну ноду, ros2 launch — состав по launch-файлу.
Задания
0/13 заданий · 0/170 баллов
1. Что такое ROS 2: природа фреймворка
10 балл(ов)На собеседовании в дрон-компанию спросили: «ROS 2 — это что?» Выберите вариант, который верно называет природу ROS 2 и объясняет, почему остальные названия из того же вопроса не подходят.