*Автор на текста – Тихомир Георгиев, Engineering Manager, Ocado Technology
Общо 1 000 000 артикула от над 50 000 различни типа, обработени за 1 ден и то с точност от 99%. Всичко това с 5 пъти по-малко отпадъци, в сравнение със средното за индустрията. Площ от 11 футболни игрища, взети заедно, в които роботиката, изкуственият интелект и софтуерното инженерство са в своето царство. Това е реалността, в която живеем и работим като част от Ocado Technology. В сърцето на София, правим новите стъпки по пътя на иновацията и развитието на сектора.
Избрахме да осъществим радикална промяна в сегмента на онлайн търговията с хранителни стоки и да намерим напълно нов подход за управление на наличностите, физическа манипулация и транспорта им. Така разработихме Ocado Smart Platform (OSP). Тя включва технологии за автоматизация на всички нива в процеса – от предвиждането на нуждите, пълното управление на веригата на доставки и управление на наличностите, до начина, по който всеки наш краен потребител прави своите поръчки по интернет. Ето и някои от нещата с които се сблъскахме по пътя на промяната:
- В един автономен склад обемът на обменяните данни и броят на взети решения е много голям. С повишаването на точките на вземане на решения и точките на едновременна промяна, цялостният процес става трудно предвидим. Например управлението и координирането на 2000 бота, движещи се с 4 м/с и разминаващи се на разстояние от 5мм, може да бъде истинско предизвикателство.
- Разнообразието на стоки (към момента 50,000+ артикула) и техните физически характеристики (размер, форма, цвят, текстура, твърдост, тегло, температура на съхранение) е толкова голямо, че конвенционалните подходи за физическа манипулация в такъв мащаб стават напълно неподходящи. Предварително зададени траектории и обичайно повтарящи се действия не са достатъчно гъвкави.
В тази статия накратко ще ви споделим някои от подходите и средствата, които използваме в Ocado, като част от ежедневната си работа, за да се справим с постоянните и интересни предизвикателства в света на модерните автоматизирани складове.
КАК ПРАВИМ ВСИЧКО ТОВА ВЪЗМОЖНО?
Изградихме платформа, която комбинира над 2 000 бота, PLC (Programmable logic Controller) контролери, роботски ръце, голям брой сензори за различни физични характеристики (температура, налягане, приложена сила, маса, цвят, скорост и др.), софтуерни системи за управление в реално време, системи базирани на изкуствен интелект и компютърно зрение. Всичко това свързахме в един постоянно развиващ се автономен организъм. Има подходи, които много ни помагат да се справим с тази комплексност.
Симулация (дигитални двойници) и предвиждащи алгоритми
Основните процеси в склада имат своята виртуална реплика. Понякога тези реплики имат и визуализация, така че да можем да видим как ще изглежда дадено действие, а понякога те са фокусирани върху цифрова репрезентация. Като изследваме множество различни сценарии с различни вероятности и анализираме работата на двойниците, ние можем да изберем най-добрата конфигурация, с която да заработят физическите устройства.
По-долу са само част от въпросите, на които можем да намерим точен отговор, благодарение на анализа на данни от нашите дигитални двойници и предвиждащи алгоритми.
● Как ще се движи роботската ръка при различни входни параметри на продукта (форма, размер) и при появата на различни препятствия?
● Кои маршрути можем да изберем за оптимално разпределение на доставките до дома на нашите клиенти?
● Кои стоки и в какви наличности е важно да поръчаме и в кой момент, така че продуктите ни да са винаги пресни и винаги бързо да достигат до своите получатели?
● Какво да предложим на страниците на нашия интернет магазин, като персонализирано предложение за всеки наш клиент?

Разпределени автономни системи
Вместо монолитните архитектури, заложихме на такива, базирани на микросървиси. Нашият фокус на работа се измести към координационните и синхронизационни механизми и към модулите за вземане на автономни решения. Софтуерните възли (нодовете) комуникиращи по gRPC протокол, REST API или WebSockets ни помагат да правим бързи промени и в същото време да поддържаме непрекъснатост на услугите.
Огромна част от софтуера в Ocado живее върху виртуализирана инфраструктура, като почти всичко е контейнеризирано, а след това контейнерите оркестрираме в Kubernetes клъстъри или в ECS. Това прави цялото решение по-гъвкаво, подсигурява бързо възстановяване на услугите при проблем или обновяване, като също така включва динамично хоризонтално и вертикално скалиране спрямо натоварването.

Симбиозата човек, софтуер и хардуер
В повечето индустрии от близкото минало наблюдавахме добре обособени “острови” за машини, управлявани от специфични за тях микроконтролери и изпълняващи предварително зададени повтарящи се операции, включвани и изключвани от оператори. В съвременните складове на Ocado роботите, хората и софтуерните приложения са до такава степен свързани, че могат да си помагат и да се допълват. Това, което е трудно за изпълнение от даден робот, може да бъде изпълнено от човек и обратното.
Операторите в склада знаят състоянието на приложенията чрез системите за мониторинг и известяване, а BigQuery облачните бази се захранват с огромно количество логове, които да се анализират допълнително. Отчитаме статусите от нормалната работа на различните сървиси, също и грешките и ранните предупреждения, които възникват. Така можем да анализираме данните от всеки процес и неговите текущите минали и бъдещи състояния. Алгоритмите търсят корелация и причинно-следствени връзки. Така, когато добре сме дефинирали целта, ние намираме подходящия начин да вървим към нея.

Програмните езици от високо ниво
Благодарение на дългосрочната стратегия на Ocado да внедрява успешно всички новости в света на софтуерното инженерство, складовете ни вече се управляват предимно от микросървиси, писани на Java, Python, GoLang и C++. Абстракциите, които сме изградили и които постоянно развиваме, ни дават възможност да говорим еднакво ефективно, както с огромните бази от данни с техническа и бизнес информация, така и с дигиталните двойници на нашите роботски решения.
КАКВА ЧАСТ ОТ ИНОВАЦИИТЕ В OCADO СЕ РАЗВИВАТ В БЪЛГАРИЯ?
В офиса ни в София вече работим усилено по софтуера за симулация, софтуера за превантивна диагностика и сервизиране на ботовете, уеб платформата за онлайн доставки, роботизираните ръце за селектиране и опаковане на крайни поръчки и др.
Преди няколко години положихме първите стъпки за това български инженери да започнат работа по стратегическите продукти за компанията. Вече сме 140 човека и активно търсим нашите нови колеги сред хората, които имат жив интерес и знания да разработват висококачествен софтуер в сферата на автоматизацията и роботизацията. Това са хора, които вярват, че последните научни изследвания и иновации в сферата на софтуерното инженерство и роботиката, могат да се развиват успешно и в България.
Ако искате да научите повече за дейността и отворените позиции на Ocado Technology в България, можете да разгледате профила им в нашия job board или да прочетете неотдавнашното ни интервю с Павел Ненов, тийм лийд в един от ключовите им продукти.
София