Соревновония Lego роботов 2.Соревновония Lego роботов 1.

Структура

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции book_prev() (строка 775 в файле /home/users/r/robohobby/domains/robohobby.myjino.ru/rostovrobot/modules/book/book.module).
Аватар пользователя Овсянников Алексей Юрьевич

Первым делом необходимо было определиться со структурой. С самого начала в проекте планировались следующие компоненты:

  1. Поле, имитирующее складское помещение;
  2. Мобильные роботы-исполнители;
  3. Программа мобильного робота;
  4. Программа-сервер;
  5. Клиентская программа.

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

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

Все перемещения мобильных роботов производятся по специальному полю, имитирующему складское помещение. Система на каждом "шагу" отслеживает возможность столкновения роботов и при необходимости изменяет одному из них маршрут.

Таким образом, можно сказать, что программа-сервер служит связующим звеном между пользователями и мобильными роботами-исполнителями. Она может одновременно обслуживать нескольких клиентов и управлять несколькими роботами. Программа-сервер призвана взять основные вычислительные нагрузки на себя (прокладка оптимального маршрута), а так же отслеживание возможных столкновений, так как хранит информацию о каждом из роботов. Ее можно сравнить с начальником, который договариватеся с заказчиками (клиентами), а потом выбирает кого-то из своих подчиненых (мобильных роботов) и дает ему задание выполнить работу (доставить груз). Каждый из подчиненных выполняет только порученную ему работу, не вникая в задачи окружающих.

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

Далее будут подробно рассмотрены все компоненты проекта.