Сегодня мы с вами находимся на складе, в котором хранятся товары, продающиеся в интернет-магазине. После покупки товара сотрудники магазина должны обеспечить доставку товара до потребителя. Для этого роботы устанавливают купленные товары на специальные подставки (далее – подставки) рядом с лентой транспортёра, который отправляет товар в логистическую компанию. Таких транспортёров на складе два: один – по левую сторону, второй – по правую сторону ангара (имеются в виду бо́льшие стороны поля). Также есть подставка, на которую помещаются спецтовары высокой ценности (для ускоренной спецдоставки). Эти товары сразу грузятся непосредственно в спецтранспорт.
К сожалению, перемещение товара с подставки на ленту осуществляют люди, так как этот участок склада ещё не автоматизирован. Но люди не так надёжны, как роботы. Поэтому мы предлагаем вам закончить автоматизацию склада товаров, роботизировав процесс перемещения на ленты транспортёров и в спецтранспорт товаров, подготовленных к передаче в логистическую компанию, установленных на подставки.
Прежде чем идти в реальный складской ангар и производить рационализацию, необходимо отработать поведение роботов, решающих новую задачу на модели.
Для моделирования решения поставленной задачи будут использоваться два одинаковых робота: один обеспечивает доставку на ленту первого транспортёра, второй – на ленту второго. Подставка в зоне 5 для спецдоставки может быть обслужена любым из роботов. В нашей модели считается, что лента транспортёра находится вне зоны подставки.
В качестве модели ангара-склада используется поле с 5 основными зонами:
В качестве подставок используется нарисованный квадрат (таких квадратов 5 штук на поле). По центру некоторых квадратов располагается товар, который моделируется кеглей. Товар может как присутствовать, так и отсутствовать на подставке. Приведём пример возможной установки.
Для перемещения товара на ленту используется один из роботов. Для первой ленты (находится в зоне 3) используется робот 1. Для второй ленты (находится в зоне 4) используется робот 2. В зоне 5 может действовать любой из двух роботов.
Для удобства перемещения роботов на полу склада нанесена разметка чёрными полосами.
Роботы в начальный момент времени располагаются в зоне старта и разделены перегородкой, имитирующей шлюзовые ворота. Относительно перегородки роботы располагаются на разных расстояниях. Исчезновение перегородки является командой для старта робота. Перемещение товара на ленту осуществляется его сдвигом из зоны подставки по направлению движения по чёрной линии от середины поля. Робот имеет права присутствия в зоне подставки только в том случае, если в этой зоне был товар. Если товара в зоне подставки не было, то она считается запретной для робота.
Требуется написать ОДНУ программу, используемую для обоих роботов, которые в автоматическом режиме должны реализовать экспериментальный процесс отправки всех грузов на ленты транспортёров и непосредственно передать груз в спецдоставку (зона 5).
Схема исходного расположения роботов:
Фото исходного расположения робота с возможным вариантом расстановки кеглей (модель товара).
Роботы устанавливаются на свои начальные позиции, и осуществляется запуск программы, загруженной в их память. Сигналом для начала работы роботов является исчезновение препятствия (вертикальной стойки) между ними. При этом не предполагается, что роботы должны сразу же начать движение. В нашем модельном представлении вертикальную стойку убирает человек движением вверх. Вместе с исчезновением вертикальной стойки секундомер начинает свой отсчёт.
Роботы на турнире не предполагают использование Bluetooth для связи между ними.
Роботы имеют условно ограниченные зоны действия: робот 1 – зоны 3 и 5, робот 2 – зоны 4 и 5.
Робот не имеет права заезжать на зону подставки ни одним из своих колёс в случае, если в зоне нет кегли (модели товара).
Робот не имеет права выталкивать кегли не из своей зоны действия.
Общая зона действия роботов имеет размер 200×96 см (отмечена ограничивающими линиями).
Выход робота тремя колёсами (шарообразную опору считаем за колесо) за пределы зоны не допускается.
Все кегли вытолкнуты из своих зон подставки. Роботы располагаются в своих зонах старта (финиша). Ориентация робота и расстояния не важны.
В любом случае, решение принимается в пользу роботов.
При необходимости решение может быть помещено в архив 7zip.
(Представленный фрагмент носит чисто ознакомительный характер для понимания сути задачи и не является указанием к её решению.)