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

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

Сегодня в стране действует образовательный проект Минцифры России для школьников 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.

  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 рублей

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

  • https://github.com/victorfdezc/ros2-hoverboard-driver

  • https://github.com/DataBot-Labs/hoverboard_ros2_control

  • https://github.com/alex-makarov/robaka-ros

  • https://medium.com/@alxm/converting-a-hoverboard-into-a-self-driving-mobile-robot-with-ros-d886c867e8a9

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

  • Дёшево.

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

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

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

Недостатки:

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

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

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

iRobot Roomba

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

  • Roomblock: a Platform for Learning ROS1 Navigation With Roomba, Raspberry Pi and RPLIDAR

  • Controlling Roomba 961 with ROS2 Jazzy Raspberry Pi 4B over Wi-Fi Network

  • Controlling Roomba 961 from ROS2 Jazzy Ubuntu PC

Xiaomi

  • https://github.com/arne48/xiaomi_bridge

  • https://github.com/PaulTerrasi/Xiaomi_Mi_ROS/

  • Список роботов, на которых можно поставить специфический Linux

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

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

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

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

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

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

  • Дёшево.

  • На русском.

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

Манипулятор

  • Манипулятор 1

  • Манипулятор 2

  • Манипулятор 3

  • Манипулятор 4

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

  • Дёшево.

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

Недостатки:

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

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

  • JetRover

  • Robomaster X3 plus

  • Ещё один.

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

Unitree Go2

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

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

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

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

  • 3D-лидар.

Недостатки:

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

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

Mini Pupper 2G

  • https://www.kickstarter.com/projects/mdrobotkits/md-robot-kits-open-source-support-your-genai-creativity

  • Документация.

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

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

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

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

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

PuppyPi Hiwonder Quadruped Robot with AI Vision

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

Xiaomi CyberDog ROS 2

  • Репозиторий.

  • Много ROS2-пакетов.

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

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

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

  • Дёшево.

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

Недостатки:

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

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

  • (Wi-Fi Car Dedicated) NodeMcu Lua ESP8266 ESP-12E + Carte d'extension Wi-Fi Motor Drive

  • Wi-Fi ESP8266 ESP12E D1

  • ESP8285 ESP-M2 CH340 CH340g Wi-Fi

  • WeMos D1 R2 WiFi uno ESP8266

  • ROS2 driver board

  • WHEELTEC STM32F407 ROS


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

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

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

Курс по ROS

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

  • Эталонная книга ROS Robot Programming (English, Free PDF).

  • Список книг по ROS на WIKI.

  • Ещё подборка книг.

  • Эталонные руководства по Turtlebot3.

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

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

  • Подробный курс ROSMASTER-X3

  • Курс MicroROS-ESP32

  • https://www.theconstruct.ai/ — можно подключаться удалённо к симулятору Gazebo для проведения занятий и демонстраций.

  • Self Driving and ROS 2 - Learn by Doing! Odometry & Control

  • Self Driving and ROS 2 - Learn by Doing! Map & Localization

  • Robotics and ROS 2 - Learn by Doing! Manipulators

На русском

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

  • Книга «Изучение робототехники с помощью Python», Джозеф Лентин.

  • Вводный курс на русском от VoltBro.

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

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

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

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

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

Учить ROS1 или ROS2?

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

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

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

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

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

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

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

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

  • Что общего между револьвером, шайбами и автономным роботом.

  • Локализация по Aruco маркерам.

  • Как студенты МИФИ призывали Шиву на Eurobot 2024, часть 1.

  • Как студенты МИФИ призывали Шиву на Eurobot 2024, часть 2.

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

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

Предложения

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

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

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

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

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

  • ROS в школьных проектных работах

  • Удаленный доступ к промышленному манипулятору UR 3 для учебных задач

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

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

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

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

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

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

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

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

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

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

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

Итог

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

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

Источник: https://habr.com/ru/companies/sberbank/articles/853970/


Интересные статьи

Интересные статьи

Если у компьютера нет не только монитора, но и даже видео-выхода, а показания датчиков хотелось бы видеть, то решением может быть отправлять данные в виде строки в COM-порт, который будет слушать микр...
В этой статье мы популярно объясняем на собственном опыте как организовать массовую выгрузку, обработку и загрузку фотографий товаров из Bitrix, используя Python и минимальное количество SQL. Для проч...
Думаю, многие из вас сталкивались с замысловатыми задачками, которые в реальной практике встретить почти невозможно, но которые очень любят давать во всяких тестах и на собеседованиях.В конце мая прош...
В прошлой части мы поговорили о советах директору по разработке бизнес-процесса в Битрикс24, сейчас же я постараюсь дать советы руководителям отделов, поскольку по моему опыту почти всегд...
Каждый лишний элемент на сайте — это кнопка «Не купить», каждая непонятность или трудность, с которой сталкивается клиент — это крестик, закрывающий в браузере вкладку с вашим интернет-магазином.