Изображение сгенерировано нейросетью
Изображение сгенерировано нейросетью

Сегодня в стране действует образовательный проект Минцифры России для школьников 8-11 классов и студентов колледжей «Код будущего». В рамках проекта молодёжь бесплатно учится программированию на курсах от ведущих ИТ-компаний и вузов России. И в скором времени пройдёт стратегическая сессия по внедрению в «Код будущего» с 2025 года обучения робототехнике. Эта учебная программа должна обеспечить массовость, эффективность и соответствие образовательных программ реальным запросам ИТ-отрасли и рынка труда.

На сессии будет:

  • Обсуждение места робототехники в «Коде будущего» и её роли в системе подготовки ИТ‑специалистов.

  • Подготовка детального плана внедрения курсов робототехники: целевая аудитория, содержание образовательных программ, необходимое оборудование и программное обеспечение, подготовка преподавателей, механизмы отбора и мотивации участников.

  • Создание рабочей группы для дальнейшей проработки стратегии и её реализации.

Зарегистрироваться на трансляцию

И в этой статье я хочу обсудить некоторые вопросы, которые будут подняты на стратегической сессии.

Введение

Стране давно необходимы кадры, которые будут способны внедрять робототехнику во все сферы нашей жизни. Поэтому очень важно вовлекать больше молодёжи в эту отрасль и в вузы на соответствующие специальности. Решить эту задачу не получится без участия крупного бизнеса и без оглядки на то, что происходит в США и Китае.

За последние годы робототехника на Западе пришла к автономным роботам на ROS и роботам с искусственным интеллектом. Мы видим, что это произошло в том числе благодаря огромному количеству курсов по робототехнике с открытым исходным кодом.

Почему так важен открытый исходный код:

  • обмен опытом по всему миру;

  • быстрая разработка за счёт использования открытых компонентов;

  • совместная разработка;

  • использование лучших практик, проверенных временем;

  • внедрение новых знаний в образование.

Если мы посмотрим на передовые научные статьи по робототехнике на ведущих зарубежных конференциях, то увидим, что для воспроизведения результатов авторы часто прикладывают исходный код с использованием ROS. Соответственно, чтобы осваивать передовые технологии нужно знать ROS.

Кроме того, ROS помогает воспринимать общую архитектуру робота как систему, состоящую из модулей. Поэтому фреймворк выступает как клей, который соединяет всё воедино. При изучении робототехники через ROS у людей сразу формируется целостная картина, после чего легче углубляться в специализированные области робототехники. Создание сложных роботов становится понятным делом.

Далее мы поговорим о том, как должна быть устроена современная школьная робототехника.

Требования к знаниям после окончания школы

  1. Linux:

    1. Работа в терминале.

    2. Установка программ через apt.

    3. Компиляция программ из исходного кода.

    4. Переменные среды.

    5. Настройка локальной сети.

    6. Работа по SSH.

  2. Python.

  3. Git — ведение совместной разработки.

  4. С и C++.

  5. Docker.

  6. ROS2:

    1. Коммуникация topic,service, action.

    2. Преобразование координат tf2.

    3. ROS2_control.

    4. Автономная навигация Navigation2, AMCL, SLAM, DWA.

    5. Манипуляция Moveit2.

    6. Машина состояния и дерево поведения.

    7. Зрение Opencv, image_transport.

    8. Визуализация состояния робота RVIZ2, RQT.

    9. Parameters.

    10. Симулятор роботов Gazebo

  7. Сборка робота, желательно довольно большого размера, из подручных средств и программирование его работы с помощью ROS2. Например, автономная навигация с лидаром. Главная цель: дать понять, что роботы это не только игрушки, но и большие устройства, которые могут выполнять полезные задачи. А чтобы научиться их делать и программировать, нужно идти на робото‑техническую специальность в университет.

  8. Экскурсия в университет на робото‑технический факультет, например в РТУ МИРЭА.

Что такое ROS

ROS (Robot Operating System) — это фреймворк с открытым исходным кодом для вашего робота. Он предоставляет услуги, которые вы ожидаете от операционной системы:

  • аппаратную абстракцию;

  • управление устройством низкого уровня;

  • внедрение широко используемых функций и алгоритмов;

  • передачу сообщений между процессами и управление программными пакетами.

Он также предоставляет инструменты и библиотеки для получения, создания, записи и запуска кода на нескольких компьютерах. ROS не заменяет Windows или Linux, а работает поверх них.

Подробнее об устройстве, архитектуре и применении ROS можно почитать здесь.

Почему важно преподавать ROS в школе?

  • Этот фреймворк даёт школьнику пример хорошей взрослой программной архитектуры роботов, признанной робототехниками во всём мире.

  • Позволяет быстро разработать полезного робота.

  • Программирование на ROS даёт базовые знания и опыт для трудоустройства на вакансии разработчиков роботов.

  • Студентов со знанием ROS на летнюю практику берёт Центр робототехники Сбера.

  • В ROS‑чате есть вакансии и постоянно требуются разработчики.

Какой конструктор или технологический стек выбрать?

Какой конкретно конструктор использовать, на самом деле не важно, если он прокладывает мост ко взрослым роботам и ROS. Для этого должно быть можно поставить на него условный Raspberry Pi и писать верхнеуровневые программы. Тут мы приходим к Linux и Python с C++, этому нужно обучать примерно в 8–9 классе.

80% робототехники сейчас приходится на высокоуровневое программирование и искусственный интеллект. То есть буквально 80% инженерных должностей — это программирование сложных алгоритмов (далеко не езда по линии на PID) и machine learning. И эта доля будет только расти. Соответственно, робототехника — это не только программирование микроконтроллеров, а огромный пласт технологий, и чем раньше робототехник с ними соприкоснётся, тем лучше.

Ещё один сложный для понимания момент заключается в том, что современному робототехнику нужно знать слишком много технологий, библиотек, фреймворков, университетских дисциплин и так далее, причём одно наслаивается на другое. Буквально: когда начинающий робототехник приходит на свою первую стажировку по серьёзной задаче, то порог входа для него оказывается слишком высокий, ведь в университете и школе его этому не учили. Выход один: начинать учить необходимым технологиям со школьной парты.

Далее, нужна узкая специализация, а не универсалы робототехники. Например, чтобы самостоятельно написать алгоритм SLAM, нужно знать теорию вероятности, линейную алгебру, компьютерное зрение, библиотеки решателей и графов, С++, прочесть много научных статей, изучить исходный код других SLAM‑алгоритмов. То есть нужно выучиться даже не в бакалавриате, а в специализированной магистратуре, а лучше аспирантуре. Но перед этим нужно понять, что тебе вообще интересен именно SLAM, и потратить на его изучение годы. Соответственно, школьник должен попробовать SLAM, манипуляцию и разные другие области робототехники, чтобы понять, что ему нравится.

Минимальные требования к характеристикам конструктора или робота:

  • Колёсная база с управлением скоростью через топик cmd_vel типа линейная и угловая скорость.

  • Одометрия с колес, достаточная для стабильной работы SLAM‑алгоритмов.

  • IMU.

  • Lidar.

  • Wi‑Fi.

  • GPIO для подключения дополнительных сенсоров.

  • Бортовой компьютер на Ubuntu 24.04, ноутбук или одноплатник типа Raspberry Pi или Jetson.

  • Возможность подключить камеру к бортовому компьютеру.

Примеры простых схем компонентов‑протоколов для ROS2 робота:

Подбор примеров роботов и конструкторов для школьников, которые стоит взять за образец:

FishBot ROS, 8200 рублей

Преимущества:

  • Дешёвый.

  • Курс можно легко перевести через сервис перевода на русский, и уже готовы хотя бы какие то уроки почти по всему, что нужно.

  • ESP32 в качестве микроконтроллера. Это значит, что его можно по Wi-Fi связать с ноутбуком и программировать на нём. То есть можно сэкономить на Raspberry Pi.

  • Есть GPIO для подключения дополнительных сенсоров.

  • Поддерживает ROS2.

Yahboom MicroROS Robot, 13600 рублей

Преимущества:

  • Дешёвый.

  • Курс можно легко перевести через сервис перевода на русский, и уже готовы хотя бы какие то уроки почти по всему, что нужно.

  • ESP32 в качестве микроконтроллера. Это значит, что его можно по Wi-Fi связать с ноутбуком и программировать на нём. То есть можно сэкономить на Raspberry Pi.

  • Поддерживает ROS2.

Недостатки:

  • Есть GPIO для подключения дополнительных сенсоров, но мало.

Linorobot

По сути, это инструкция по сборке робота из подручных средств с примерами исходного кода под ROS и ROS2.

Преимущества:

  • Дёшево.

  • Из подручных средств.

  • Поддерживает ROS2.

  • Есть руководства.

Робот из пластикового контейнера Articulated Robotics

Руководства

Преимущества:

  • Дёшево.

  • Из подручных средств.

  • Поддерживает ROS2

  • Есть руководства.

Робот из гироскутера, 13 000 рублей

Примеры проектов:

Преимущества:

  • Дёшево.

  • Почти все детали есть в покупном гироскутере или по частям на AliExpress.

  • Можно сделать большого робота.

  • По UART можно подключить к компьютеру и драйвер в ROS.

Недостатки:

  • Нужно разработать уроки.

  • Точность энкодеров на датчиках Холла 5 мм, но для большинства проектов это не критично.

Робот с ROS на базе пылесоса

iRobot Roomba

Описание и инструкция по сборке и программированию:

Xiaomi

Как сделать робота на ROS своими руками, руководства от Amperka

Часть 1: шасси и бортовая электроника

Часть 2: дистанционное управление и навигация

Часть 3: распознавание речи для голосового управления

Часть 4: синтез речи и голосовое управление

Преимущества:

  • Дёшево.

  • На русском.

  • Подробные руководства.

Манипулятор

Преимущества:

  • Дёшево.

  • Есть руководства для Moveit.

Недостатки:

  • Поддерживает только ROS1 и Moveit1, нужно самостоятельно переписывать на Moveit2 или просить производителя.

Мобильный манипулятор

Четвероногие

Unitree Go2

Преимущества:

  • Поддержка DDS и ROS2.

  • Минимальные примеры на Python.

  • Можно повесить дополнительное оборудование весом до 5 килограммов.

  • 3D-лидар.

Недостатки:

  • Нет руководств и уроков.

  • Edu-версия дорогая, но со сторонними прошивками можно управлять и Air-версией.

Mini Pupper 2G

Преимущества:

  • Руководства под ROS2.

  • Пример управления голосом с использованием ChatGPT.

  • Поддержка навигационного стека Navigation2 с лидаром.

  • Управление жестами.

PuppyPi Hiwonder Quadruped Robot with AI Vision

Сайт производителя

Xiaomi CyberDog ROS 2

Робот на Android-смартфоне

Страница проекта

Преимущества:

  • Дёшево.

  • Можно обучать нейросети.

Недостатки:

  • Не поддерживает ROS2.

Контроллеры отдельно


Вообще роботов на ROS очень много, нужно просто гуглить. На robots.ros.org перечислена только малая часть.

ROS для младших классов

Видео доклада о добавление в ROS-робот возможности программировать на Blockly.

Курс по ROS

На английском

На русском

Материалы на русском есть, но они не такие подробные, как на английском языке. Так будет всегда, потому что глобальное сообщество общается на английском, на нём же будет появляться всё новое и ничего с этим не сделать. Но с сервисами онлайн-перевода это не проблема.

Это не всё, много можно найти на просторах интернета.

Позже будет выложен авторский курс Алексея Буркова, который был проведён в НГУ от Центра робототехники Сбера.

Возможно, имеет смысл привлечь ROS-сообщество к написанию эталонного курса.

Концепция обучения с помощью руководств

У инженеров, использующих ROS, попросили выбрать из вариантов, какое обучение, по их мнению, наиболее эффективное: руководства, книги или видеоуроки. Победили руководства(tutorial).

Учить ROS1 или ROS2?

ROS2. Материалы под ROS1 относительно просто можно переделать под ROS2. Но в ROS2 есть новые концепции и существенные изменения, которые важны, и их желательно хорошо понимать.

Соревнования на ROS

Эти два вида соревнований можно проводить даже без физических роботов, просто в симуляторе Gazebo:

Autorace — проезд трассы с препятствиями и знаками.

Home Service Challenge — с манипуляцией.

Также есть одноимённое соревнование и обучающий курс Duckietown.

Можно создать в стране автономную лигу Eurobot на ROS, с эталонными открытыми роботами, которые можно использовать как базовый уровень. То есть участники должны выложить в открытый репозиторий CAD-модели, список электроники, электрическую схему, исходный код всех программ и всё, что необходимо для воспроизведения, желательно ещё и статью на Хабре написать.

Статьи про роботов и алгоритмы для Eurobot:

Вовлечение учителей

Без вовлечения и заинтересованности учителей в написании и обновлении курса под современные технологии ничего путного не получится. Как это сделать — отдельный вопрос.

Предложения

Хакатон для учителей

Можно сделать хакатон для учителей, где они из подручных средств соберут и запрограммируют роботов на ROS. Тем самым они получат опыт, избавятся от боязни незнакомого. Попутно сделают руководства и учебные материалы. Хакатон можно провести на площадке Центра робототехники Сбера или РТУ МИРЭА.

Доклады учителей на ROS meetup

На ROS meetup можно выделить день под образовательные проекты, где будут выступать учителя и школьники со своими роботами и курсами по ROS.

Примеры выступления учителей:

Баллы для поступления в вузы за проекты open-source роботов

Можно сделать конкурс open-source роботов среди школьников, за призовые места давать дополнительные баллы для поступления в вузы.

Соревнование по футболу среди четвероногих роботов

Установить ограничение размерности, например, не более Unitree go2. Роботы должны быть полностью автономные. Для упрощения навигации разместить на поле специальные маркеры. Победители обязаны выкладывать свои алгоритмы в open-source и выступать с докладом на ROS meetup, рассказав о том, как воспроизвести их результат. Победителям можно давать дополнительные баллы для поступления в университет.

Соревнования Eurobot Open Source

Роботы должны быть полностью автономные. Правила желательно упростить. Победители обязаны выкладывать свои алгоритмы в open-source и выступать с докладом на ROS meetup, рассказав о том, как воспроизвести их результат. Победителям можно давать дополнительные баллы для поступления в университет.

Зачем обязательно всё выкладывать в open-source? Чтобы следующие поколения робототехников учились на проектах предыдущих и общий уровень рос из года в год.

Нерешенные вопросы

Учителя не могут покупать копеечные электронные компоненты на aliexpress и taobao. Это блокирует для школьников возможность разрабатывать свои проекты роботов из различных современных покупных компонентов.

Цепочка от школьника до специалиста на предприятии

Пример: выпускники школьного кружка по робототехнике → совместный кружок РТУ МИРЭА и Центра робототехники Сбера → летняя практика в Центре робототехники Сбера → стажировка в Центре робототехники Сбера → сотрудник Центра робототехники Сбера или научной группы при университете РТУ МИРЭА.

Итог

Подробнее о стратегической сессии и возможность зарегистрироваться на трансляцию «Актуальный статус и перспективы образовательной робототехники в РФ».

Обсуждение всех этих предложений ведётся в топике ROS‑чата. Приглашаю присоединиться всех неравнодушных.

Комментарии (6)


  1. AlxndrPakhomov
    30.10.2024 09:05

    Прекрасно показана важность подготовки школьников к ИТ-сфере и робототехнике. Очень ценно, что «Код будущего» даёт доступ к передовым технологиям, обеспечивая востребованные навыки, я не знал про этот проект. Своих детей в 4 года отдал на робототехнику, это как минимум интересно и им и мне=)


  1. nivorbud
    30.10.2024 09:05

    Рад, что серьезно взялись за эту тему. По сыну вижу (10-й класс).

    Но вижу проблемы. Прежде всего нехватка времени. Смотрите, занятия заканчиваются примерно в 16 часов, домой школьник приходит в 16:30-17:00. Или позже, если есть дополнительные (в основном по математике и физике). Потом после того, как поест и чуть отдохнет, надо сделать домашние задания. И кучу времени при этом отнимают второстепенные предметы типа истории, географии, литературы и пр. Нет времени чтобы спокойно разобраться с темами и вникнуть в суть. И я не понимаю, откуда взять время на изучение робототехники, программирования, схемотехники и прочих инженерных начал. А их уже начали загружать этими проектами.

    Ну ладно, я ему помогу, у меня как раз подобное инженерное образование, которое включает и программирование и схемотехнику и пр. Разжую ему всё по быстрому, направлю в нужное русло. Да и то, времени не хватает, чтобы он сам вник в суть. А для того чтобы вникнуть, нужна практика, нужно самому шишки набить, а времени катастрофически не хватает.

    А что делать тем школьникам, у которых нет такой родительской профессиональной поддержки, я не представляю. Вот сейчас прислали из школы сообщение, что в ближайшие месяцы начнут проходить программирование, схемотехнику, черчение (в 3D-компасе скорей всего), изучение микроконтроллеров и пр. Я не представляю, как обычный школьник без серьезной индивидуальной поддержки это всё потянет.


  1. PqDn
    30.10.2024 09:05

    Требования к знаниям после окончания школы

    Это точно требования к школьникам? Или требования к родителям этих школьников?


    1. nivorbud
      30.10.2024 09:05

      Это точно требования к школьникам? Или требования к родителям этих школьников?

      Да, интересный список. Ведь под капотом подразумеваются знания следующих дисциплин:

      1) Высшая математика (хотя бы начала - производные, интегралы, пределы).

      2) Физика.

      3) Электротехника.

      4) Электроника.

      5) Микроэлектроника.

      6) Схемотехника.

      7) Архитектуры вычислительных систем (ЦПУ, память, АЛУ, регистры, шины данных и адресов и т.д. и т.п)

      8) Алгоритмы.

      Нужны основы всего этого, хотя бы начальные знания, но... в комплексе. И здесь встает главный вопрос: как всё это так упростить и разжевать, чтобы было понятно школьникам. Имхо, это очень сложная задача.


  1. Unreal_2009
    30.10.2024 09:05

    Интересная статья и полезный обзор - много подчерпнул для себя.
    Дочка тоже сейчас занимается в кружке робототехники, но в школе системного подхода к этому пока нет.
    Рад, что эта тема продвигается и надеюсь будут положительные сдвиги.


  1. EOShipnyagov
    30.10.2024 09:05

    Всегда удивлялся зачем пытаются довольно закрытые и негибкие платформы использовать для обучения. ИМХО, для школьников всех возрастов пока единственный вариант для начала и проектной работы это EV3, далее микроконтроллеры и самостоятельная сборка, а дальше уже ROS, вот эти платформы на колесиках и т.д.