Вы находитесь на странице: 1из 5

Лабораторная работа №3

Движение по квадрату
Цель работы: необходимо, что бы робот проехал по квадрату.

К работе допущена:
Работу выполнила:
Работу защитила:
Теоретическое введение
Движение робота состоит из следующих этапов:
движение прямо;
поворот на 90 градусов.
Указанные действия робот должен выполнить четыре раза.
Задачу будем решать по аналогии с предыдущей. Разместите на диаграмме
блоки, как показано на Рис. 1.

Рис. 1. Тестирование готовности пользователя


Параметры действия DriveDistance:
Distance = 1;
Power = 0. 5;
DriveDistanceStage = DriveStage. InitialRequest.
Определите переменную Step (тип int), в которой будет храниться следующее
действие, выполняемое роботом при движении.
Поместите на диаграмму блок GenericDifferentialDrive, который будет копией
существующего сервиса. Добавьте на диаграмму блок If. Соедините
уведомляющий выход GenericDifferentialDrive и блок If. Выберите
сообщение DriveDistance. В текстовом поле блока If укажите выражение
value.
DriveDistanceStage = DriveStage. Completed, проверяющее, выполнилась ли
операция DriveDistance. Добавьте на диаграмму блок If. Соедините
уведомляющий выход блока GenericDifferentialDrive и блок If, выбрав
сообщение RotateDegrees. В текстовом поле блока If укажите выражение
value. RotateDegreesStage = DriveStage. Completed. Объедините выходы
блоков If с помощью Merge.
Поместите на диаграмму блоки Calculate и Variable, после чего соедините
Merge и Calculate, Calculate и Variable (Рис.2).
Рис. 2. Обработка уведомлений
Поместите на диаграмму блок Switch (Рис. 3). Добавьте в блок семь выходов
(Else). Соедините выход блока Calculate c входом блока Switch.
Робот должен последовательно выполнять следующие операции: поворот на
90 градусов, движение прямо. Учитывая этот порядок, соедините блоки
Switch и GenericDifferentialDrive. Установите параметр Degrees для операции
RotateDegrees в значение 90. Для каждой операции DriveDistance установите
параметр Distance в 1. В результате должна получиться часть диаграммы,
показанная на Рис. 3.

Рис. 3. Основная часть диаграммы управления движением


Рассмотрим процесс выполнения диаграммы. После записи в переменную
Step нулевого значения на экране появится диалоговое окно. Нажатие
пользователем кнопки ОК приведет к перемещению робота вперед на 1 метр.
После генерации уведомляющего сообщения о завершении действия
(поворота или перемещения), значение переменной Step увеличивается на 1.
Новое значение используется для выбора следующего действия, которое
должен выполнить робот, для чего используется блок Switch. Как только
значение Step станет равным 8, выполнится ветвь Else и диаграмма завершит
работу.
Практическая часть
1. Движение по квадрату задним ходом

Рис. 4 Реализация движения робота по квадрату задним ходом


2. Движение по треугольнику вперед

Рис. 5 Реализация движения по треугольнику


3. Движение по шестиугольнику вперед

Рис. Реализация движения по шестиугольнику

Заключение
В ходе лабораторной работы были реализованы схемы движения робота по
различным геометрическим фигурам.