Склад подтверждает захват только тогда, когда совпали три независимых факта: робот приехал в нужную ячейку, считал метку нужного контейнера и датчик на захвате показал, что груз реально поднялся. Одной идентификации ячейки мало — она говорит лишь о том, куда приехал робот, но не о том, что там лежал нужный контейнер и что он пошёл вверх. Совпадение всех трёх проверок и есть момент, когда контейнер помечают «взят», а ячейку — «свободна».
Как кодируются ячейка и контейнер: адресация, маркировка и привязка в 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 с документацией производителя, а не с пересказами.
| Расхождение | Что показывает система | Действие |
|---|---|---|
| Метка ячейки не читается | Нет подтверждения адреса | Повтор, смена ракурса, затем остановка |
| Считана чужая метка | «Чужой контейнер» | Стоп, без перестановки, вызов оператора |
| Нет сигнала подъёма | Груз не подтверждён | Одна повторная попытка, затем стоп |
| Ячейка пуста вопреки учёту | Нет контейнера | Повторное сканирование, сверка учёта |
Можно ли обойтись одной идентификацией ячейки?
Нет. Адрес подтверждает только место, куда приехал робот. Он не доказывает, что в ячейке лежал нужный контейнер и что тот поднялся. Без метки контейнера и сигнала подъёма склад будет считать взятым груз, который остался на месте.
Зачем считывать метку контейнера повторно после захвата?
Чтобы убедиться, что робот взял именно тот контейнер, а не соседний. Первое считывание подтверждает, что нужный объект в ячейке, повторное — что он на захвате.
Что делает робот, если увидел чужой контейнер?
Останавливается и не переставляет его. Система фиксирует расхождение и передаёт задачу оператору на ручную инспекцию.
Как понять, что склад ловит не все ошибки?
Проверьте, есть ли отдельные сигналы по адресу, метке и подъёму. Если подтверждение строится только на статусе команды или только на считывании метки, часть отказов — пустая ячейка, частичный захват, чужой контейнер — останется незамеченной.