Объезд препятствий на пути

Содержание

Слайд 2

Ранее нами изучены алгоритмы для движения робота по линии. Релейный регулятор

Ранее нами изучены алгоритмы для движения робота по линии.

Релейный регулятор на

2 датчика

Пропорциональный регулятор на 2 датчика

Слайд 3

Теперь на этой линии будет расположено препятствие – банка, которую робот

Теперь на этой линии будет расположено препятствие – банка, которую робот

может просто сдвинуть, но этого делать нельзя. Её необходимо объехать
Нам придется добавить в конструкцию робота датчик расстояния и подключить его к порту 3
Слайд 4

Чтобы решить задачу с объездом банок, разобьём её на несколько простых

Чтобы решить задачу с объездом банок, разобьём её на несколько простых

задач – подпрограмм:
Движение по линии, пока перед роботом нет препятствия;
2. Объезд препятствия и возвращение на линию
Движение по линии, пока перед роботом нет препятствия:
Переименуем открытый проект движения по линии (Файл – Сохранить как – Новое название)
Создадим подпрограмму «По линии» и скопируем программу движения по линии (Ctrl+C)
Двойным кликом на значке подпрограммы «По линии», откроем её в новой вкладке и вставим скопированный код (Ctrl+V). Лишний «зелёный светофор необходимо удалить.
Удалим стрелку цикла
Слайд 5

Так выглядит подпрограмма «По линии»:

Так выглядит подпрограмма «По линии»:

Слайд 6

Теперь вернемся в Диаграмму поведения робота, удалим всё, кроме блока «Начало

Теперь вернемся в Диаграмму поведения робота, удалим всё, кроме блока «Начало

программы», и создадим вторую подпрограмму «До банки». Двойным кликом по её блоку, откроем её в новой вкладке.
Здесь будет задано до каких пор выполнять коротких движений по линии, которые находятся в подпрограмме «По линии»

Теперь обязательно нужно настроить эту подпрограмму на виртуальном роботе в режиме 2D отладки

Слайд 7

Для настройки на линию необходимо установить банку. Чтобы робот реагировал на

Для настройки на линию необходимо установить банку. Чтобы робот реагировал на

банку и выполнял повороты как реальный робот, необходимо включить режим «Реалистичная физика»
Слайд 8

А Диаграмма поведения робота теперь будет выглядеть так: Объезд препятствия: Препятствие

А Диаграмма поведения робота теперь будет выглядеть так:
Объезд препятствия:
Препятствие можно объехать

разными способами: дугой, тремя движениями вперед, чередующимися с поворотами на 90 градусов, двумя движениями вперед, чередующимися с поворотами на 120-90 градусов.
Рассмотрим объезд по дуге:
Создадим вкладке «Диаграмма поведения робота» подпрограмму «Объезд» и кликом на значке подпрограммы «По линии», откроем её в новой вкладке:

Составим блок диаграмму для поворота в сторону объезда и настроим его:

Слайд 9

Добавим в диаграмму блоков движение дугой. Его необходимо выполнять в сторону,

Добавим в диаграмму блоков движение дугой.
Его необходимо выполнять в сторону, обратную

сделанному повороту. И для этого, мотор С включаем вперёд на полную мощность, а мотор В на 60%. Заканчиваться дуга должна когда датчик света с внешней стороны дуги, попадет на черную линию (будет меньше 45)
Слайд 10

Добавим в диаграмму блоков движение дугой. Его необходимо выполнять в сторону,

Добавим в диаграмму блоков движение дугой.
Его необходимо выполнять в сторону, обратную

сделанному повороту. И для этого, мотор С включаем вперёд на полную мощность, а мотор В на 60%. Заканчиваться дуга должна когда датчик света с внешней стороны дуги, попадет на черную линию (будет меньше 45)

Теперь в режиме 2D отладки настроим объезд банки полностью: