Профиль «Интеллектуальные робототехнические системы» посвящен разработке, программированию и управлению роботами.
Робототехника является одной из ключевых отраслей технологического развития. Интеллектуальные робототехнические системы могут выполнять сложные задачи, улучшать производительность, автоматизировать процессы и повышать эффективность работы в различных сферах: на производстве, в медицине, образовании. Интеллектуальные робототехнические системы используются для выполнения опасных и трудоемких задач — это помогает снизить риск в ежедневной деятельности людей. Они также могут быть использованы в области безопасности, например, в поиске и обезвреживании взрывоопасных устройств или в мониторинге и предотвращении аварийных ситуаций.
В рамках предметного тура участникам предстоит решать задачи по математике и информатике, а также освоить образовательный блок для получения или подтверждения основных требуемых компетенций.
В рамках инженерного тура участники будут индивидуально выполнять компетентностные задания профиля, связанные с программированием регуляторов и планированием пути.
Цель второго этапа — формирование команды. Чем лучше вы выстроите командную работу на втором этапе, тем больше шансов на победу у вас будет дальше. Не бойтесь общаться, учиться эффективно распределять задачи, искать сильные стороны каждого участника вашей команды, постарайтесь успеть за второй тур нарастить общекомандные навыки — и коммуникативные, и профессиональные.
В рамках этапа потребуется решать частные задачи, связанные с выполнением заданий группой мобильных роботов, в том числе будут задачи, связанные с техническим зрением. Сами роботы для выполнения задач не понадобятся, в симуляции будут использоваться их математические модели.
Для выполнения задачи потребуются знания как C/C++, так и Python.
Финальная задача по профилю «Интеллектуальные робототехнические системы» будет посвящена навигации и планированию движения робота в неизвестной среде. Робот должен самостоятельно определить свое текущее положение и ориентацию, построить карту окружающей среды и спланировать оптимальный маршрут для достижения заданной цели.
Задача подразумевает использование алгоритмов для планирования маршрута — выбора оптимального пути для достижения поставленной цели. В этом процессе робот должен учитывать информацию о своем положении, карту окружающей среды и другие ограничения, такие как препятствия или запретные зоны.
Математика:
Основы математического анализа (производная, интеграл).
Основы теории вероятностей. Комбинаторика.
Алгебра.
Геометрия.
Теория графов.
Информатика:
Основы программирования на языке C/C++ или Python.
Программирование систем управления (C/C++ или Python), в т. ч. систем с обратной связью (PID-регуляторов).
Протоколы передачи данных.
Манипуляции с битами и байтами (C/C++ или Python).
Работа с матрицами, обработка простых массивов данных, работа с массивами высоких размерностей.
Обработка изображений.
Навык программирования на Python и С++.
Знание алгоритмов обработки изображения, работа с OpenCV.
Знание алгоритмов поиска пути.
Знание алгоритмов планирования движения, расчета траектории.
Знание алгоритмов управления (П-, ПД-, ПИД-регуляторы).
Умение работы с датчиками робототехнических систем.
Умение организации беспроводного соединения по Bluetooth с робототехнической системой.
Для участия в отборочном и заключительном этапах вам понадобится команда из 2–3 человек.
Роль 1. Математик-алгоритмист — подбор и разработка алгоритмов управления, распределения заданий, поиска пути и т.д.
Роль 2. Программист С/C++ — программирование системы управления, функционирующей на роботе, для решения задач коммуникации, движения, навигации, работы с датчиками, одометрии и т.д.
Роль 3. Программист Python — программирование высокоуровневой системы управления (распределение задач, поиск пути и т.д.), обработки изображения, решения задач коммуникации.
Роль 4. Капитан команды — распределение задач, расстановка приоритетов, распределение ресурсов, разрешение споров.
Особенностью профиля является то, что потребуется программировать сразу несколько систем, причем на разных языках. Несмотря на то, что зачастую это все может делать один человек, намного эффективнее, если будут задействованы разные люди, чтобы работа могла вестись параллельно.
Если отдельного человека для разработки алгоритмов нет, то каждый из программистов должен взять на себя соответствующую часть. Важно учесть не только кто на каком языке лучше программирует, но и кто какие алгоритмы лучше сможет разработать.
Роль капитана команды обычно совмещается с какой-то другой ролью.
Курс: Программирование на языке C++
О протоколах передачи данных
Введение в компьютерное зрение
Документация OpenCV
Курс «Специализация Робототехника» (англ.)
Курс «Добрый, добрый Python - обучающий курс от Сергея Балакирева»
Курс «Control of Mobile Robots» (англ.)
Видео курса «Control of Mobile Robots» (англ.)
Курс «Экспресс-курс по Arduino, электронике и физике»