Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр_3_4.doc
Скачиваний:
2
Добавлен:
26.11.2018
Размер:
740.86 Кб
Скачать

Часть 2

1. Обход лабиринта

Исходные данные: лабиринт с тупиками. В состав робота входить лазерный дальномер, или три сонара, направленные вперёд, вправо и влево. Предполагается, что используется три луча лазерного дальномера (см. рис. Error: Reference source not found).

Рис. 1. Используемые лучи дальномера

Правило обхода лабиринта («правило правой руки»): робот должен двигаться прямо, пока справа от робота находится стена (используется правый луч дальномера), если справа кончается стена, нужно повернуть направо, чтобы снова найти стену, после чего продолжить движение вдоль стены; если обнаружена стена перед роботом, нужно повернуть налево и продолжить движение вдоль стены.

Правило обхода лабиринта («правило левой руки»): робот должен двигаться прямо, пока слева от робота находится стена (используется левый луч дальномера), если слева кончается стена, нужно повернуть налево, чтобы снова найти стену, после чего продолжить движение вдоль стены; если обнаружена стена перед роботом, нужно повернуть направо и продолжить движение вдоль стены.

Нужно предусмотреть толщину стены, которая обрывается и после которой нужно повернуть налево. Установить фиксированное расстояние (d, см. рис. Error: Reference source not found), на которое должен переместиться робот, чтобы проехать стену, и после которого можно повернуть, чтобы начать движение вдоль стены.

Рис. 2. Расстояние d

Рис. 3. Лабиринт для тестирования алгоритма

Буквами «С» (Старт) и «Ф» (Финиш) обозначены начальное и конечное расположение робота в лабиринте, робот должен начать движение из точки «С» и достичь точки «Ф».

Правило обхода лабиринта («правило правой руки»): робот должен двигаться прямо, пока справа от робота находится стена (используется правый луч дальномера), если справа кончается стена, нужно повернуть направо, чтобы снова найти стену, после чего продолжить движение вдоль стены; если обнаружена стена перед роботом, нужно повернуть налево и продолжить движение вдоль стены.

Состояния (для «правила правой руки», см. рис. Error: Reference source not found):

1) движение прямо: робот выполняет движение прямо до тех пор, пока справа от робота находится стена, выполняется проверка наличия стены справа и перед роботом: если справа кончается стена, робот переходит в состояние «поворот направо», если перед роботом детектируется стена, то робот переходит в состояние «поворот налево»;

2) поворот направо: робот выполняет поворот направо и переходит в состояние «движение прямо»;

3) поворот налево: робот выполняет поворот налево и переходит в состояние «движение прямо».

Рис. 4. Конечный автомат

На рис. Error: Reference source not found сплошной линией показан путь робота при обходе лабиринта с использованием правила «правой руки», пунктирной – при использовании правила «левой руки».

Рис. 5. Путь робота

Задание: разработать диаграмму обхода роботом лабиринта.