Skip to content
Projects

justxor/robotics-roadmap-2026

View on GitHub

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.

How these counts are measured

Открытый курс: собери первого робота и войди в робототехнику с нуля за 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 — собери первого робота и войди в робототехнику с нуля

уровень срок ROS 2 Jazzy MCU лицензия

🤖 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 образование, компьютер, ОС, бюджет, где спросить, как искать работу

Содержание


Почему робототехника

  • Модели ИИ уже умеют многое — не хватает людей, которые умеют «поместить их в тело».
  • Физический мир нельзя спарсить: данные для роботов создаются только руками и реальным железом.
  • Порог входа кажется высоким, поэтому конкуренция ниже, чем в «чистом» 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 (оба), опыт с реальным железом, глубина в одной области, умение отлаживать. Диплом конкретной специальности — не обязателен.


Как пользоваться курсом

  1. Иди по модулям по порядку. Каждый модуль = ресурсы → фокус → практическое задание → чек-лист.
  2. Каждый проект — отдельный репозиторий на GitHub с README: фото/видео, схема подключения, код и абзац «что сломалось и как починил». Это и есть портфолио.
  3. Не покупай железо заранее — первые недели всё делается в симуляторах бесплатно.
  4. Отмечай чек-листы прямо в своём форке этого репозитория.

Карта курса

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) открытый контур, точное позиционирование, большой удерживающий момент

⚠️ 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/год

Фокус: полностью определённые эскизы; параметрика через переменные; сборки с шарнирами (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 требует закалённое сопло)

Нет принтера? Fab Labs, библиотечные мейкерспейсы, Craftcloud, JLC3DP.

🛠 Практика: напечатай калибр допусков, запиши реальные зазоры своего принтера, затем спроектируй защёлкивающийся корпус для ESP32 без клея.

3.3 Приводы и передачи

Передаточные числа (скорость ↔ момент), люфт (его не исправить софтом), подшипники, ремень vs шестерня vs прямой привод, почему пластиковый редуктор дешёвого серво ломается первым.

🛠 Практика: напечатай планетарный или циклоидный редуктор для NEMA17 (пример OpenCycloid), измерь люфт, переделай.

3.4 🦾 Робот-рука SO-101 — главная покупка курса

Открытая 5-DoF рука + захват от TheRobotStudio и Hugging Face. Собирается парой leader + follower: двигаешь одну рукой — вторая повторяет. Это телеуправление = запись демонстраций для модуля 6.

Дешевле: $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

🛠 Практика: diff_drive_controller + joint_state_broadcaster, езда с клавиатуры в Gazebo; action-сервер «проехать N метров» с фидбеком и отменой. Сильный пункт в портфолио — его мало кто делает.

4.6 SLAM и навигация

Фокус: картирование 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 Кинематика и динамика

🛠 Практика: прямая и обратная кинематика двухзвенного манипулятора: examples/python/two_link_ik.py. Потом — для SO-101 через Robotics Toolbox.

5.3 Компьютерное зрение

🛠 Практика: откалибруй камеру шахматкой, найди ArUco-маркер и оцени его позу в 3D.

5.4 Манипуляция и MoveIt 2

🛠 Практика: 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

Цикл: телеуправление leader → запись датасета (50+ эпизодов) → обучение политики (ACT / Diffusion Policy / SmolVLA) → запуск на follower → оценка успешности.

6.2 Vision-Language-Action модели

6.3 Обучение с подкреплением

🛠 Практика: запиши датасет «взять кубик и положить в коробку», обучи политику в LeRobot, замерь успешность на 20 попытках, опубликуй датасет и модель на Hugging Face Hub.

6.4 Портфолио

Минимум 4–5 проектов, каждый с видео ≤ 60 сек, схемой, кодом и разделом «что сломалось»:

  1. Линейный робот: видео «только P» vs «PD»
  2. Балансир с графиками угла
  3. Своя деталь/редуктор в CAD + замер люфта
  4. Робот в ROS 2: xacro → Gazebo → ros2_control → SLAM + Nav2
  5. 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

Дополнительные ресурсы

Сборники

Курсы и платформы

Инструменты, которые стоит поставить

Инструмент Для чего
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

Открытые роботы для вдохновения

Открытый код, который полезно читать — как устроены реальные 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