Академия робототехники RoboNest
Открытая олимпиада по робототехнике

Сервисные мобильные роботы

Вступление
Робототехнические устройства на сегодняшний день очень прочно вошли в нашу жизнь. Основное назначение робототехнических устройств – заменять людей для выполнения различных задач – рутинных, монотонных, опасных, сложных, точных и т.д. Робототехнические устройства применяются практически во всех сферах деятельности человека: производство, медицина, строительство, логистика, космонавтика, образование, обслуживание и т.д. Подробнее с терминологией и назначением робототехнических устройств можно познакомиться в нормативных документах:

  • ГОСТ Р ИСО 8373-2014 "Роботы и робототехнические устройства. Термины и определения"
  • ГОСТ Р 60.0.0.4-2019 "Роботы и робототехнические устройства. Классификация"

Мы не будем пытаться «объять необъятное» всех направлений робототехники, а остановимся только на одном из них – "Сервисные мобильные роботы". Сервисные роботы - это автономные устройства (в нашем случае - мобильные колесные роботы), которые выполняют полезную работу для людей, но не участвуют в производственных процессах. Точное определение и назначение подобных роботов можно найти в нормативных документах:

  • ГОСТ Р 60.6.0.1-2021 "Роботы и робототехнические устройства. Сервисные мобильные роботы. Уровни автономности. Термины и определения"

Робототехника по своей сути является лишь инструментом для решения сложных задач, требующих высокотехнологичного подхода. Что это значит? Это значит, что роботов разрабатывают для решения каких-то конкретных задач/проблем, а не наоборот – когда сначала «собирается робот», а потом начинается поиск возможных сфер/мест для его применения.

Примеры сервисных мобильных роботов

Робот-доставщик "Яндекс.Ровер"
Робот для перемещения грузов на складе Amazon
Робот для сбора мячей для гольфа
Информационный робот для общения с людьми

Об олимпиаде

Цель
Вовлечение школьников средних и старших классов в инженерно-техническое направление через разработку и управление сервисными мобильными роботами для решения простых задач.
Категории участников
Задания олимпиады подразделяются на 2 группы:
1. Школьники 6 - 8 классов
2. Школьники 9 - 11 классов и студенты ССУЗов 1-2 курсов
Требования к оборудованию
Для выполнения практических заданий можно использовать любые робототехнические платформы или конструкторы.
Формат проведения Олимпиады
1. Предметный тур. Решение задач через программирование на онлайн-платформе. Примерные темы:
  • Математика
  • Геометрия
  • Теория чисел
  • Динамическое программирование
  • Структуры данных
  • Теория графов
2. Практический тур. Выполнение заданий в симуляторе TRIK Studio

Сезон 2021-2022 - без реальных роботов

Ключевые компетенции

Этапы проведения Олимпиады

Регистрация команд
Отборочный этап
Финальный этап
Категория 6-8 классы
Автономное такси «по заказу»
Предыстория...
2035 год. Человечество отказалось от личного транспорта. Передвижение в нужные места осуществляется автономными сервисными роботами, которые приезжают в указанное место, пассажир усаживается в удобное кресло, и робот доставляет его в заданное место. Роботы различаются по «интеллекту», что определяет способ «общения» с людьми. Какие-то роботы могут считывать нейронные связи из мозга и понимать, куда надо отвезти пассажира – или по желанию или по потребностям. Какие-то роботы понимают голосовое управление или жестикуляции. И самые «престарелые» роботы, у которых энкодеры практически стерты до дыр, понимают только систему координат (весь район обслуживания робота разбит на сектора – так ему проще ориентироваться, ведь у него страдает точность передвижения из-за стёртых энкодеров и разболтанных шестерней в редукторах). В вашем распоряжении оказался именно такой робот. Но рабочий, и это радует :)

Наш робот может ориентироваться только на заранее известной карте, т.к. во времена «обучения» он прогулял уроки по SLAM и поэтому не знает, что это и как этим пользоваться.

Для навигации на местности наш робот использует черную линию, нанесенную на проезжую часть (это конечно не самый экономически выгодный способ, но, по крайней мере, вполне надежный и рабочий :).

Периодически робот «забывает», где он находится на карте местности (надо бы уже поменять батарейки для ПЗУ), поэтому, сначала ему надо локализоваться, т.е. понять, где он находился в момент начала движения. Робот точно знает, что начинает движение всегда из своей «подзарядочной станции» и после выполнения работы ему надо туда же и вернуться.

Все бы хорошо … НО, где есть дороги – всегда есть и ремонтники дорог! Эти работяги начинают ремонтные работы без каких-либо предупреждений и поэтому изначально на нашей карте нет никаких обозначений, где они проводят свои работы. Правда, ремонтные сектора всегда огорожены стеной со всех сторон. Это стоит учитывать при движении по маршруту и, если такие участки встречаются, то составлять новый безопасный путь.
Описание задания
Робот всегда начинает движение из сектора «Гараж». Карта поля заранее известна, но сектор «гараж» не известен. Нужно забрать пассажира в секторе "Остановка", который задается координатами (ХО, YО). Робот должен выехать из "Гаража", забрать пассажира в секторе "Остановка", отвезти его в сектор «Магазин» (место расположения магазина задается координатами сектора (XМ, YМ)) и вернуться в «Гараж».

Исходные данные - карта поля (в виде списка смежностей), координаты секторов "Остановка" и "Магазин" передаются через текстовый файл.

Но, возможно, в каких-то секторах проводятся ремонтные работы (заранее не известно). Такие сектора огорожены кирпичной стеной со всех сторон. Робот должен учитывать вероятность наличия таких секторов (их может быть от 1 до 3) и при их обнаружении составлять более безопасный маршрут для движения.
Документы отборочного этапа
Регламент проведения отборочного этапа
Правила выполнения задания
Тренировочные поля
Результаты отбора
Документы финального этапа
Регламент проведения финального этапа
Правила выполнения задания
Тренировочные поля
Результаты финала

Категория 9-11 классы

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

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

Робот получает заказы на доставку через текстовый файл из сети Интернет, где указаны цвета зон кафе, в которых клиенты ждут свои заказы.
Описание задания
Кафе разделено на 4 зоны по цветам: красная, синяя, пурпурная, зеленая
(цвета зон постоянны и на поле выделены своим цветом). Каждая зона представляет из себя квадрат размером 3х3 сектора. Карта кафе до начала выполнения задания для робота не известна.

Робот всегда начинает выполнение задания в секторе «Кухня» (который заранее неизвестен) в направлении «на восток» (в сторону увеличения оси X).

Робот получает задание развести 3 заказа по 3 зонам. Задание выдается через текстовый файл, который содержит 3 строки, в каждой строке указан цвет зоны по-английски. Зоны в заказе не повторяются. Пример:
red
blue
magenta

Каждый заказ только для одной зоны. Заказы можно «оставлять» только в секторах с количеством лучей (путей движения) не менее 3 (Х-перекресток, Т-перекресток, Y-перекресток). Заказы не могут доставляться в сектор «Кухня» (возвраты не принимаем :o) ). Фактом подтверждения доставки заказа является цветная точка (или любой рисунок) соответствующего цвета зоны в секторе доставки.

После доставки всех заказов робот возвращается в сектор «Кухня».
Документы отборочного этапа
Регламент проведения отборочного этапа
Правила выполнения задания
Тренировочные поля
Результаты отбора
Документы финального этапа
Регламент проведения финального этапа
Правила выполнения задания
Тренировочные поля
Результаты финала
Методические материалы
Банда разработчиков (команда)
Каждый занимается чем-то важным и нужным :)
Алексей Клячин
Алексей Подгорный
Дмитрий Савинков
Сергей Вязовов