Соревновательная робототехника. Программирование робота Lego «Перевозчик»
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабын онлайн тегін оқу  Соревновательная робототехника. Программирование робота Lego «Перевозчик»

Э. Д. Шакирьянов
З. А. Зинурова

Соревновательная робототехника. Программирование робота Lego «Перевозчик»






6+

Оглавление

  1. Соревновательная робототехника. Программирование робота Lego «Перевозчик»
  2. Введение
  3. I. Описание задания
  4. II. Базовые алгоритмы
    1. Анализ задания робота
    2. Прямолинейное движение робота на заданное расстояние
    3. Поворот корпуса робота вокруг центра осевой линии ведущих колес
    4. Движение вдоль черной линии по двум датчикам освещенности
    5. Настройка и калибровка датчиков
  5. III. Программирование мобильной платформы
    1. Выбор и сборка мобильной платформы
    2. Программирование мобильных функций робота
  6. IV. Конструктивные особенности робота «Перевозчика»
    1. Общие положения и требования к роботу
    2. Проектирование и сборка устройства захвата кубика
  7. V. Разработка программы
    1. Построение алгоритма выполнения задания робота «Перевозчика»
    2. Программирование основных функций робота
    3. Компоновка основного кода программы
  8. Заключение
  9. Список литературы
  10. Приложение 1. Модель мобильной платформы
  11. Приложение 2. Модель робота «Перевозчик»

Введение

Соревновательная робототехника одно из увлекательных направлений в мире детского технического творчества. Спортивный азарт побуждает находить различные пути для победы в состязании. Однако практика показала, что современные дети, как правило, как быстро зажигаются, так и быстро теряют интерес к решению задачи, особенно, когда «перестает получаться». И здесь непременно нужна помощь наставника, но надо не перестараться.

Среди различных масштабных соревновательных мероприятий по школьной робототехнике фестиваль Робофест является одним из наиболее известных, где, кроме прочих, присутствуют регламенты соревнований только для начинающих юных робототехников. Это направление «Hello, Robot». Согласно общим положениям [1], до участия в этом направлении допускаются школьники, не принимавшие участие в соревнованиях по робототехнике ранее. Таким образом, все добросовестные участники находятся более или менее в одной «весовой категории», что немаловажно.

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

Конечно, когда команда начинает конкурировать среди «чемпионов по штрафным баллам», такое не лучшим образом сказывается на спортивном духе участников и дальнейшем желании бороться и заниматься робототехникой.

Причин тому много, но одна из главных — практически нет вузовских образовательных программ для педагогов по школьной робототехнике. Педагогам, особенно начинающим, не хватает знаний, навыков, отсюда страдает должная подготовка ребят. И очень мало литературы с «ценными рецептами» от победителей.

В этой книге хотелось бы поделиться тем практическим опытом, который удалось накопить во время занятий по робототехнике в детском технопарке Стерлитамакского филиала БашГУ. Авторами в свое время были подготовлены команды, которые принимали участие в соревнованиях по направлению «Hello, Robot» Lego — Перевозчик. Ребята стали победителями на Региональном робототехническом Фестивале Робофест-Стерлитамак Республика Башкортостан и на III Окружном робототехническом Фестивале Робофест-Самара в 2018 г. Именно решению этого задания посвящен материал книги. Надеемся, что полученные знания будут читателю полезны.

I. Описание задания

Условия соревнований, в рамках направления «Hello, Robot! Lego», для старшей группы (школьники 5—6 класс) определены регламентом Всероссийского робототехнического фестиваля Робофест-2018 «Перевозчик» [1]. Ниже приведены выдержки из этого регламента.

Задача для робота: за минимальное время робот должен переместить кубики на базу в определенном порядке. Соревновательное поле представляет собой холст размерами 2400х1200 мм с белым основание и черной линией шириной 18 — 25 мм, определяющей траекторию движения робота (рис.1.1). На поле размещены две зоны. Зона «Старт» размером 250х250 мм — стартовая позиция робота, и зона «База» размером 200х200 мм предназначена для размещения перемещенных кубиков. Кубик имеет размеры 50±5мм, Вес — 50±5 гр. На двух смежных сторонах имеется цветная метка размером 40х40 мм. Цвет метки — красный, синий, зеленый, желтый, черный, белый. Также на поле вдоль траектории движения расположены 10 отметок: квадрат со стороной 55 мм для установки кубика.

Цвета меток кубика и порядок перемещения определяются в день соревнований на основе жеребьевки. Количество кубиков каждого цвета, а также их расстановка на отметках определяется Главным судьей соревнований перед началом заезда, после сдачи роботов в карантин.

Требования к роботу. Робот должен быть автономным. Размер робота на старте не превышает 250х250х250 мм. Робот стартует из зоны «Старт». До старта никакая часть робота не может выступать из зоны «Старт».

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

Рис.1.1. Соревновательное поле «Перевозчик»

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

Время выполнения задания 120 секунд.

Последовательность обнаружения кубиков определяется участниками команды.

Если во время попытки робот съезжает с черной линии, т.е. оказывается всеми колесами с одной стороны линии, то он завершает свою попытку с фиксированием времени в 120 секунд и суммой набранных баллов.

В зачет принимаются суммарные результаты попыток: сумма баллов и сумма времени. Финиш робота фиксируется только после перемещения всех кубиков в зону «База» в соответствующем жеребьевке порядке.

Таким образом, необходимо придумать, собрать и запрограммировать робота, который в определенном заранее порядке будет перевозить кубики с цветными метками не более чем по 2 единицы в определенную зону. При этом неизвестно: общее число кубиков, количество кубиков по цветовым меткам, расположение кубиков по своим полям. Известно: количество цветных меток и порядок перевозки по цвету.

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

II. Базовые алгоритмы

Анализ задания робота

Чтобы понять, как должно выполняться задание соревновательного регламента, воспользуемся приемом, который применяют для изучения и понимания сложных процессов. Когда логика и структура исследуемого процесса неочевидна, то его разбивают на совокупность более простых функций, а функции, в свою очередь, — на простейшие операции или работы. Такой метод называется декомпозиция.

Разобьем процесс выполнения роботом основного задания на простейшие функции. Каждая такая функция предполагает выполнение роботом одной-двух операций. Анализируя соревновательное поле (рис.1), получаем следующий список:

а) движение из зоны Старт на основную линию (основной линией будем считать кольцевую черную линию, вдоль которой расположены поля-метки для кубиков)

б) движение по основной линии

— до обнаружения кубика/кубика нужного цвета

— до перекрестка

в) движение в зону/из зоны База (если этого требует конструкция робота)

г) загрузка/выгрузка кубика

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

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

Движение по основной линии. Выполнение текущей функции возможно одной составной операцией, реализованной на одном из алгоритмов движения робота вдоль черной линии по датчикам освещенности. Движение до кубика и до перекрестка осуществляется различными условиями прерывания движения.

Движение в зону/из зоны База. Реализация данной функции зависит от конструкции робота. Если устройство выгрузки кубиков робота позволяет выполнить выгрузку непосредственно в зону База, то робот реализует эту функцию одной операцией: выгрузить кубик (и) (в нашей конструкции используется устройство выгрузки непосредственно в зону База). В противном случае количество операций увеличивается, например, один из вариантов: поворот корпусом в стону зоны База, сместиться с текущей позиции в сторону зоны База, выгрузить кубики, разворот в сторону основной линии, сместиться с текущей позиции до основной линии; выполнить поворот корпуса робота на 90 градусов вправо.

Загрузка/выгрузка кубика. Данные функции, как правило, представляют собой простейшие операции, связанные с однократным включением сервопривода устройства загрузки и/или выгрузки.

Таким образом, можно выделить следующие базовые алгоритмы, которые послужат основой для будущей программы робота «

...