Назад в библиотеку

Создание программы для участия в соревновании "Траектория"

Автор:Ткаченко Д.С., Должиков А.В., Елисеев В.И.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ - 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 – Поле для соревнования "Траектория"

Алгоритм решения задачи

  1. Робот, находясь в стартовой точке, начинает двигаться по указанной траектории, пока не преодолеет указанный маршрут или не столкнётся с препятствием.
  2. Заметив препятствие, робот должен будет совершить объезд вокруг него с дальнейшим возвращением на траекторию.
  3. Преодолев расстояние по указанной траектории, робот останавливается.

Следовательно, наш робот должен:

Необходимые компоненты. Данные требования диктуют нам условия конструкции робота:

Программирование робота. Для программирования робота Lego Mindstorm NXT была использована программная среда Lego NXT programming. В данной среде разработки реализовано визуальное проектирование программ, очень комфортное для работы. По структуре программа состоит из блоков. Каждый блок представляет различные типы действий.

Для вращения вокруг своей оси используется следующий метод: первый двигатель вращается в одну сторону, а второй - в обратную. Во время движения прямо по траектории, а также вращения вокруг своей оси на поворотах, считываются данные с ультразвукового датчика расстояния и, когда роботом замечено препятствие впереди, начинается вращения и он объезжает препятствие, в дальнейшем возвращаясь на заданную траекторию. Ультразвуковой сенсор для робота является своеобразным «зрением» [4]. Он измеряет расстояние путём расчёта времени, которое потребовалось звуковой волне для возвращения после отражения от объекта. Исходя из его исходных настроек, датчик может измерять расстояние от 0 до 255 см с точностью +/- 3 см. На практике же минимальное расстояние, на котором ультразвуковой датчик выдаёт осмысленные показания, составляет около 5 - 7 см. Также необходимо подчеркнуть, что по сравнению с прочими датчиками, ультразвуковой датчик весьма медлителен. Первичная причина этого – малая скорость звука в сравнении со скоростью света. Вторичная причина - медленный протокол обмена данными ультразвукового датчика.

Если препятствие обнаружено, то алгоритм его объезда состоит в следующем:

  1. Вращение на 90 градусов влево(вправо).
  2. Движение прямо на 15 см при отсутствии иных препятствий (например, стены).
  3. В случае обнаружения препятствия выполнить вращение на 180 влево(вправо) для поиска иного объезда.
  4. Вращение на 90 градусов вправо(влево).
  5. Движение прямо на 15 см.
  6. Вращение на 90 градусов влево(вправо).
  7. Движение прямо до обнаружения чёрной линии.
  8. Вращение на 90 градусов вправо(влево) и продолжение дальнейшего движения по чёрной линии.

Во время движения вперед происходит считывание данных с датчика освещенности. Для более наглядного представления о «видимости датчика» достаточно представить его перемещение над чёрно-белой фотографией. Результатом измерения будет яркость в диапазоне от 0 (чёрный цвет) до 100 (белый цвет), хотя крайних значений на практике зафиксировать не удаётся. Если значение, полученное с этого датчика, будет велико, т. е. робот выехал за чёрную черту, то прямолинейное завершается, и робот должен остановиться. В противном случае, робот продолжает движение по чёрной линии [5].

Выводы

В ходе ознакомления с процессом создания роботов для соревнований были проанализированы уже существующие модели и возможные способы решения задачи по участию в состязании «Траектория». Была построена модель робота, пригодная для решения поставленной задачи. Определена среда, в которой будет удобнее разрабатывать, читать и сопровождать программу для робота. Разработан алгоритм и написана программа в среде NXT Programming для прохождения робота по указанной траектории и объезду препятствий, находящихся на поле.

Список использованной литературы

  1. Методические указания к лабораторным занятиям «Программирование LegoMindstormNXT» // Томский государственный университет систем управления и радиотехники: [Томск]. [2012].
  2. Введение в программирование LEGO-роботов на языке NXT-G [Электронный ресурс], – Режим доступа: http://www.intuit.ru/studies/courses/14007/1280/info
  3. Мультибот: Базовое транспортное средство [Электронный ресурс], – Режим доступа: URL:http://www.prorobot.ru/lego/multibot_transport.php
  4. Mindstorms (серия LEGO) [Электронный ресурс], – Режим доступа: https://ru.wikipedia.org/wiki/Mindstorms_(серия_LEGO)
  5. Lego Mindstorms Руководство пользователя [Электронный ресурс], – Режим доступа: http://www.mindstorms.ru/img/file/8547_Mindstorms.pdf