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

2. Подсчёт объектов заданного цвета

Перед роботом стоит задача определения объектов определённого цвета в ограниченном пространстве. Пусть объект – конус жёлтого цвета. Робот должен отслеживать конусы, которые расположены на определённом расстоянии от него. Для решения задачи пространство, в котором передвигается робот, нужно разбить на квадраты, т. е. выполнить дискретизацию пространства. Квадрат должен быть такого размера, чтобы конус был в нём и робот мог проехать по краю сетки. Робот передвигается в ограниченном пространстве и сам отслеживает свои координаты. Известно, что объект находится в клетке, но не обязательно должен находиться в её центре. В некоторых клетках объект может отсутствовать. Робот может проехать по границам клетки не задев объект. Робот должен учитывать только объекты, находящиеся в клетке слева и справа. Роботу известно количество клеток по горизонтали и вертикали.

Задание: разработать диаграмму подсчёта роботом количества объектов заданного цвета. Поставленную задачу можно усложнить, если допустить, что некоторые объекты могут частично перекрываться объектами другого цвета. Пример размеченного пространства сцены показан на рис. Error: Reference source not found.

Рис. 6. Пример пространства

3. Движение нескольких роботов

В ограниченном пространстве находится несколько роботов. Задача состоит в разработке диаграммы организации случайного движения нескольких роботов с обходом препятствий (роботы должны объезжать статические препятствия и динамические).

4. Площадка и шары

На сцене в воздухе размещена площадка. В центре площадки находится робот. По краю площадки расположено несколько шаров. Задача: разработать диаграмму управления движением робота таким образом, чтобы столкнуть все шары вниз и остаться самому на площадке. Для определения шара на площадке можно использовать лазерный дальномер.

5. Преследование

В ограниченном пространстве находятся два робота. Один из них – ведущий, другой – ведомый. Допустим, что препятствий на площадке, по которой передвигаются роботы, нет. Ведущий робот, передвигаясь по площадке, изменяет маршрут своего движения. Цель ведомого робота – преследование ведомого, т.е. он должен постоянно находить его на площадке и подъезжать к нему. Для обнаружения ведущего робота ведомый робот может использовать лазерный дальномер. В этом случае, ведущий робот не должен отъезжать от ведомого дальше чем на 8 метров. Весь процесс можно разбить на два этапа:

1) ведущий передвигается по площадке на какое-то расстояние и останавливается;

2) ведомый робот ищет его на площадке и подъезжает к нему, после чего сообщает ведущему о том, что он может начать движение.

Задача: разработать диаграмму организации движения нескольких роботов по площадке с приведёнными ограничениями.

6. Движение по линии

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

Линия может состоять из участков разного цвета. В зависимости от цвета робот должен менять скорость с которой движется.

Один сенсор. Одного сенсора достаточно для решения задачи отслеживания линии. В этом случае отслеживаются переходы от тёмного к светлому и наоборот, т.е. робот следует контуру линии. Предположим, что используется робот, включающий два управляемых колеса. В этом случае, одно из колёс будет активироваться, когда линия будет видна, другое колесо – когда линия будет пропадать из области действия сенсора. Данный подход будет работать при невысокой скорости передвижения робота. При высоких скоростях, если робот пересечёт другую сторону линии, то он может двигаться в противоположном направлении, если же он потеряет линию, то он будет постоянно двигаться по окружности.

Рис. 7. Траектории движения роботов в зависимости от количества сенсоров

В бинарных терминах сенсор описывает два состояния:

1) 0 – над линией

2) 1 – за пределами линии.

Два сенсора. В данном случае каждый сенсор управляет определённым мотором. Каждый сенсор связан с определённым мотором. Существует два варианта размещения двух сенсоров:

1) так, чтобы оба сенсора никогда не детектировали линию.

2) так чтобы оба сенсора детектировали линию.

Два варианта: или следуем линии или избегаем линию.

Состояния сенсоров:

1) 00 – линия потеряна или сенсоры находятся по обе стороны от линии;

2) 01 – линия найдена справа, робот должен повернуть направо, подав на левое колесо больше энергии, чем на правое;

3) 10 – линия найдена слева, робот должен повернуть налево, подав на правое колесо больше энергии, чем на левое;

4) 11 – оба сенсора находятся над линией (если сенсоры расположены так, что никогда оба над линией располагаться не смогут, то данное сочетание не используется).

Недостатком данного набора сенсоров является то, что робот не может отличить две ситуации: линия потеряна и сенсоры находятся по обе стороны от линии.

Три сенсора (наиболее часто используемая схема). Позволяет более гибко адаптироваться к форме линии. Можно увеличить скорость передвижения робота вдоль линии. Допустим k – базовый уровень энергии, подаваемый на левое и правое колёса, тогда в зависимости от состояния сенсоров можно установить следующее:

1) 001 – линия находится правее, установка энергии: левое = k, правое = 0.1k.

2) 010 – робот находится над линией, установка энергии: левое = 0.5k; правое = 0.5k;

3) 011 – линия находится правее, установка энергии: левое = 0.5k, правое = 0.1k;

4) 100 – линия находится левее, установка энергии: левое = 0.1k, правое = k;

5) 110 – линия находится левее, установка энергии: левое = 0.1k, правое = 0.5k;

Особые случаи (робот потерял линию):

6) 101 – робот должен двигаться по окружности, установка энергии: левое = 0.5k, правое = 0.07k;

7) 111 – данное состояние возникает, когда все три сенсора находятся над линией, установка энергии: левое = 0.5k, правое = 0.07k. Ещё один вариант поведения в данной ситуации – развернуться на 90 градусов и продолжить движение;

8) 000 – робот должен двигаться по окружности, установка энергии: левое = 0.5k, правое = 0.07k.

При указанной конфигурации сенсоров один сенсор устанавливается по центру робота, два других – по бокам робота, таким образом, чтобы не захватывать линию.

Пять сенсоров. Добавление двух сенсоров к предыдущей схеме позволяет увеличить скорость движения вдоль линии.

Задание: разработать диаграмму организации движения робота по линии.

Примечания:

1. Параметры камеры, которые могут использоваться для организации движения робота по линии:

1) Near – 0.001;

2) Far – 50;

3) FieldOfView – 5;

4) Width – 4;

5) Height – 4.

2. Установка параметров камеры. Для робота iRobot Create камера располагается на расстоянии 7 сантиметров левее от центра робота и 14 сантиметров перед центром. Другая камера должна быть расположена на 7 сантиметров правее от центра робота и 14 сантиметров перед центром. Камеры устанавливаются так, чтобы они смотрели на землю.

При создании сцены для тестирования алгоритма движения робота по линии сама линия может быть создана на основе параллепипеда, входящего в сцену IRobot.Create. Для этого нужно установить его свойства следующим образом:

1) ширина параллепипеда установлена так, чтобы она была меньше расстояния между сенсорами яркости, размещёнными на роботе (свойство MeshScale, см. рис. Error: Reference source not found)

Рис. 8. Установка параметров параллепипеда

2) в состоянии параллепипеда устанавливаются два флага: Kinematic (определение типа объекта) и DisableCollisions (исключение столкновений, см. рис. Error: Reference source not found). В результате, полученный блок можно размещать в любом месте сцены, также накладывая подобные блоки друг на друга, причём сам робот с ним взаимодействовать не будет.

Рис. 9. Установка параметров взаимодействия объектов сцены

В качестве варианта, можно разработать сцену, содержащую объект, состоящий из нескольких уровней (по данному объекту проложена линия, по которой перемещается робот).

7. Движение нескольких роботов по линии

На сцене находится несколько линий, которые могут пересекаться. Каждая линия предназначена для движения по ней одного или нескольких роботов. В случае, если на пересечении линий встречаются два робота один робот должен пропускать другого робота.

Задание: разработать диаграмму организации движения нескольких роботов по линиям.

8. Движение по линии с обходом статических препятствий

Движение по линии с обходом статических препятствий, находящихся на пути следования робота. Робот может съезжать с линии для обхода препятствия.

Задание: разработать диаграмму организации движения робота по линии с обходом статических препятствий.

9. Измерение размера площадки

Задание: разработать диаграмму измерения площадь (периметр) площадки по которой перемещается робот. Можно предложить несколько вариантов задачи:

1) Площадка ограничена стенами.

2) Площадка находится в воздухе, стенами не ограничена. Поэтому робот должен иметь сенсоры, направленные под углом к площадке, чтобы определять её границы.

10. Проезд в ворота

На сцене размещены ворота, ширина которых заранее больше ширины робота. Задание: разработать диаграмму для организации движения робота таким образом, чтобы он мог находить ворота на сцене и проезжать в них.

11. Объезд конусов

Задание: разработать диаграмму управления роботом, цель движения которого – объезд конусов, установленных в сцене по схеме, приведённой на рис. Error: Reference source not found.

Рис. 10. Размещение конусов

12. Парковка

На сцене находится несколько гаражей разного цвета, выстроенные по одной линии.

Задание: разработать диаграмму парковки робота в гараж с заданным цветом. Цвет гаража вводится с клавиатуры.

13. Сумо

На площадке, висящей в воздухе, находятся два робота разного цвета.

Задание: разработать диаграмму организации сумо-соревнования роботов. Цель каждого робота – столкнуть противника с площадки.

14. Кубы

На сцене, в пределах периметра, ограниченного 4 стенами, находится 4 куба разного цвета. Все стены разного цвета, соответствующие цветам кубов. Ограничения на расположения кубов в периметре не накладываются.

Задание: разработать диаграмму управления движением робота с целью перемещения каждого куба к стене с тем же цветом.

15. Случайное движение

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

16. Определение типа объекта

На сцене находится шар и куб.

Задание: разработать диаграмму определения роботом типа анализируемого объекта. Подсказка: для решения данной задачи можно использовать лазерный дальномер. Дальномер может расположить так, чтобы он считывал показатели объектов не только в горизонтальной, но и в вертикальной плоскости.