Робототехника — это не только программирование микроконтроллеров, а огромный пласт технологий, и чем раньше ученик с ними познакомится, тем лучше. 80% робототехники – это высокоуровневое программирование и искусственный интеллект. То есть большинство инженерных должностей связаны с программированием сложных алгоритмов и machine learning.
Робототехнику нужно знать множество технологий, библиотек, фреймворков, других технических дисциплин. Часто возникает ситуация: студент приходит на стажировку, но порог входа для него оказывается слишком высок, ведь его этому не учили. Выход один: начинать учить необходимым технологиям со школы. Например, ROS.
ROS (Robot Operating System) даёт школьнику пример хорошей взрослой программной архитектуры роботов, признанной робототехниками во всём мире.
- Позволяет быстро разработать полезного робота.
- Программирование на ROS даёт базовые знания и опыт для трудоустройства.
- В ROS‑сообществах есть вакансии и постоянно требуются разработчики.
- Студентов со знанием ROS часто приглашают для прохождения практики.
За последние годы робототехника в основном пришла к автономным роботам на ROS и роботам с искусственным интеллектом. Искусственный интеллект пока оставим за скобками. Чтобы осваивать передовые технологии нужно знать ROS. При изучении робототехники через ROS у людей сразу формируется целостная картина, после чего легче углубляться в специализированные области робототехники. ROS помогает воспринимать общую архитектуру робота как систему, состоящую из модулей. Фреймворк выступает как цемент, который соединяет всё воедино. Создание сложных роботов становится понятным делом.
ROS (Robot Operating System) — это фреймворк с открытым исходным кодом для роботов. ROS не заменяет Windows или Linux, а работает поверх них. Он предоставляет возможности, которые дают операционные системы:
- аппаратную абстракцию;
- управление низкоуровневыми устройствами;
- внедрение распространенных функций и алгоритмов;
- передачу данных между процессами и управление программными пакетами.
ROS также предоставляет инструменты и библиотеки для получения, создания, записи и запуска кода на нескольких компьютерах.
Почему так важен открытый исходный код:
- быстрая разработка за счёт использования открытых компонентов;
- совместная разработка;
- использование лучших мировых практик;
- обмен опытом;
- внедрение новых знаний в образование.
ROS стал таким популярным, в том числе благодаря огромному количеству курсов по робототехнике с открытым исходным кодом. Авторы материалов и статей по робототехнике часто прикладывают исходный код с использованием ROS.
Какой конструктор выбрать?
На самом деле не столь важно, какой конкретно конструктор использовать. Главное, чтобы он стал отправной точкой маршрута к сложной робототехнике и ROS. Для этого должна быть возможность установить на конструктор Raspberry Pi и писать верхнеуровневые программы. Соответственно, мы выходим на Linux, Python и C++, а этому нужно обучать примерно в 8–9 классе.
Минимальные требования к характеристикам конструктора или робота:
Колёсная база с управлением скоростью через топик cmd_vel типа линейная и угловая скорость. Одометрия с колес. IMU. | Lidar. Wi‑Fi. GPIO для подключения дополнительных сенсоров. | Бортовой компьютер на Ubuntu 24.04, ноутбук или одноплатник типа Raspberry Pi или Jetson. Возможность подключить камеру. |
Такая база позволяет использовать SLAM-алгоритмы.
Далее, востребованы специалисты с узкой специализацией, а не универсалы. Например, тот же SLAM. Чтобы самостоятельно написать алгоритм, нужно знать С++, линейную алгебру, компьютерное зрение, теорию вероятности, библиотеки решателей и графов, изучить код других SLAM‑алгоритмов. Все эти знания невозможно получить лишь в бакалавриате, нужна специализированная магистратура, а лучше аспирантура. Но перед этим нужно понять, что тебе вообще интересен именно SLAM, прежде чем потратить годы на его изучение. Соответственно, школьник должен попробовать SLAM, манипуляцию и разные другие области робототехники, чтобы понять, что ему нравится.
Итак, требования к знаниям после окончания школы
Linux: Работа в терминале. Настройка локальной сети. Работа по SSH. Установка программ через apt. Компиляция программ из исходного кода. Python. Переменные среды. Git — ведение совместной разработки | С и C++. Docker. ROS2: Коммуникация topic,service, action. Преобразование координат tf2. ROS2_control. Автономная навигация Navigation2, AMCL, SLAM, DWA. | Манипуляция Moveit2. Машина состояния и дерево поведения. Зрение Opencv, image_transport. Визуализация состояния робота RVIZ2, RQT. Parameters. Симулятор роботов Gazebo |
Сборка робота, желательно габаритного, из подручных материалов и далее его программирование с помощью ROS2. Например, автономная навигация с лидаром. Главная цель: понять, что роботы – не только для игр, что можно самостоятельно создать машину, которая будет выполнять полезные задачи. А чтобы научиться делать и программировать роботов, нужно идти на робототехнику в университет.
Leave a Reply