Основная сложность в данном задании – границы ячеек, которые представлют собой барьеры высотой 3 см.
Если размышлять над конструкцие робота, то очевидно, что робот должен уметь:
- переезжать барьеры, при этом, крайне желательно, не сбиваясь с прямой линии
 - определять цвета ячеек, с условием, что датчик цвета установлен на такой высоте или таким образом, чтобы не мешать передвижению через барьеры
 - выполнять повороты, желательно, поворачиваясь вокруг своей оси. Т.е. колесная база робота должна быть собрана по танковой схеме
 - выталкивать тенисные шарики из какого-то хранилища, так чтобы шарики при выталкивании не набирали большой скорости и не выскакивали за пределы ячейки, куда они выталкиваются. Также шарики, вытолкнутые в ячейку, не должны мешать роботу совершать дальнейшее передвижение.
 
Если размышлять о стратегии перемещения робота по полю, то обход роботом каждой ячейки (заезжание в конкретную ячейку), очевидно, выглядит не самым оптимальным.
Более оптимальным видится порядок обхода, в котором робот проезжает только один раз вдоль всего поля.
При этом робот в каждой ячейке "оглядывается" на соседние для того, чтобы определить какого цвета они и выложить туда соответствующее количество шариков.
Здесь,
- (1) Переехать в очередную ячейку
 - (2) Выполнить разворот налево
 - (3) Придвинуться к соседней ячейке
 - (4) Проанализировать цвет ячейки и, если нужно, выложить шарики
 - (5) Отодвинуться от ячейки
 - (6) Выполнить разворот налево
 - . . .
 - (N) Переехать в следующую ячейку
 
Преимущества такого подхода, в том, что
- все действия повторяются итеративно, т.е. программа будет содержать довольно простой цикл
 - повороты выполняются быстрее, чем перемещения из ячейки в ячейку
 - робот никогда не заезжает в ячейки с шариками, т.е. они не будут мешаться у него под колесами/гусеницами. Даже по пути своего следования, он сначала проедет из одной ячейки в другую, а только потом будет выкладывать шарик в первую
 
Комментариев нет:
Отправить комментарий