В проекте моделируется работа роботов (газонокосилок, пылесосов). Команды управления роботами задаются через специальное устройство - контроллер, оснащенное программой управления и передатчиком данных, связывающим его с роботами.
Параметры, задаваемые контроллером:
1. Площадь пространства, на котором должны работать роботы. Площадь задается как длина и ширина в метрах;
2. Количество роботов, выполняющих работу;
3. Кнопки «СТАРТ» и «СТОП», которые посылают команды роботам для начала и приостановки работы.
Установка контроллера в точке пространства (газон, комната, зал, танцплощадка) определяет начало - левую верхнюю точку площади рабочего пространства. Отсчет начала длины и ширины площади рабочего пространства идет от точки расположения контроллера. .
Роботы в пространстве могут находиться где угодно. При нажатии кнопки «СТАРТ» роботы должны начать двигаться, чтобы занять начальную позицию в рабочем пространстве. Затем роботы двигаются определенным строем от одной позиции к другой осуществляя выполнение задания (скашивания травы или очистки поверхности). При достижении конца рабочего пространства, при котором затруднен проход всех роботов, по команде контроллера последний проход осуществляется количеством агентов, которые помещаются в него. После завершения работы на заданном пространстве роботы сами останавливаются.
Алгоритм движения роботов построен на нескольких сценариях:
Сцена 1. Начальная позиция на рабочем пространстве;
Сцена 2. Построение рабочего строя;
Сцена 3. Движение строем слева направо;
Сцена 4. Движение строем у правой границы сверху вниз;
Сцена 5. Движение строем справа налево;
Сцена 6. Движение строем у левой границы сверху вниз;
Если контроллер определил, что следующая целевая точка робота выходит за границы рабочего пространства, то он меняет координаты целевой точки на граничные и роботу посылается признак окончания работы.
Таким образом роботы заканчивают работу по мере достижения границы рабочего пространства, остальные же продолжают свою работу.