justxor/robotics-roadmap-2026
justxor/robotics-roadmap-2026 has 35 GitHub stars and 6 forks. GitHot measured 0 stars in 24 hours and +2 in 7 days. Last checked 2026-11-11 05:24 UTC. Last push 2026-10-23.
Открытый курс: собери первого робота и войди в робототехнику с нуля за 6 месяцев. Электроника → Arduino/ESP32 → CAD и 3D-печать → рука SO-101 → ROS 2 (SLAM, Nav2) → PID/LQR, CV → LeRobot. 100+ ресурсов, схемы, готовый код, железо на 3 бюджета, план по неделям и 30 идей проектов
Measured star growth
- in 24h
- 0
- in 7 days
- +2
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
🤖 Robotics Roadmap 2026 — как собрать своего первого робота и войти в робототехнику с нуля
Пошаговый курс на ~6 месяцев (2–3 часа в день): от закона Ома до робота-манипулятора, который учится по демонстрациям. Только открытые и актуальные (2026) ресурсы, схемы подключения, готовые примеры кода и список железа на трёх уровнях бюджета. Ai Ml — материал переработан, структурирован и дополнен схемами, кодом и справочниками.
Курс не пересказывает документацию, а собирает из разрозненных туториалов, книг и университетских курсов один связный маршрут: что учить, в каком порядке, на каком железе и как понять, что тема освоена. Каждый модуль опирается на предыдущий — прошивка балансира превращается в hardware interface для ROS 2, кинематика из модуля 5 управляет рукой, которую ты собрал в модуле 3, а эта же рука записывает демонстрации для обучения политики в модуле 6.
Три принципа курса:
- Сначала двигается — потом формулы. Теория появляется в тот момент, когда без неё робот уже не едет: PID — когда линейный робот виляет, фильтры — когда угол уплывает, кинематика — когда рука промахивается.
- Всё измеряется. Не «робот работает», а «ошибка одометрии 4 см на квадрате 1×1 м» или «успешность политики 17/20». Цифры — это то, что отличает портфолио от поделки.
- Только актуальный стек. ROS 2 Jazzy вместо ROS 1, Gazebo Harmonic вместо Classic, TB6612FNG вместо L298N, LeRobot и VLA-модели вместо устаревших RL-демо. Всё, что умерло к 2026 году, помечено.
Что внутри, кроме ссылок: 7 прошивок для Arduino/ESP32, 4 Python-симуляции, которые запускаются без железа, ROS 2-пакет со своим xacro-роботом, 5 схем подключения, списки железа на трёх бюджетах, план по неделям, гайд по отладке, глоссарий RU ↔ EN и 30 идей проектов. А после основного курса — раздел продвинутых тем: VIO и 3D-SLAM, MPC, шагающие роботы, sim-to-real, своя электроника и real-time.
О курсе
Робототехника выглядит как пять профессий, сложенных друг на друга: электроника, программирование микроконтроллеров, механика, ROS и математика управления, а сверху ещё машинное обучение. Поэтому большинство новичков застревают: читают учебник и бросают на матрицах поворота, покупают Arduino и мигают светодиодом, или ставят ROS 2, не понимая, почему мотор не крутится.
Этот курс выстроен от железа к интеллекту — в том порядке, в котором реально собирается робот. Каждый шаг заканчивается тем, что что-то двигается, а не прочитанной главой.
Для кого
| Ты… | Что получишь |
|---|---|
| программист (backend / frontend / ML) | переход в «физический» мир: МК, моторы, ROS 2, обучение роботов |
| студент / школьник старших классов | структурированный путь и портфолио для стажировки или олимпиад |
| инженер-механик / электронщик | недостающий софт: Python, ROS 2, симуляция, управление |
| мейкер / хоббист | понимание «почему работает», а не только «повторил по видео» |
Что будет в конце
- 🤖 5+ работающих роботов: линейный робот, балансир, дифф-база под ROS 2, робот-рука, рука, обученная по демонстрациям.
- 📁 Портфолио на GitHub: у каждого проекта видео, схема, код, разбор поломок и измеренная цифра результата.
- 🧠 Навыки из вакансий: C++ и Python, ROS 2 (Nav2, ros2_control, MoveIt 2), PID/LQR, фильтры, кинематика, CV, LeRobot.
- 🗣️ Умение рассказать про каждый проект на собеседовании и ответить на три уточняющих вопроса.
Формат
| Параметр | Значение |
|---|---|
| Длительность | ~24 недели по 2–3 часа в день (план по неделям) |
| Стартовый уровень | ноль: школьная математика и умение пользоваться компьютером |
| Стоимость | $0 в симуляции · ~$150–250 за первые реальные роботы · до ~$600–900 со всем железом |
| Компьютер | любой ноутбук с 8+ ГБ ОЗУ, GPU не обязателен |
| ОС | Windows / macOS / Linux; для ROS 2 — Ubuntu 24.04, WSL2 или Docker |
| Язык ресурсов | в основном английский; русскоязычные — в отдельном разделе |
🚀 Быстрый старт за 30 минут (без железа)
# 1. Клонируй курс
git clone https://github.com/justxor/robotics-roadmap-2026.git && cd robotics-roadmap-2026
pip install numpy scipy matplotlib
# 2. Почувствуй управление: почему нужен фильтр и чем LQR лучше PID
python examples/python/complementary_filter_demo.py
python examples/python/cartpole_lqr.py
# 3. «Поезди» на симуляторе дифф-робота: квадрат по одометрии, затем WASD
python examples/python/diffdrive_teleop.py --sim --demo square
python examples/python/diffdrive_teleop.py --sim
# 4. ROS 2 Jazzy в Docker — без установки Ubuntu
docker run -it --rm osrf/ros:jazzy-desktop ros2 run demo_nodes_cpp talker
Параллельно открой Falstad и Wokwi (симулятор Arduino/ESP32 в браузере) — первые две недели курса проходятся там бесплатно.
📚 Справочники в репозитории
| Документ | Зачем |
|---|---|
| 📅 План по неделям | 24 недели: тема и конкретный результат каждой недели |
| 🛒 Списки железа (BOM) | что купить на каждом уровне бюджета |
| 🔍 Отладка: «не работает — что проверить» | питание, прошивка, моторы, I2C, PID, ROS 2, 3D-печать |
| ⚠️ Безопасность | LiPo, пайка, механика — прочитай до первой сборки |
| 📖 Глоссарий RU ↔ EN | 100+ терминов, чтобы искать документацию на английском |
| 💡 30 идей проектов | от начального до продвинутого, с метрикой для портфолио |
| ❓ FAQ | образование, компьютер, ОС, бюджет, где спросить, как искать работу |
Содержание
- О курсе · Быстрый старт · Справочники
- Почему робототехника и кто такой робототехник
- Как пользоваться курсом
- Карта курса
- Бюджет: три уровня
- Модуль 1. Электроника, инструменты, Python и Git
- Модуль 2. Микроконтроллеры, моторы, датчики — первые роботы
- Модуль 3. CAD, 3D-печать и робот-рука
- Модуль 4. ROS 2, симуляция и автономная навигация
- Модуль 5. Математика роботов: управление, кинематика, зрение
- Модуль 6. Обучение роботов, портфолио и работа
- 🚀 Продвинутые темы — куда расти после курса
- Частые ловушки новичков
- Схемы и примеры кода в репозитории
- Дополнительные ресурсы · Русскоязычные ресурсы · Сообщества
Почему робототехника
- Модели ИИ уже умеют многое — не хватает людей, которые умеют «поместить их в тело».
- Физический мир нельзя спарсить: данные для роботов создаются только руками и реальным железом.
- Порог входа кажется высоким, поэтому конкуренция ниже, чем в «чистом» AI/ML.
Чем на самом деле занимается робототехник. Профессия делится на специализации — выбираешь одну, а в остальных ориентируешься:
| Специализация | Что делает |
|---|---|
| Perception / CV | камеры, лидары, облака точек, детекция |
| Controls / State estimation | регуляторы, фильтры Калмана, устойчивость |
| Motion planning / Manipulation | траектории, захват, MoveIt |
| Robot learning | имитационное обучение, RL, VLA-модели |
| Embedded / Firmware | МК, драйверы, реальное время |
| Simulation | Gazebo, MuJoCo, Isaac |
| Systems / Integration | ROS 2, архитектура, железо + софт |
Типичные требования в вакансиях: C++ и Python (оба), опыт с реальным железом, глубина в одной области, умение отлаживать. Диплом конкретной специальности — не обязателен.
Как пользоваться курсом
- Иди по модулям по порядку. Каждый модуль = ресурсы → фокус → практическое задание → чек-лист.
- Каждый проект — отдельный репозиторий на GitHub с README: фото/видео, схема подключения, код и абзац «что сломалось и как починил». Это и есть портфолио.
- Не покупай железо заранее — первые недели всё делается в симуляторах бесплатно.
- Отмечай чек-листы прямо в своём форке этого репозитория.
Карта курса
flowchart LR
M1["1. Электроника<br/>паяльник, мультиметр<br/>Python + Git"] --> M2["2. Arduino / ESP32<br/>моторы, датчики<br/>🤖 линейный робот<br/>🤖 балансир"]
M2 --> M3["3. CAD + 3D-печать<br/>🦾 рука SO-101"]
M3 --> M4["4. ROS 2 + Gazebo<br/>ros2_control<br/>🗺️ SLAM + Nav2"]
M4 --> M5["5. Управление (PID/LQR/MPC)<br/>кинематика, CV<br/>MoveIt 2"]
M5 --> M6["6. LeRobot, VLA, RL<br/>📁 портфолио<br/>💼 собеседования"]
Бюджет: три уровня
| Уровень | Сумма (≈) | Что входит |
|---|---|---|
| 0 | $0 | Симуляторы: Falstad, Tinkercad, Gazebo, MuJoCo. Весь ROS 2 можно пройти без железа |
| 1 | $45–60 | Стартовый набор Arduino (Elegoo UNO R3 Super Starter Kit) + мультиметр |
| 2 | $110–160 | + паяльник (Pinecil V2), припой, бокорезы, стриппер, макетки, «третья рука» |
| 3 | $200–300 | + лабораторный БП, ESP32-S3, драйверы моторов, шасси, датчики |
| Рука | $120–350 | SO-101 (один follower ≈ $122 + печать, пара leader/follower ≈ $230 + печать, готовые наборы $280–490) |
Где заказывать: первый заказ — Amazon / официальный магазин Elegoo (быстро, есть возврат). Adafruit / SparkFun / Pololu — дороже, но к каждому товару есть отличный туториал. AliExpress — в 3–10 раз дешевле, но 2–6 недель доставки и брак без поддержки; переходи туда, когда уже понимаешь, что покупаешь. DigiKey / Mouser — точные компоненты с даташитами. В СНГ: Чип и Дип, Амперка, Ozon/WB для расходников.
Подробный список компонентов: docs/hardware-bom.md.
Модуль 1. Электроника, инструменты, Python и Git (недели 1–4)
Цель: читать схему, собрать работающую цепь и найти неисправность, если она не работает.
1.1 Основы электроники
| Ресурс | Почему |
|---|---|
| Falstad Circuit Simulator | бесплатно, в браузере, видно, как течёт ток |
| Tinkercad Circuits | виртуальная макетка + Arduino + мультиметр |
| All About Circuits — Textbook | открытый учебник по электротехнике |
| Afrotechmods | короткие весёлые видео |
| Charles Platt, Make: Electronics (3rd ed.) | лучшая бумажная книга для полного новичка (есть русский перевод «Электроника для начинающих») |
Фокус: закон Ома и делитель напряжения «на автомате»; ток потребления и почему мотор в стопоре перезагружает МК; символы на схемах; подтягивающие резисторы (pull-up/down); развязывающий конденсатор у каждой микросхемы; основы LiPo (число банок, C-рейтинг, никогда не заряжать без присмотра).
🛠 Практика: собери делитель в Falstad, посчитай Uвых руками и сверь. Затем — транзисторный ключ, включающий светодиод от логического сигнала 3.3 В (это та самая схема, которой потом пин МК управляет нагрузкой). Схема: schematics/01-basics.md.
1.2 Инструменты и мультиметр
Фокус пайки: лудить жало и держать его чистым; греть соединение, а не припой; узнавать «холодную» пайку на глаз; сначала выводной монтаж, SMD — сильно позже; флюс решает большинство проблем.
🛠 Практика: измерь напряжение батарейки, сопротивление пяти резисторов (сверь с цветовой маркировкой), найди прозвонкой специально порванный провод. Запаяй гребёнку на модуль три раза, прозвони каждый пин, выпаяй и запаяй снова.
1.3 Python, терминал, Git
| Ресурс | Почему |
|---|---|
| CS50P (Harvard) | строгий курс с задачами и финальным проектом |
| Python for Everybody | самый мягкий старт |
| The Missing Semester (MIT) | shell, скрипты, ssh — робототехника живёт в терминале |
| Learn Git Branching | интерактивно про ветки |
🛠 Практика: с этого дня каждый проект — репозиторий с README (фото, схема, «что сломалось»).
✅ Чек-лист модуля 1
- Читаю схему и собираю по ней цепь на макетке
- Проверяю номинал резистора расчётом до включения
- Нахожу КЗ, обрыв и дохлый компонент мультиметром
- Паяю чистое выводное соединение и проверяю его прозвонкой
- Пишу скрипт на Python, запускаю из терминала, пушу на GitHub
- Могу объяснить, почему застопоренный мотор сбрасывает микроконтроллер
Модуль 2. Микроконтроллеры, моторы, датчики — первые роботы (недели 5–8)
Цель: робот, который едет, чувствует окружение и сам себя корректирует. Линейный робот — это уже замкнутый контур управления (датчик → регулятор → мотор), то есть «гуманоид в миниатюре».
2.1 Arduino
| Ресурс | Почему |
|---|---|
| Paul McWhorter — Arduino Lessons | 100+ уроков с домашками, медленно и понятно |
| Arduino Built-in Examples | готовые скетчи прямо в IDE |
| Arduino Docs — Learn | справочник по GPIO, PWM, I2C, SPI, UART |
| Arduino Project Hub | тысячи проектов со схемами |
Фокус: digitalWrite/Read, analogRead/Write, что такое ШИМ; прерывания и антидребезг; I2C/SPI и поиск адреса в даташите; отладка через Serial; неблокирующие задержки через millis() вместо delay().
🛠 Практика: игра «время реакции» — светодиод загорается через случайное время, кнопка останавливает таймер, результат в Serial. Пример: examples/arduino/01_reaction_timer.
2.2 ESP32
| Ресурс | Почему |
|---|---|
| Random Nerd Tutorials — ESP32 | лучшая бесплатная библиотека туториалов по ESP32 |
| ESP-IDF Programming Guide | «настоящий» фреймворк Espressif |
| Arduino-ESP32 Core docs | мост между Arduino и ESP-IDF |
| DroneBot Workshop — ESP32 | подробные статьи + видео: ESP-NOW, OTA, сон |
Что выбрать: Arduino-фреймворк — быстрее всего до работающего робота; ESP-IDF — когда нужен контроль над задачами, ядрами и таймингами; MicroPython — для экспериментов с датчиками, но не для балансира (паузы сборщика мусора ломают тайминг). Основная плата — ESP32-S3, плюс одна классическая ESP32 для старых туториалов.
🛠 Практика: ESP32 раздаёт веб-страницу с показаниями датчика и кнопками, которые крутят сервопривод; открываешь с телефона. Пример: examples/arduino/04_esp32_web_servo.
2.3 Моторы и драйверы
| Тип | Особенности |
|---|---|
| Коллекторный DC-мотор с редуктором | дёшево, нужен H-мост, без энкодера нет обратной связи — стандарт для первого ровера |
| Хобби-серво (SG90, MG996R) | внутренний контур, ~180°, наружу обратной связи нет |
| «Умный» шинный серво (Feetech STS3215) | цепочка по шине, обратная связь по позиции/скорости/току — на них собраны современные дешёвые руки |
| Шаговый (NEMA17) | открытый контур, точное позиционирование, большой удерживающий момент |
- DroneBot: DC Motors with L298N
- SparkFun TB6612FNG Hookup Guide
- DroneBot: Stepper Motors with Arduino
- SimpleFOC docs — бесщёточные моторы и FOC, когда дорастёшь
⚠️ L298N есть в каждом туториале — не используй его в своих роботах. Это устаревший биполярный мост: теряет ~2 В, греется, сажает батарею. Бери TB6612FNG или DRV8833.
🛠 Практика: крути DC-мотор вперёд/назад на пяти скоростях через ШИМ. Затем добавь энкодер и напиши функцию «ровно один оборот колеса при любом напряжении батареи» — твой первый настоящий замкнутый контур. Схема: schematics/02-motor-driver.md, код: examples/arduino/02_motor_encoder.
2.4 Датчики и оценка состояния
| Ресурс | Почему |
|---|---|
| Kalman and Bayesian Filters in Python (R. Labbe) | лучший бесплатный курс по фильтрам, Jupyter-ноутбуки |
| MathWorks — Understanding Sensor Fusion | концептуальный обзор |
| Adafruit BNO085 guide | IMU с фьюжном на чипе — отдаёт кватернион |
Датчики для старта: HC-SR04 (ультразвук), VL53L0X (ToF-лазер), MPU-6050 (6-DoF IMU, фьюжн делаешь сам — в этом смысл), BNO085, магнитные энкодеры Pololu, лидар RPLIDAR C1.
💡 Для балансира сначала напиши комплементарный фильтр, а не Калман:
angle = a * (angle + gyro * dt) + (1 - a) * accelAngle, гдеa ≈ 0.98.
🛠 Практика: закрепи IMU, выводи угол тангажа, держи плату неподвижно — угол по гироскопу всё равно уплывает. Добавь комплементарный фильтр — дрейф исчезает. Симуляция на Python: examples/python/complementary_filter_demo.py, на МК: examples/arduino/03_imu_complementary.
2.5 Первые два робота
🤖 Робот, едущий по линии (≈$105 качественная сборка / ≈$38 бюджетная)
ESP32-S3 + шасси Pololu Romi (или 2WD-акрил) + TB6612FNG/DRV8833 + массив датчиков QTR-8RC (или 5× TCRT5000) + аккумуляторы.
Схема: schematics/03-line-follower.md · Код: examples/arduino/05_line_follower_pid
🤖 Самобалансирующий робот (≈$134 / ≈$62)
ESP32 + 2 мотора с энкодерами + TB6612FNG + MPU-6050 + печатное шасси + LiPo.
Схема: schematics/04-self-balancing.md · Код: examples/arduino/06_self_balancing
🛠 Практика: настрой линейного робота сначала только P-регулятором, потом добавь D и посмотри, как исчезают колебания. Сними оба видео рядом — это лучшее доказательство, что ты понимаешь контур, а не скопировал коэффициенты. Балансир не заработает, пока фильтр и тайминг цикла не будут правильными, — и эта боль и есть обучение.
2.6 🌉 Мост к ROS 2: прошивка «нижнего уровня»
Последний шаг модуля 2 и вход в модуль 4: ESP32 держит PID скорости каждого колеса, а компьютер по USB только говорит «хочу v и ω» и читает энкодеры — так устроены настоящие роботы.
- Прошивка:
examples/arduino/07_diffdrive_bridge— PID скорости, текстовый протокол в стиле ros_arduino_bridge, авто-стоп при потере связи. - Хост:
examples/python/diffdrive_teleop.py— телеуправление WASD, кинематика дифф-привода, одометрия (x, y, θ) и встроенный симулятор:python diffdrive_teleop.py --sim --demo squareработает вообще без железа.
🛠 Практика: проедь квадрат 1×1 м по одометрии и измерь рулеткой, где робот реально остановился. Ошибка в сантиметрах — первая метрика в твоём портфолио. Потом эта же прошивка подключается к ros2_control (модуль 4.5).
✅ Чек-лист модуля 2
- Управляю скоростью мотора и понимаю разницу между скважностью ШИМ и реальными оборотами
- Читаю энкодер и замыкаю контур по позиции
- Подключаю I2C-датчик по даташиту без туториала
- Получаю стабильный угол из акселерометра + гироскопа
- Объясняю P, I и D через то, что делал мой робот
- Два работающих робота на GitHub со схемами, кодом и разбором поломок
- Робот проезжает квадрат по одометрии, ошибка измерена рулеткой
Модуль 3. CAD, 3D-печать и робот-рука (недели 9–12)
Цель: спроектировать деталь, изготовить её — и чтобы она подошла.
3.1 CAD — выбери один и углубись
| Инструмент | Когда |
|---|---|
| Onshape Free | в браузере, отличные сборки/сопряжения; минус — все документы публичны |
| Fusion (Personal) | бесплатно для некоммерческого использования, есть CAM |
| FreeCAD 1.x | полностью открытый, без облака и лицензий — хорош, если с оплатой/облаком проблемы |
| SOLIDWORKS for Makers | индустриальный стандарт за ~$48/год |
- Onshape Learning Center — Fundamentals
- Learn Fusion in 30 Days (Product Design Online)
- MangoJelly Solutions — FreeCAD
- Design for 3D printing (Protolabs/Hubs)
Фокус: полностью определённые эскизы; параметрика через переменные; сборки с шарнирами (revolute/slider/fixed); проектирование вокруг реального железа по чертежу из даташита; STEP для обмена, STL/3MF для печати.
🛠 Практика: кронштейн под твой сервопривод по чертежу из даташита. Напечатай. С первого раза не подойдёт — в этом урок.
3.2 3D-печать
Принтеры для старта: Bambu Lab A1 mini / A1, Creality Ender-3 V3 SE; закрытые — Creality K1C, Bambu P1S.
| Пластик | Для чего |
|---|---|
| PLA / PLA+ | прототипы, оснастка, сама рука SO-101 (PLA+, 15% заполнения, слой 0.2) |
| PETG | «настоящие» детали робота: шасси, корпуса редукторов, крепления |
| ABS / ASA | рядом с горячими моторами, улица; нужен закрытый принтер |
| TPU | ножки, бамперы, мягкие пальцы захвата |
| Нейлон / CF | шестерни и жёсткие звенья (CF требует закалённое сопло) |
- OrcaSlicer — Calibration wiki
- Teaching Tech — Calibration
- CNC Kitchen — тесты прочности печатных деталей
- Clearance & Tolerance gauge
Нет принтера? Fab Labs, библиотечные мейкерспейсы, Craftcloud, JLC3DP.
🛠 Практика: напечатай калибр допусков, запиши реальные зазоры своего принтера, затем спроектируй защёлкивающийся корпус для ESP32 без клея.
3.3 Приводы и передачи
Передаточные числа (скорость ↔ момент), люфт (его не исправить софтом), подшипники, ремень vs шестерня vs прямой привод, почему пластиковый редуктор дешёвого серво ломается первым.
🛠 Практика: напечатай планетарный или циклоидный редуктор для NEMA17 (пример OpenCycloid), измерь люфт, переделай.
3.4 🦾 Робот-рука SO-101 — главная покупка курса
Открытая 5-DoF рука + захват от TheRobotStudio и Hugging Face. Собирается парой leader + follower: двигаешь одну рукой — вторая повторяет. Это телеуправление = запись демонстраций для модуля 6.
- Репозиторий и BOM: TheRobotStudio/SO-ARM100
- Гайд по сборке и калибровке: LeRobot — SO-101
- Наборы: Seeed Studio SO-ARM101, печатные детали Seeed, WowRobo, Robonine
Дешевле: $0 — всё в симуляции MuJoCo; $50–80 — EEZYbotARM MK2 на MG996R; ~$122 — одна follower-рука без телеуправления; Hiwonder xArm 1S.
🛠 Практика: собери SO-101, откалибруй, управляй follower через leader. Спроектируй свои пальцы захвата из TPU и проверь на трёх предметах разной формы.
✅ Чек-лист модуля 3
- Моделирую деталь по даташиту с полностью определёнными эскизами
- Знаю реальные зазоры своего принтера из измерений
- Выбираю PLA / PETG / ABS / TPU под задачу и обосновываю
- Могу показать люфт на своей конструкции
- Собрал, откалибровал и доработал робот-руку своими деталями
Модуль 4. ROS 2, симуляция и автономная навигация (недели 13–16)
Цель: робот в ROS 2, симуляция, построение карты комнаты и автономная навигация. Всё можно сделать на обычном ноутбуке без GPU и без железа.
4.1 Какой ROS 2 ставить
| Дистрибутив | Ubuntu | Поддержка | Gazebo |
|---|---|---|---|
| Jazzy Jalisco (LTS) ← начинай здесь | 24.04 | до 05.2029 | Harmonic |
| Lyrical Luth (LTS, новейший) | 26.04 | до 05.2031 | Jetty |
| Kilted Kaiju | — | до 12.2026 — не начинай | Ionic |
| Humble Hawksbill | 22.04 | до 05.2027 — legacy | Fortress |
Jazzy — потому что почти все курсы и книги пока на нём. ROS 1 мёртв (Noetic EOL 31.05.2025): если в туториале catkin_make, roscore, rosrun, rospy — закрывай вкладку. В ROS 2: colcon build, ros2 run, launch-файлы на Python.
Нет Ubuntu? Используй Docker-образ
osrf/ros:jazzy-desktop, WSL2 или браузерную среду The Construct.
4.2 Основы ROS 2
| Ресурс | Почему |
|---|---|
| Официальные туториалы ROS 2 Jazzy | канонический справочник |
| Articulated Robotics (Josh Newans) | лучший бесплатный путь «от URDF до SLAM на реальном роботе» |
| MOGI-ROS | полный университетский курс на Jazzy + Gazebo Harmonic, открытый код |
| Automatic Addison | рецепты под конкретные дистрибутивы |
| The Construct | ROS в браузере, есть бесплатные курсы |
| Edouard Renard — ROS 2 for Beginners (Udemy) | платный, но стоит $10–20 по скидке |
Фокус: ноды, топики, сервисы, экшены (и когда что); свои .msg/.srv; параметры и YAML; launch-файлы; colcon-воркспейс; ros2 bag. QoS-несовпадение — частая причина «публикую, а никто не получает».
🛠 Практика: система из нескольких нод без робота: публикатор датчика → нода обработки → сервис конфигурации, свои сообщения, launch с аргументами, запись в ros2 bag. Стартовый пакет: examples/ros2/robot_basics.
4.3 URDF, TF, xacro
Частые ошибки: путают joint_state_publisher (придумывает положения суставов) и robot_state_publisher (считает TF из них); нет <inertial> → робот взрывается/проваливается в Gazebo; нет статического TF до лидара → SLAM не работает; 400 строк XML руками → используй xacro.
🛠 Практика: свой робот в xacro (не TurtleBot): дифференциальная база + мачта + pan-tilt голова, с инерциями. Пример: examples/ros2/robot_basics/urdf/diff_bot.urdf.xacro.
4.4 Симуляция
- Gazebo docs — учить первым: родная интеграция с ROS 2. Gazebo Classic мёртв (EOL 01.2025);
ign→gz. - MuJoCo — точная физика контактов, CPU, стандарт для RL и манипуляции.
- NVIDIA Isaac Sim — фотореализм, но нужна мощная RTX-карта.
- PyBullet — не развивается, не начинай на нём.
🛠 Практика: твой xacro-робот в Gazebo + плагины лидара и камеры + свой мир с препятствиями; данные видны в RViz.
4.5 ros2_control
- ros2_control docs
- Articulated Robotics — ros2_control на реальном железе
- Своя прошивка для этого шага уже есть:
07_diffdrive_bridge+ diffdrive_arduino
🛠 Практика: diff_drive_controller + joint_state_broadcaster, езда с клавиатуры в Gazebo; action-сервер «проехать N метров» с фидбеком и отменой. Сильный пункт в портфолио — его мало кто делает.
4.6 SLAM и навигация
- Nav2 — Getting Started и Nav2 Tutorials
- SLAM Toolbox — 2D-SLAM по лидару
- RTAB-Map ROS — RGB-D/стерео, 3D-карта
Фокус: картирование vs локализация; качество одометрии (размытая карта — почти всегда одометрия); настройка costmap; behavior trees в Nav2.
Железо: $0 — Gazebo; $250–450 — своя сборка: RPLIDAR C1 + Raspberry Pi 4/5 + база с энкодерами; $300–535 — готовые Hiwonder MentorPi, Waveshare UGV Rover (Pi + ESP32 — так устроены реальные роботы). Архитектура: schematics/05-ros2-rover-architecture.md.
🛠 Практика: SLAM Toolbox в своём мире → сохранить карту → режим локализации → цели Nav2 из RViz → запись экрана. Видео робота, который сам ездит по построенной им карте, — сильнейший артефакт самоучки.
✅ Чек-лист модуля 4
- Пишу ноды на Python и C++ с топиками, сервисами и экшенами
- Описываю своего робота в xacro с правильными фреймами и инерциями
- Симулирую его в Gazebo с лидаром и камерой
- Управляю через ros2_control, а не сырыми командами
- Строю карту SLAM Toolbox и езжу автономно через Nav2
- Чиню сломанное TF-дерево
Модуль 5. Математика роботов: управление, кинематика, зрение (недели 17–20)
Цель: понять, что делали библиотеки за тебя. Разница между «умею настроить Nav2» и «умею починить Nav2» — именно здесь.
5.1 Теория управления
| Ресурс | Почему |
|---|---|
| MATLAB Tech Talks — Understanding PID Control | windup, фильтр D, настройка |
| Brian Douglas — Control System Lectures | интуиция без формального курса |
| Brian Douglas — The Fundamentals of Control Theory | бесплатная книга (CC) |
| Steve Brunton — Control Bootcamp | пространство состояний, LQR, Калман |
| Åström & Murray — Feedback Systems | классический учебник, бесплатный PDF |
| MATLAB — Understanding MPC | MPC на пальцах |
| Russ Tedrake — Underactuated Robotics (MIT) | глубже: ходьба, LQR, оптимизация траекторий |
🛠 Практика: на балансире из модуля 2 — P, PD, PID + feedforward, логируй переходные процессы. Затем LQR для cart-pole на Python и сравнение с PID при возмущении: examples/python/cartpole_lqr.py.
5.2 Кинематика и динамика
- Modern Robotics (Kevin Lynch) — книга, видео, код и специализация на Coursera
- Robotics Toolbox for Python (Peter Corke)
- QUT Robot Academy
- PythonRobotics (Atsushi Sakai) — сотни алгоритмов (SLAM, планирование, управление) с анимациями
🛠 Практика: прямая и обратная кинематика двухзвенного манипулятора: examples/python/two_link_ik.py. Потом — для SO-101 через Robotics Toolbox.
5.3 Компьютерное зрение
- OpenCV Bootcamp (бесплатно)
- OpenCV — калибровка камеры
- Cyrill Stachniss (Uni Bonn) — лекции по робототехнике и SLAM
- Open3D — облака точек
🛠 Практика: откалибруй камеру шахматкой, найди ArUco-маркер и оцени его позу в 3D.
5.4 Манипуляция и MoveIt 2
- MoveIt 2 — Getting Started
- MoveIt Task Constructor — pick and place
- Russ Tedrake — Robotic Manipulation (MIT)
🛠 Практика: pick-and-place в MoveIt 2 для руки в симуляции; затем позу объекта даёт камера из 5.3.
✅ Чек-лист модуля 5
- Объясняю и реализую PID с anti-windup и фильтрацией D
- Реализовал LQR и понимаю, когда он лучше PID
- Решаю прямую и обратную кинематику для простой руки
- Калибрую камеру и получаю 3D-позу объекта
- Делаю pick-and-place в MoveIt 2
Модуль 6. Обучение роботов, портфолио и работа (недели 21–24)
Цель: научить робота задаче по демонстрациям вместо ручного программирования — и упаковать всё в портфолио.
6.1 LeRobot — имитационное обучение на SO-101
- LeRobot docs · GitHub
- Hugging Face Robotics Course — без железа
- SO-101 + LeRobot
Цикл: телеуправление leader → запись датасета (50+ эпизодов) → обучение политики (ACT / Diffusion Policy / SmolVLA) → запуск на follower → оценка успешности.
6.2 Vision-Language-Action модели
- openpi (π₀ / π₀.₅, Physical Intelligence)
- OpenVLA
- NVIDIA Isaac GR00T
- SmolVLA — компактная, для доступного железа
6.3 Обучение с подкреплением
- MuJoCo Playground
- NVIDIA Isaac Lab
- Sergey Levine — CS285 Deep RL (UC Berkeley)
- Hugging Face Deep RL Course
🛠 Практика: запиши датасет «взять кубик и положить в коробку», обучи политику в LeRobot, замерь успешность на 20 попытках, опубликуй датасет и модель на Hugging Face Hub.
6.4 Портфолио
Минимум 4–5 проектов, каждый с видео ≤ 60 сек, схемой, кодом и разделом «что сломалось»:
- Линейный робот: видео «только P» vs «PD»
- Балансир с графиками угла
- Своя деталь/редуктор в CAD + замер люфта
- Робот в ROS 2: xacro → Gazebo → ros2_control → SLAM + Nav2
- SO-101: телеуправление → датасет → обученная политика
Каждый проект должен выдержать три уточняющих вопроса на собеседовании.
6.5 Собеседования
Готовься объяснять: PID и что делает каждый член; комплементарный vs Калман; TF-дерево и типичные ошибки; топик vs сервис vs экшен; прямая/обратная кинематика; отладку конкретного бага из своего проекта. Примеры вопросов: Glassdoor — Robotics Engineer interview questions.
✅ Чек-лист модуля 6
- Записал датасет и обучил политику в LeRobot
- Запустил политику на реальной руке и измерил успешность
- Понимаю, что такое VLA-модели и когда их применять
- Портфолио из 4–5 проектов с видео
- Могу 10 минут рассказывать про каждый проект
🚀 Продвинутые темы — куда расти после курса
После шести модулей ты умеешь собрать робота «от пина до политики». Дальше — глубина. Выбери одно-два направления под свою специализацию (см. таблицу специализаций) и сделай в каждом проект с измеренной цифрой.
7.1 Оценка состояния: EKF, фактор-графы, VIO
Комплементарный фильтр — это начало. Реальные роботы сливают колёсную одометрию, IMU, GPS и камеру в одну оценку позы.
- robot_localization — EKF/UKF для ROS 2: одометрия + IMU (+ GPS) → одна поза
- GTSAM — фактор-графы и сглаживание: на них построены современные SLAM и VIO
- OpenVINS — визуально-инерциальная одометрия (камера + IMU) с отличной документацией
- Thrun, Burgard, Fox — Probabilistic Robotics, главы про EKF, частичный фильтр и Graph SLAM
🛠 Проект: подключи robot_localization к роверу из модуля 4, сравни ошибку замкнутого круга «только колёса» vs «колёса + IMU». Построй график дрейфа курса.
7.2 3D-лидары и visual SLAM
- KISS-ICP — простая и надёжная лидарная одометрия, хороша, чтобы понять ICP
- FAST-LIO2 — лидар + IMU, стандарт де-факто для 3D-картирования
- ORB-SLAM3 — классика visual / visual-inertial SLAM
- NVIDIA Isaac ROS — GPU-ускоренный VSLAM, nvblox, детекция на Jetson
- SLAM Book (Gao Xiang) — теория visual SLAM с кодом на C++
🛠 Проект: запиши ros2 bag с камеры (или возьми открытый датасет EuRoC / KITTI), прогони ORB-SLAM3 и KISS-ICP, посчитай ATE (absolute trajectory error) через evo.
7.3 Оптимальное управление и MPC
LQR из модуля 5 — частный случай. MPC решает задачу оптимизации на каждом шаге и учитывает ограничения: максимальный ток, угол, скорость.
- CasADi — символьная оптимизация, удобно прототипировать MPC на Python
- acados — быстрые решатели MPC для реального времени (генерирует C-код под встраиваемые платформы)
- Underactuated Robotics (Tedrake) — оптимизация траекторий, iLQR, стабилизация
- Drake — инструментарий MIT для моделирования, оптимизации и управления
🛠 Проект: MPC для cart-pole с ограничением на силу (расширь examples/python/cartpole_lqr.py), сравни с LQR при насыщении привода. Затем — MPC-трекинг траектории для дифф-робота.
7.4 Динамика, шагающие роботы и whole-body control
- Pinocchio — быстрая динамика твёрдых тел (RNEA, CRBA, производные), основа большинства стеков для ног и гуманоидов
- Crocoddyl — DDP / оптимальное управление для контактных задач
- OCS2 — MPC для четвероногих и мобильных манипуляторов (ETH Zürich)
- Isaac Lab / MuJoCo Playground — RL-обучение походки за минуты на GPU
🛠 Проект: обучи политику ходьбы для четвероногого в MuJoCo Playground, затем добавь рандомизацию трения и массы и покажи, как растёт устойчивость к возмущениям.
7.5 Sim-to-real и масштабное обучение роботов
- Domain randomization: трение, массы, задержки, шум датчиков, освещение — политика, обученная на разнообразии, переносится на железо
- System identification: измерь реальные параметры моторов (задержка, люфт, насыщение) и подставь их в симулятор
- Diffusion Policy — оригинальная статья и код, полезно прочитать после LeRobot
- Дообучение VLA (openpi, SmolVLA) на своём датасете: языковые команды «положи красный кубик в коробку»
🛠 Проект: обучи одну и ту же задачу для SO-101 в симуляции и на реальных демонстрациях, сравни успешность. Затем смешай датасеты и измерь, помогает ли симуляция.
7.6 Планирование движения
- OMPL — sampling-based планировщики (RRT*, PRM), на нём работает MoveIt 2
- Траекторная оптимизация (CHOMP, TrajOpt) и учёт динамики — через Drake
- BehaviorTree.CPP — деревья поведения для сложной логики задач (тот же движок, что в Nav2)
🛠 Проект: реализуй RRT и A* на Python для 2D-карты из SLAM Toolbox и сравни с планировщиком Nav2 по длине пути и времени.
7.7 Своя электроника, BLDC и real-time
- KiCad — от макетки к своей плате: разведи шилд «ESP32 + 2× драйвер + IMU + питание» и закажи на JLCPCB / PCBWay
- SimpleFOC, moteus, ODrive — бесщёточные моторы с FOC: управление моментом и квази-прямой привод
- micro-ROS — ESP32 как полноценная нода ROS 2 вместо текстового протокола
- Zephyr / FreeRTOS — детерминированные циклы управления, приоритеты задач
- ROS 2 Real-Time Working Group — PREEMPT_RT, executors, измерение джиттера
🛠 Проект: перенеси 07_diffdrive_bridge на micro-ROS, измерь джиттер контура скорости (осциллографом или логированием) до и после — это сильный аргумент для позиции Embedded.
7.8 Системная инженерия: несколько роботов и продакшен
- rmw_zenoh — альтернативный middleware ROS 2 для Wi-Fi и связи «робот ↔ облако»
- Open-RMF — управление флотом разнородных роботов, лифты, двери, трафик
- CI для робототехники: сборка и тесты ROS 2-пакетов в GitHub Actions,
launch_testing, симуляция в CI - Функциональная безопасность: стандарты ISO 10218 (промышленные роботы), ISO 13482 (сервисные), аварийный стоп «на железе», а не в софте
🛠 Проект: два робота в одной симуляции Gazebo с namespace'ами, общей картой и раздачей целей; CI, который собирает пакет и прогоняет launch-тест на каждый push.
✅ Чек-лист продвинутого уровня
- Сливаю несколько датчиков через EKF и показываю выигрыш в цифрах
- Запускал 3D/visual SLAM и считал ATE на датасете
- Реализовал MPC с ограничениями и сравнил с LQR
- Понимаю, как работает sim-to-real, и измерил разрыв между симуляцией и железом
- Развёл свою плату или перенёс прошивку на micro-ROS / RTOS
- Глубокий проект хотя бы в одном направлении, который не стыдно показать на собеседовании Senior-уровня
Частые ловушки новичков
| Ловушка | Что делать |
|---|---|
| Учебник по теории → бросил на матрицах поворота | Сначала строй, теорию — когда упрёшься |
| Купил Arduino, помигал светодиодом и всё | Сразу ставь цель — робот, который едет |
| ROS 2 без понимания ШИМ и питания | Сначала модули 1–2 |
| Только ML, без железа | Политика бесполезна, если мотор не крутится |
delay() в роботе |
millis() / таймеры / FreeRTOS |
| L298N | TB6612FNG / DRV8833 |
Туториалы ROS 1 / Gazebo Classic / ign |
Проверяй дату и команды |
| Общая земля забыта | GND МК, драйвера и батареи соединены всегда |
| Мотор и МК от одного источника без развязки | Отдельный стабилизатор + конденсаторы |
Схемы и примеры кода в репозитории
robotics-roadmap-2026/
├── README.md ← этот курс
├── assets/ ← обложка репозитория
├── docs/
│ ├── week-by-week.md ← план на 24 недели
│ ├── hardware-bom.md ← списки компонентов на 3 бюджета
│ ├── debugging.md ← «не работает — что проверить»
│ ├── safety.md ← безопасность: LiPo, пайка, механика
│ ├── glossary.md ← термины RU ↔ EN
│ ├── project-ideas.md ← 30 идей проектов для портфолио
│ └── faq.md ← частые вопросы
├── schematics/
│ ├── 01-basics.md ← делитель, транзисторный ключ, pull-up
│ ├── 02-motor-driver.md ← ESP32 + TB6612FNG + моторы с энкодерами
│ ├── 03-line-follower.md ← полная схема линейного робота
│ ├── 04-self-balancing.md ← схема балансира
│ └── 05-ros2-rover-architecture.md ← Pi + ESP32 + лидар в ROS 2
└── examples/
├── arduino/
│ ├── 01_reaction_timer/ ← прерывания, антидребезг, millis()
│ ├── 02_motor_encoder/ ← ШИМ + энкодер + «ровно 1 оборот»
│ ├── 03_imu_complementary/ ← MPU-6050 + комплементарный фильтр
│ ├── 04_esp32_web_servo/ ← веб-сервер на ESP32 + серво
│ ├── 05_line_follower_pid/ ← линейный робот на PID
│ ├── 06_self_balancing/ ← балансир
│ └── 07_diffdrive_bridge/ ← PID скорости колёс + протокол для ROS 2
├── python/
│ ├── complementary_filter_demo.py
│ ├── cartpole_lqr.py
│ ├── two_link_ik.py
│ └── diffdrive_teleop.py ← телеуправление, одометрия, симулятор
└── ros2/
└── robot_basics/ ← пакет ROS 2: ноды, launch, xacro
Дополнительные ресурсы
Сборники
- kiloreux/awesome-robotics
- fkromer/awesome-ros2
- AtsushiSakai/PythonRobotics — сотни алгоритмов с анимациями
- jslee02/awesome-robotics-libraries — библиотеки и симуляторы
- mithi/robotics-coursework — каталог университетских курсов по робототехнике
Курсы и платформы
- Duckietown — открытая платформа для обучения автономному вождению
- MIT 6.4210 Robotic Manipulation
- Hugging Face Robotics Course
- 3Blue1Brown — Essence of Linear Algebra — линейная алгебра визуально, перед модулями 4–5
- SLAM Book (Gao Xiang), англ. версия — 14 лекций по visual SLAM с кодом
Инструменты, которые стоит поставить
| Инструмент | Для чего |
|---|---|
| Wokwi | симулятор Arduino / ESP32 в браузере |
| KiCad | схемы и свои печатные платы (когда надоест макетка) |
| PlotJuggler | графики из Serial, CSV и топиков ROS 2 — must have для настройки PID |
| Foxglove | визуализация ROS 2 и rosbag в браузере |
| PlatformIO | «взрослая» среда для прошивок вместо Arduino IDE |
| VS Code + ROS extension | редактор для ROS 2 |
Книги
- Lynch & Park — Modern Robotics (бесплатный PDF)
- Thrun, Burgard, Fox — Probabilistic Robotics (классика SLAM и фильтров)
- Peter Corke — Robotics, Vision and Control
- Charles Platt — Make: Electronics
Открытые роботы для вдохновения
- SO-ARM100/101 — рука
- LeKiwi — мобильная база для SO-101
- Petoi OpenCat — робот-собака
- TurtleBot — эталонная платформа ROS (код TurtleBot3)
Открытый код, который полезно читать — как устроены реальные ROS 2-роботы:
- linorobot2 — полный стек мобильного робота на ROS 2: прошивка МК + Nav2 + SLAM
- ros-mobile-robots/diffbot — дифф-робот с подробной документацией
- ros2_control_demos — официальные примеры hardware interface и контроллеров
- micro_ros_arduino — ROS 2 прямо на ESP32
- huggingface/lerobot — обучение роботов по демонстрациям
Русскоязычные ресурсы
| Ресурс | Что это |
|---|---|
| Степан Бурмистров — «ROS 2 курс» (Stepik) | бесплатный курс по ROS 2 Jazzy для начинающих: Linux/WSL, топики, сервисы, экшены, свой робот на ESP32 + Raspberry Pi (анонс на Habr) |
| stepanburmistrov/ROS2_robotV1 | код и 3D-модели учебного ROS 2-робота из этого курса |
| Stepik: поиск «ROS», «Arduino», «робототехника» | много бесплатных курсов; проверяй, что ROS-курс именно про ROS 2 |
| Habr: хаб «Робототехника» | статьи и разборы проектов от инженеров |
| Ч. Платт, «Электроника для начинающих» | русский перевод Make: Electronics |
Сообщества
| Где | Для чего |
|---|---|
| ROS Russia (Telegram) | русскоязычный чат по ROS / ROS 2 |
| ROS Discourse | официальный форум ROS: анонсы, обсуждения |
| Robotics Stack Exchange | вопросы и ответы (сюда переехал ROS Answers) |
| r/robotics, r/ROS | новости, проекты, советы |
| LeRobot Discord | сообщество Hugging Face LeRobot и SO-101 |
Соревнования — лучший способ быстро прокачаться и попасть на радар работодателей: Eurobot, RoboCup, FIRST, НТО, «Робофест», локальные хакатоны и ROS-митапы.
Как помочь проекту
Нашёл битую ссылку или знаешь ресурс лучше — открой Issue или Pull Request (правила — в CONTRIBUTING.md). Если курс помог — поставь ⭐ и покажи свой первый робот в Issues с меткой showcase.
Лицензия
Текст курса — CC BY 4.0, код примеров — MIT. Все внешние ресурсы принадлежат их авторам.
Explore related projects
sindresorhus/awesome
😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]
535,297 starsEbookFoundation/free-programming-books
:books: Freely available programming books
401,422 starsnilbuild/developer-roadmap
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
371,828 starsvinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
334,079 stars