Автор:Ткаченко Д.С., Должиков А.В., Елисеев В.И.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ - 2021) - 2021 / Сборник материалов XII международной научно-технической конференции. — Донецк, ДонНТУ — 2021, Том 2, с. 142-144.
Ткаченко Д.С., Должиков А.В., Елисеев В.И. Создание программы для участия в соревновании "Траектория" Проанализированы существующие модели роботов и возможные подходы к решению задачи по участию в соревновании роботов «Траектория». Построена конструкция робота, пригодная для решения поставленной задачи. Определена среда, в которой будет удобнее разрабатывать, читать и сопровождать программу для робота. Разработан алгоритм и написана программа в среде NXT Programming для передвижения робота по указанной траектории.
Мир робототехники за последние десятилетия добился существенного развития в своей отрасли и стал в один ряд со многими актуальными на сегодняшний день профессиями, такими как программирования, веб-разработка, дизайн и пр [1]. И поэтому, для демонстрации перспектив дальнейшего развития, а также для привлечения новых лиц к этой отрасли, проводится множество различных соревнований, например, соревнование ковботов, двуногие гонки, спидстерс и прочее. Для проведения этих конкурсов в 2004 году был дан старт Международным состязаниям роботов(MCP), или Всемирной олимпиаде роботов(WRO), где перед участниками соревнований ставились определённые задачи, которые должны были быть запрограммированы и реализованы построенными ими роботами. Для рассмотрения нами была рассмотрена "Траектория" – одна из задач начального уровня. Для участия в этом состязании по робототехнике необходимо разработать робота, который может быть собран из Lego NXT [2]. В связи с этим возникает ряд проблем, требующих решения. Во-первых, необходимо собрать поле для перемещения по траектории из подручных средств. Во-вторых, следует разработать робота, модель которого должна соответствовать поставленной задаче. В дальнейшем выбирается среда программирования, разрабатывается алгоритм и отлаживается программа для исполнения роботом поставленной задачи.
Цель статьи – ознакомить с процессом создания робота для участия в соревнованиях по траектории.
Смысл соревнования состоит в том, что за наиболее короткое время робот должен, двигаясь по линии траектории добраться от места старта до места финиша. На прохождение дистанции дается максимум 120 секунд. Каждой команде предоставляется две попытки [3]. Поле представляет собой белое основание размером 5х3 м., с черной линией траектории. Ширина линии 10 мм. Пример поля с траекторией изображен на рисунке 1. Для усложнения испытания на траектории можно устанавливать препятствия, такие как, например, бутылки из произвольного материала объёмом 0,5 л. Перед началом соревнования на линии траектории можно установить произвольное количество препятствий (например, 2). Робот помещается на стартовую точку траектории и включается, после этого в его работу нельзя вмешиваться. Максимальный размер робота 25х25х25см. Робот должен быть автономным и следовать по указанной траектории, применение механических или пневматических устройств подталкивания робота запрещено. Маршрут считается пройденным, если робот преодолевает путь по указанной траектории от старта к финишу.
Рисунок 1 – Поле для соревнования "Траектория"
Следовательно, наш робот должен:
Необходимые компоненты. Данные требования диктуют нам условия конструкции робота:
Программирование робота. Для программирования робота Lego Mindstorm NXT была использована программная среда Lego NXT programming. В данной среде разработки реализовано визуальное проектирование программ, очень комфортное для работы. По структуре программа состоит из блоков. Каждый блок представляет различные типы действий.
Для вращения вокруг своей оси используется следующий метод: первый двигатель вращается в одну сторону, а второй - в обратную. Во время движения прямо по траектории, а также вращения вокруг своей оси на поворотах, считываются данные с ультразвукового датчика расстояния и, когда роботом замечено препятствие впереди, начинается вращения и он объезжает препятствие, в дальнейшем возвращаясь на заданную траекторию. Ультразвуковой сенсор для робота является своеобразным «зрением» [4]. Он измеряет расстояние путём расчёта времени, которое потребовалось звуковой волне для возвращения после отражения от объекта. Исходя из его исходных настроек, датчик может измерять расстояние от 0 до 255 см с точностью +/- 3 см. На практике же минимальное расстояние, на котором ультразвуковой датчик выдаёт осмысленные показания, составляет около 5 - 7 см. Также необходимо подчеркнуть, что по сравнению с прочими датчиками, ультразвуковой датчик весьма медлителен. Первичная причина этого – малая скорость звука в сравнении со скоростью света. Вторичная причина - медленный протокол обмена данными ультразвукового датчика.
Если препятствие обнаружено, то алгоритм его объезда состоит в следующем:
Во время движения вперед происходит считывание данных с датчика освещенности. Для более наглядного представления о «видимости датчика» достаточно представить его перемещение над чёрно-белой фотографией. Результатом измерения будет яркость в диапазоне от 0 (чёрный цвет) до 100 (белый цвет), хотя крайних значений на практике зафиксировать не удаётся. Если значение, полученное с этого датчика, будет велико, т. е. робот выехал за чёрную черту, то прямолинейное завершается, и робот должен остановиться. В противном случае, робот продолжает движение по чёрной линии [5].
В ходе ознакомления с процессом создания роботов для соревнований были проанализированы уже существующие модели и возможные способы решения задачи по участию в состязании «Траектория». Была построена модель робота, пригодная для решения поставленной задачи. Определена среда, в которой будет удобнее разрабатывать, читать и сопровождать программу для робота. Разработан алгоритм и написана программа в среде NXT Programming для прохождения робота по указанной траектории и объезду препятствий, находящихся на поле.