Выбрать главу

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

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

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

* * *

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

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

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