Тугая упаковка, или Бизнес-роман о роботах, алгоритмах и о складе без людей — страница 51 из 53

Первое требование – BRK-2 должен был достичь заданных показателей производительности – 1750 коробок в час на одной ячейке депалетизации и 1350 коробок в час на одной ячейке палетизации. В первой очереди склада в Бруксвилле мы уперлись в стену, не достигнув и 70 % этих цифр. Но новые лифты, расширенная зона развязки и многие другие улучшения позволяли надеяться на взятие нужных рубежей – по крайней мере, на складе «Албертсона» мы уже были близки к этому.

Вторым условием стало детальное моделирование системы намного большего размера, которую в дальнейшем предполагалось построить в Бруксвилле, – так называемой соединенной системы (connected system). Она должна была стать настоящим монстром с примерно тридцатью ячейками палетизации и длиной зоны развязки свыше 400 метров, откуда должны были выходить на палетах более сорока тысяч коробок в час. В такой протяженной системе непременно появились бы новые проблемы: нашим ботам могло не хватить энергии между перезарядками, чтобы покрыть такие дистанции. Если разрядившиеся боты начнут застревать в зоне развязки, это станет настоящей катастрофой: работникам придется ползком преодолевать значительные расстояния, чтобы добраться до этих ботов, и вручную тянуть их на подзарядку, а целый ярус (один из десяти) всей системы на это время придется закрыть. В таких условиях у нас не было бы шансов добиться нужной производительности.

Третьим требованием было детальное представление новой концепции штучного отбора (Breakpack system). Модули штучного отбора планировалось интегрировать в нашу систему в Бруксвилле и ряде других РЦ. Эти модули должны были обеспечивать доставку в магазины малоходовых товаров – тех, которые магазин заказывает в меньшем количестве, чем целая упаковка, а в будущем – отбор заказов для индивидуальных покупателей (электронную коммерцию).

Мне довелось активно поработать на всех трех этих направлениях. Летом 2020 г. наконец-то заработал наш механизм перепланировки палет. Потребность в ручной сборке палет из-за пропущенных коробок резко уменьшилась – и это сразу сказалось на производительности ячеек палетизации. К концу 2020-го мы добились результатов намного лучших, чем те, на которые я рассчитывал, приступая к проекту перепланировки. Я думал, что нам удастся успешно поправить палеты с двумя-тремя пропусками, а если их больше – вероятность будет резко падать. Но на самом деле на склад BRK-2 на перепланировку нередко доставляли совсем «дырявые» палеты – с десятью или более пропусками. И мы все равно научились исправлять их практически в 100 % случаев. Изредка после такой перепланировки получались корявые палеты с неустойчиво лежащими коробками, и их приходилось поправлять руками. Да, порой мы все же прибегали к ручной сборке. Но общий процент таких случаев упал в десятки раз по сравнению с былыми показателями – до механизма перепланировки, – и это огромный шаг вперед. Это было невероятно круто – лучше, чем ожидал не только я, но и все, кто участвовал в первоначальном обсуждении проекта перепланировки палет. Но как только проект был завершен, о нем практически забыли, как уже бывало не раз, без всякой благодарности тем, кто добился этого успеха. В «Симботике» оставалось множество «скрипучих колес», поглощающих все время и внимание топ-менеджмента.

Концепция системы штучного отбора, представленная «Волмарту» в 2020-м, имела мало общего с нашими идеями 2014–2015 гг. Новые идеи основывались на «миниботах» – машинках, развозящих отдельные предметы по контейнерам заказов. Предполагалось, что работник будет стоять на станции отбора – а не ходить вдоль рядов стеллажей, как на традиционных складах. На станцию отбора будет поступать последовательность коробок, которые нужно будет открывать, разрезая картонную упаковку, вынимать оттуда отдельные предметы и класть в кузова подходящих один за другим миниботов. Эти небольшие «самосвалы» поедут по сложным траекториям к пунктам назначения – пластмассовым контейнерам заказов, расположенным в ряд на нескольких ярусах, – и по приезде сбросят груз в нужный контейнер.


Рис. 12. Пример перепланировки палеты с 17 отсутствующими упаковками: пропуски (изображение слева) обозначены знаком х, справа – измененная палета


Модуль штучного отбора будет находиться внутри стеллажей хранения и, следовательно, будет крайне ограничен в объеме. Конвейеры, лифты, дорожки для миниботов, станции отбора, переходы между ярусами необходимо втиснуть в узкое пространство, что усложняет конструкцию и ухудшает эргономику. Миниботам придется ездить не только по плоским поверхностям, но и по наклонным переходам между несколькими уровнями, а значит, емкость батарей необходимо увеличить. Изначально красивая картинка воплотилась, как это случалось не раз в истории «Симботика», в запутанный клубок со множеством движущихся плохо скоординированных между собой объектов.

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

* * *

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

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

Наши боты не были по-настоящему автономными транспортными средствами. Бóльшую часть времени они довольно точно знали, где находятся в пространстве склада, благодаря комбинации датчиков на борту. Но они не имели понятия о других ботах или общей топологии яруса хранения. Их движения нужно было планировать в мельчайших деталях и задавать с центрального компьютера, причем сразу для всех ботов. Одновременный расчет траекторий для всех ботов – а их на одном ярусе хранения в наших системах насчитывалось, как правило, немногим менее полусотни – естественно, крайне сложная задача, и в текущем варианте нашего софта она была упрощена. На каждой итерации маршрутизатора планировалась только часть траектории, до пересечения с уже запланированными траекториями других ботов. Например, один двигался по своей полосе в зоне развязки (перпендикулярно аллеям хранения), а другой выезжал из аллеи, пересекая эту полосу. Если выезд бота из аллеи планировался первым, то бот, движущийся по полосе, получал разрешение доехать только до перекрестка с этой аллеей. Если бот из аллеи успевал выехать на другую полосу и маршрутизатор успевал дать первому боту «зеленый свет» на дальнейший путь, то бот мог проехать без остановки, хотя, скорее всего, притормаживая. Но часто ему приходилось останавливаться в конце разрешенной части траектории, что замедляло работу всей системы.

Еще до того, как стал руководить группой маршрутизации ботов, я пришел к выводу, что алгоритм нужно будет изменить радикально. Я предложил идею, основанную на другом принципе. Траектории ботов не следует планировать короткими, не пересекающимися в пространстве отрезками. Весь путь по зоне развязки (там, где боты могли сталкиваться друг с другом) нужно планировать одним куском, без остановки – например, выезд из аллеи хранения, поворот, отрезок пути по полосе движения, еще один поворот, пересечение зоны развязки и въезд в драйввей. В таком случае траектории двух ботов могут пересекаться в пространстве. Избегать столкновений при этом можно не разбивкой траектории на короткие промежутки, а расписанием движения – задержкой начала движения одного бота относительно другого таким образом, чтобы точку пересечения двух траекторий в пространстве боты проходили с разницей в считаные секунды.

Через несколько месяцев я сделал прототип алгоритма «упаковки траекторий», и мы начали воплощать его в рабочий код. Проект получил название Time-Space Reservations Router (TSR, «Маршрутизатор резервирования пространства и времени») и вскоре стал важнейшей задачей для софтверного отдела «Симботика». Развивался он очень непросто. Мы столкнулись со множеством неожиданностей и подводных камней, связанных с динамикой и методами управления ботами, о которых не знали ни я, ни команда маршрутизации на старте проекта. Но мы двигались вперед. На начало 2023 г. проект TSR был близок к первой реализации, и мы начали испытывать боты, двигающиеся по непрерывным траекториям. Но это – уже другая глава, выходящая за пределы данного повествования.

* * *

С момента создания «Симботик» оставался частной компанией в полном владении одного человека – Рика. Ходили слухи, что «Волмарт» хотел купить «Симботик», но Рик не желал терять контроль над компанией, хотя ее суммарные убытки за почти пятнадцать лет приближались к миллиарду долларов. Рик не подтверждал это прямо, но иногда в разговорах в узком кругу намекал: это предположение недалеко от истины.

«Симботик» оставался частным не только по форме собственности. После некоторых попыток присутствия в СМИ в период гендиректорства Баума и, после двухлетнего перерыва, Гахагана степень публичности компании оставалась близкой к нулю. Вебсайт практически не менялся годами, а когда обновлялся, его стиль выглядел уже устаревшим. В интернете о «Симботике» даже в 2020-м было очень мало информации. Мы уже давно работали с «Волмартом» и в ближайшее время планировали начать строить для них десятки больших новых систем плюс, скорее всего, несколько новых систем для «Албертсона» и других заказчиков. Но в сети про совместный бизнес «Волмарта» и «Симботика» нельзя было найти почти ничего – только короткие заметки про «экспериментальную» систему в Бруксвилле. В общем, «Симботик» оставался в глубокой тени или, как иногда это называют в США, в режиме невидимки (in stealth mode).