Как автоматический склад узнаёт, что робот забрал нужный контейнер

Склад подтверждает захват только тогда, когда совпали три независимых факта: робот приехал в нужную ячейку, считал метку нужного контейнера и датчик на захвате показал, что груз реально поднялся. Одной идентификации ячейки мало — она говорит лишь о том, куда приехал робот, но не о том, что там лежал нужный контейнер и что он пошёл вверх. Совпадение всех трёх проверок и есть момент, когда контейнер помечают «взят», а ячейку — «свободна».

Как кодируются ячейка и контейнер: адресация, маркировка и привязка в WMS

У каждой ячейки есть уникальный адрес — например, ряд, секция, уровень и позиция вроде A-14. На раме стеллажа этот адрес закреплён физически: QR-кодом или штрихкодом, реже RFID-меткой. Робот, подъезжая, считывает метку и сверяет её с адресом из задания. Так система ловит случай, когда робот встал не туда из-за сбоя навигации.

У контейнера свой идентификатор — K-2087 на борту в виде штрихкода, QR или RFID-метки. В учётной системе, которую на складах называют WMS (система управления складом), хранится запись о размещении: какой контейнер в какой ячейке числится. Когда приходит задание «взять K-2087 из A-14», система сначала сверяет, что в её учёте K-2087 действительно стоит в A-14. Если учёт и задание расходятся, робот не выезжает — иначе он приедет в пустую или чужую ячейку.

Запись в базе — это ещё не физическое положение контейнера. Контейнер могли переставить вручную, поставить криво или перепутать при приёмке. Поэтому учётная привязка «контейнер ↔ ячейка» нужна как исходная гипотеза, а не как доказательство. Точка сверки появляется на каждом цикле: робот считывает метку на месте и подтверждает или опровергает запись.

Как робот находит ячейку: навигация и позиционирование до захвата

До захвата робот должен физически выйти на позицию, с которой видно метку ячейки и возможен захват контейнера. Автоматические тележки AGV и AMR обычно ориентируются по лазерным отражателям, QR-меткам на полу или карте, построенной по данным сканеров. Шаттлы в стеллажных системах AS/RS едут по рельсам внутри стеллажа и адресуются по уровням и секциям.

Механизм навигации даёт допуск — робот останавливается не идеально точно. Поэтому перед захватом нужна повторная верификация: бортовая камера или сканер считывает метку ячейки, и система сверяет её с заданием. Если метка не читается, робот не начинает захват вслепую. Он повторяет считывание, меняет ракурс или смещается на небольшую величину, а после нескольких неудач останавливается и передаёт задачу оператору.

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

Подтверждение захвата и подъёма: сенсоры, которые доказывают, что контейнер взят

Считать метку можно и не подняв контейнер — например, если захват прошёл мимо, а метка попала в поле зрения камеры. Поэтому нужен отдельный сигнал о том, что груз реально пошёл вверх. Его дают датчики наличия груза на захвате: оптические, индуктивные или механические концевики. Дополнительно применяют контроль высоты подъёма и сравнение фактической массы с ожидаемой.

Логика такая: команда «поднять» ушла, а датчик подтверждает, что на захвате появился груз и он поднялся на нужную высоту. Если датчик молчит, контейнер, вероятно, стоит криво или захват прошёл мимо. Задание не закрывается, и система не считает контейнер взятым.

Сильная схема добавляет повторное считывание метки уже после захвата. Это подтверждает, что робот взял именно тот контейнер, а не соседний. И только после сигнала от робота система управления оборудованием (WCS) и WMS дают разрешение на движение. До этого момента робот стоит на месте — так исключается перемещение по складу с неподтверждённым грузом.

Типичные отказы, которые ловят эти проверки: контейнер захвачен частично, захвачен соседний контейнер, ячейка оказалась пустой вопреки учёту, в ячейке двойное размещение — два контейнера вместо одного.

Обработка расхождений: что происходит, если идентификаторы или датчики не совпали

Расхождения делят по типу, потому что реакция на них разная. Пустая ячейка требует сверить учёт. Чужой контейнер трогать нельзя — его не переставляют наугад, а зовут оператора. Отсутствие сигнала подъёма даёт одну повторную попытку захвата, после чего робот останавливается. Единое «ошибка» здесь не работает: робот не должен сам решать, что делать с чужим грузом.

Автоматические действия обычно такие: повторное сканирование, возврат контейнера на место, парковка робота в безопасной зоне, блокировка ячейки в WMS до выяснения. Затем эскалация к оператору — задача на ручную инспекцию с фотофиксацией и протоколом события с временными метками. После разбора учётные данные корректируют, чтобы ошибка не размножилась по следующим заданиям.

Полезно смотреть на метрики качества: долю успешных циклов с первого раза, частоту расхождений по типам и время на разрешение инцидента. Если растёт доля «не читается метка», проблема может быть в загрязнении или освещении, а не в роботе.

Учебный пример: как выглядит цепочка на одном задании

Задание: взять контейнер K-2087 из ячейки A-14. Шаг 1 — система сверяет учёт: K-2087 числится в A-14, совпало. Шаг 2 — робот приезжает и считывает метку: K-2087, совпало. Шаг 3 — датчик захвата фиксирует груз при подъёме, сигнал есть. Все три проверки пройдены: контейнер помечают «взят», ячейку A-14 — «свободна». Если бы на шаге 2 считалась метка K-2091, система остановила бы задание как «чужой контейнер» и не стала бы его переставлять.

Практический чек-лист: как проверить, что цепочка подтверждения работает

Проверяйте систему не по описанию, а по факту — на реальных ячейках и контейнерах.

  • Убедитесь, что каждая ячейка и каждый контейнер имеют физическую метку и она читается при рабочем освещении и загрязнении.
  • Проверьте, что подтверждение подъёма идёт от датчиков, а не только от статуса команды в интерфейсе.
  • Прогоните сценарии расхождений намеренно: подмените контейнер, закройте метку, создайте двойное размещение.
  • Проверьте, что инцидент попадает в журнал и блокирует ячейку в WMS.
  • Сверьте требования к интеграции WMS и WCS с документацией производителя, а не с пересказами.
Расхождение Что показывает система Действие
Метка ячейки не читается Нет подтверждения адреса Повтор, смена ракурса, затем остановка
Считана чужая метка «Чужой контейнер» Стоп, без перестановки, вызов оператора
Нет сигнала подъёма Груз не подтверждён Одна повторная попытка, затем стоп
Ячейка пуста вопреки учёту Нет контейнера Повторное сканирование, сверка учёта

Можно ли обойтись одной идентификацией ячейки?

Нет. Адрес подтверждает только место, куда приехал робот. Он не доказывает, что в ячейке лежал нужный контейнер и что тот поднялся. Без метки контейнера и сигнала подъёма склад будет считать взятым груз, который остался на месте.

Зачем считывать метку контейнера повторно после захвата?

Чтобы убедиться, что робот взял именно тот контейнер, а не соседний. Первое считывание подтверждает, что нужный объект в ячейке, повторное — что он на захвате.

Что делает робот, если увидел чужой контейнер?

Останавливается и не переставляет его. Система фиксирует расхождение и передаёт задачу оператору на ручную инспекцию.

Как понять, что склад ловит не все ошибки?

Проверьте, есть ли отдельные сигналы по адресу, метке и подъёму. Если подтверждение строится только на статусе команды или только на считывании метки, часть отказов — пустая ячейка, частичный захват, чужой контейнер — останется незамеченной.