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