Шрифт:
Роботы укладывали коробки одну за другой на раз-два: слева, справа, слева, справа, чух-чух-дзинь-чух-чух. В максимальном темпе рука одного робота ставила коробку на палету чуть дольше чем за четыре секунды. Но в работе было много перерывов, замедляющих подачу коробок, и тогда рука робота зависала над конвейером, ожидая своей очереди. Зачастую перерыв в работе длился всего несколько секунд, но иногда ожидание занимало минуты. В конце концов пустая сторона ячейки оживала и из чрева склада появлялся долгожданный поток коробок, рывками двигающийся по конвейерам. Бездействовавший робот начинал урчать и, сначала медленно, а через несколько секунд с нормальной скоростью, подхватывал запоздавшие коробки и укладывал на палету.
За пятнадцать минут до приезда большого начальства техникам наконец удалось победить системный сбой, и боты довольно резво забегали по внутренностям склада, собирая коробки для отправки на конвейеры, ведущие к роботам-палетизаторам. Но назойливые перерывы в работе агрегатов не исчезали. Не было почти ни секунды, когда бы вся система работала в полную силу. На каком-нибудь участке возникала остановка, а когда работа на нем возобновлялась, замедление перемещалось в другое место.
В системе было множество довольно любопытных движущихся механизмов, но после беглого осмотра разных компонент начальственные делегации неизменно кучковались около ячеек палетизации – несомненно, самых зрелищных частей системы. Именно они производили конечный продукт – те самые палеты, которые загружали в фуры и доставляли в магазины.
Проблема была в том, что процесс палетизации на этом этапе больше напоминал комедийный скетч, чем виртуозно отлаженный индустриальный механизм. Даже если автоматика и электроника работали хорошо, руки роботов строили очень уродливые палеты. Они выглядели так, будто трехлетний ребенок играл в кубики на полу и выстраивал их в случайные и неустойчивые конструкции, где шестилетний справился бы уже намного лучше. Там, где можно было уложить целый плотный слой одинаковых бутылочных упаковок, роботы выстраивали шатающиеся двух-, трех- или даже четырехэтажные небоскребы. Между ними пролегали широкие улицы свободного пространства. Иногда целый угол палеты оставался пустым, в то время как на противоположном коробки громоздились выше человеческого роста.
Планы палет – задаваемые компьютеру координаты и ориентации коробок, а также очередность их укладки – были в зоне моей ответственности. Всего двумя неделями ранее я взял на себя руководство командой, писавшей софтвер для планирования палет. За несколько лет до того я очень успешно решил эту задачу в нашем первом автоматизированном складе в городе Ньюбург, в захолустной части штата Нью-Йорк, вверх по Гудзону от Нью-Йорк Сити. Большие склады обычно строятся в депрессивных и невзрачных местах – где дешевая земля и проще найти рабочих, готовых день за днем вкалывать в ночную смену или проводить по десять часов в огромном унылом ангаре, среди однообразных стеллажей с коробками, палетами и горами картонного мусора от упаковок. На большинстве складов рабочие расставляли полные палеты вручную, перемещая их вдоль стеллажей вилочным погрузчиком. Наша автоматическая система предполагала замену этого тяжелого ручного труда механизмами и роботами.
Еще в первый год работы в «Симботике» я придумал невероятно сложный, но очень элегантный математический алгоритм, который планировал красивые и устойчивые палеты, собранные из коробок разной длины, ширины и высоты: квадратных и прямоугольных, широких и плоских, высоких и узких. Все они эффективно укладывались на свои места. Я также руководил небольшой командой, превратившей этот алгоритм в рабочий код для нашего первого автоматизированного склада в Ньюбурге. Фактически это спасло еще совсем молодую компанию, когда в ее пилотном проекте, на том самом складе в Ньюбурге, все шло наперекосяк. Вся система работала на малую долю от запланированной производительности, палеты на выходе (до внедрения моего алгоритма) были маленькими и корявыми, и компания вот-вот могла остаться без финансирования. Успешное внедрение нового алгоритма палетизации убедило Рика, главного спонсора и владельца компании (также прибывшего в этот августовский день с визитом на склад «Кока-Колы»), что проект не безнадежен. Следующие два проекта не требовали палетизации, и эта тема на несколько лет ушла на второй план. Я занимался другими задачами, связанными с нашей системой следующего поколения.
Когда же мы подписали контракт с «Кока-Колой» в 2015 г., построение палет на отгрузку в магазины вновь стало одной из важнейших компонент автоматизации. Но софтвер для планов палет теперь делали другие люди. Предполагалось, что они будут опираться на мои алгоритмы, но перепишут софтвер с нуля и на другом языке – C# (в отличие от C++ в первоначальном варианте). И еще добавят множество деталей, актуальных для новых автоматизированных систем «Симботика», а также специфичных для упаковок напитков, проходивших через склады «Кока-Колы».
Результат пока что ужасал. Это была пародия на тот алгоритм, который я сделал пять лет назад и который очень хорошо работал в Ньюбурге. Было больно смотреть на уродцев, вылезавших из палетизационной ячейки. Иной раз, когда робот подхватывал большую коробку, чтобы положить ее на палету, замирало сердце. Это было почти лотереей: куда он поставит ее сейчас? Интуитивно угадывалось наиболее подходящее место – пустой угол или зияющее пространство между двумя упаковками. Но предательский ухват робота взмывал выше и водружал свою ношу поверх другой коробки, вместо намного более логичного места рядом с ней. Очередной прокол. Нижнее пространство оставалось пустым, а сверху нарастала шаткая пирамида из упаковок. И рядом с ней – другая пирамида, отделенная от первой узкой улочкой, как в средневековом городе. Если это нагромождение в целости и сохранности выйдет из палетизационной ячейки, покачиваясь неустойчивыми стенами из упаковок с тяжелыми бутылками, – это уже можно будет считать удачей. Но опасность подстерегала палету и дальше. Она могла обрушиться на цепном конвейере по пути от ячейки до вилочного погрузчика и на вилочном погрузчике по пути в фуру. Или внутри фуры по пути в магазин. По прибытии в магазин это заставит чертыхаться как приемщика, не получившего заказанный товар в сохранности, так и водителя фуры, которому придется вычищать хлам из лопнувших банок и бутылок и отмывать пол от чавкающей липкой жидкости.
Операторы погрузчиков, видя на своих вилках очередную неустойчивую, готовую завалиться набок палету, морщились и ругались: им предстояло вручную поправлять ее, а за эту работу им не доплачивали. Они отвозили палету в сторону, разрезали верхнюю часть стягивающей пленки, переставляли коробки на пустые места пониже, подгоняли их плотнее друг к другу, впихивали внутрь те, что торчали наружу, и затем вручную заматывали верх палеты такой же пленкой, какую использовал оборачивающий автомат внутри ячейки.