четверг, 15 марта 2012 г.

Робот для состязаний: Робот "Менделеев"

Задание для младшей группы основной категории Международных Состязаний Роботов называется "Робот Менделеев" и оно подразумевает, что нужно построить робота, который способен к систематизации объектов в соответствии с характеристикой ячейки.
А именно, робот должен проехать из ячейки Старта в ячейку Финиша по дороге раскладывая нужное число теннисных шариков в другие ячейки.

Основная сложность в данном задании – границы ячеек, которые представлют собой барьеры высотой 3 см.

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

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


Более оптимальным видится порядок обхода, в котором робот проезжает только один раз вдоль всего поля.


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

Здесь,
  • (1) Переехать в очередную ячейку
  • (2) Выполнить разворот налево
  • (3) Придвинуться к соседней ячейке
  • (4) Проанализировать цвет ячейки и, если нужно, выложить шарики
  • (5) Отодвинуться от ячейки
  • (6) Выполнить разворот налево
  • . . .
  • (N) Переехать в следующую ячейку

Преимущества такого подхода, в том, что
  1. все действия повторяются итеративно, т.е. программа будет содержать довольно простой цикл
  2. повороты выполняются быстрее, чем перемещения из ячейки в ячейку
  3. робот никогда не заезжает в ячейки с шариками, т.е. они не будут мешаться у него под колесами/гусеницами. Даже по пути своего следования, он сначала проедет из одной ячейки в другую, а только потом будет выкладывать шарик в первую
Естественно, такой алгоритм накладывает ограничения на конструкцию: выталкиватель и датчик цвета должны быть закреплены на такой высоте и так расположены, относительно колес робота, что данный механизм мог выкладывать шарики в одной ячейке, в то время как сам робот находится в другой.

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...