Управление парком роботов Живая модель

Вы управляете площадкой склада, где около 24 автономных мобильных роботов (AMR) возят контейнеры из стеллажных проходов к четырём ячейкам упаковки с коботами. Каждый заказ — это поездка на 240 м (200 м по проходам только для роботов, 40 м по общей зоне, где работают люди) и комплектация в ячейке. Модель поминутно рассчитывает очереди, заторы, взаимные блокировки, тормозные пути, энергию батарей и мощность зарядных станций, а также влияние версий ПО на остановки — по опубликованным стандартам и учебным формулам. Это модель принципов работы: она не запускает ПО роботов, а числа обобщённые и не относятся ни к какому продукту. Только учебная симуляция — реальные объекты следуют собственной оценке рисков.

Чему вы научитесь

Симулятор

Время 0 мин
Роботов в работе 24 · Упакованные контейнеры 360/h · Время выполнения заказа 0,0 min · Доступные роботы 100% · Зона A (только роботы) 1,5 m/s · Общая зона 1,0 m/s (Δ 0,27 m) · Свободное (локальное объезжание), Роботы во взаимной блокировке 0 · Ячейки коботов 0%, Человек в ячейке кобота 0 · Зарядные станции 0/6 (Зарядная станция не работает 0), Роботы в очереди к зарядке 0 · Средний заряд батарей 67% · v1 24, v2.0 0, v2.1 0 · Остановки на робото-час, новейшая сборка 0,0/h, Остановки на робото-час, остальной парк 0,0/h⁨24⁩ · ⁨360/h⁩ · ⁨Роботы⁩························⁨✓ 1,5 m/s⁩⁨Зона A (только роботы)⁩⁨людей нет⁩⁨⚠ 1,0 m/s⁩ · ⁨Δ 0,27 m⁩⁨Общая зона⁩⁨⛔ 0⁩⁨Свободное (локальное…⁨0%⁩ · ⁨Ячейки коботов⁩⚙⚙⚙⚙⁨⚡ 0/6⁩ · ⁨⌛ 0⁩ · ⁨Зарядные станции⁩······⁨ПО: v1 · v2.0 · v2.1⁩⁨v1 24⁩ · ⁨v2.0 0⁩ · ⁨v2.1 0⁩⁨0,0/h новейшая⁩⁨0,0/h остальные⁩
  • Едет с заданием
  • У ячейки кобота
  • Ждёт ячейку
  • Простаивает
  • Заряжается
  • Ждёт зарядку
  • Обновляет ПО
  • Остановлен (связь или локализация)
  • Во взаимной блокировке
  • Разряжен, на буксире
  • Зона без людей
  • Люди в зоне, скорость в пределах поля
  • Слишком быстро для поля там, где люди
  • Человек в ячейке кобота
  • Зарядная станция не работает

Управление

Резервные роботы выходят из депо; припаркованные роботы не потребляют энергию. Каждый робот в работе стоит один робото-час в час.

Зона A закрыта для людей, поэтому роботы могут ездить быстро. Если туда входят люди, скорость снова должна укладываться в поле обнаружения персонала.

Здесь всегда работают люди. Тормозной путь при этой скорости должен укладываться в поле обнаружения персонала длиной 1,3 м.

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

Сразу освобождает всех заблокированных роботов. Стоит 2 операторо-минуты на каждого освобождённого робота; не мешает образованию новых взаимных блокировок.

Робот, завершивший задание с таким или меньшим зарядом, встаёт в очередь к зарядной станции. Чем ниже порог, тем полнее используется батарея, но робот, ждущий слишком долго, может разрядиться полностью.

Зарядные станции дают полную мощность примерно до 70 %; выше ток постепенно снижается. Остановка зарядки раньше быстрее освобождает станцию.

Роботы без задания едут на любую свободную зарядную станцию, а не простаивают, и снова уходят в работу, как только появляются ожидающие заказы и их заряд на 20 % выше порога отправки на зарядку.

Скорость инструмента, пока в ячейке никого нет. Контейнер из 10 позиций обрабатывается за 25 с при 1 м/с.

Ограничение мощности и силы: рука, прижатая к контейнеру, не должна ощущать больше 140 Н (квазистатический предел, применяемый с запасом), что здесь допускает не более 0,67 м/с.

При перемещении ползунка новейшая опубликованная сборка разворачивается на эту долю парка (первые роботы по порядку); остальные работают на v1. Сборка, опубликованная позже, устанавливается только когда вы снова сдвинете ползунок. Каждый робот, меняющий версию, выбывает из работы на 4 минуты.

Показатели

Упакованные контейнеры
360/h
норма
Время выполнения заказа
0,0min
норма
Доступные роботы
100%
норма
Запас остановки там, где люди
0,27m
норма
Ожидающие заказы0
Запас скорости кобота (предел мощности и силы)0,17 m/s
Средний заряд батарей67 %
Минимальный заряд батареи42 %
Роботы в очереди к зарядке0
Роботы на зарядке0
Разряженные роботы (на буксире)0
Роботы во взаимной блокировке0
Возникшие блокировки0
Навигационные остановки (связь или локализация)0
Остановки на робото-час, новейшая сборка0,0 /h
Остановки на робото-час, остальной парк0,0 /h
Парк на новейшей сборке0 %
Парк на v2.00 %
Роботы в обновлении0
Заданная скорость в зоне A1,5 m/s
Время операторов на роботов0 min
Использовано робото-часов0 h
Роботов в работе24
Роботы в движении0
Фактическая скорость в зоне A1,50 m/s
Ожидание на перекрёстке0,0 s
Потребление парка0,00 kW
Отданная мощность зарядки0,00 kW
Занятость ячеек коботов0 %

Динамика

Упакованные контейнеры: — /h6000

Кризисные сценарии

Уровень 1 · Половина зарядных станций отказывает перед пиком заказов

Утренняя смена, 24 робота в работе, около 3,7 заказа в минуту. После напряжённой ночи парк начинает смену со средним зарядом 60 %. На 15-й минуте электрическая неисправность выводит из строя четыре из шести зарядных станций до конца смены. На 90-й минуте начинается пик заказов (+25 % на два часа). Поддерживайте поток заказов, войдите в пик с заряженным парком, не допускайте полной разрядки ни одного робота и уложитесь в бюджет робото-часов смены.

  • Среднее время выполнения во время и после пика ≤ 3,5 мин
  • Средний заряд парка не ниже 49 % к началу пика
  • Ни один робот не разряжается полностью
  • Не более 97 робото-часов за смену
  • Тормозной путь всегда внутри поля там, где люди
  • Кобот никогда не быстрее предела мощности и силы, когда внутри человек

Уровень 2 · Проход закрыт, роботы встали, а бригада входит в зону A

Около 4,2 заказа в минуту, 24 робота, управление движением — свободное. На 10-й минуте один проход закрывают на перестановку стеллажей: меньше перекрёстков, больше встреч лоб в лоб и никаких объездов. На 60-й минуте бригада обслуживания входит в зону A только для роботов на 40 минут. Поддерживайте движение заказов при малом времени операторов, держите каждый тормозной путь внутри поля безопасности там, где есть люди, и снова гоняйте зону A на полной скорости, как только она освободится.

  • Среднее время выполнения ≤ 6 мин
  • Зона A снова в среднем на ≥ 1,4 м/с после ухода бригады
  • Возникает не более 1 взаимной блокировки
  • Не более 20 операторо-минут на роботов
  • Тормозной путь всегда внутри поля там, где люди
  • Кобот никогда не быстрее предела мощности и силы, когда внутри человек

Уровень 3 · Канареечный выпуск нового навигационного ПО

Ночью проходы перестроили, и роботы на текущем ПО (v1) там чаще теряют своё положение; каждая потеря требует оператора. Релиз v2.0 это исправляет и уже работает на 10 % парка как канарейка. Дайте канарейке достаточно времени, чтобы её оценить, сравните её с остальным парком, решите, расширять или откатывать, и переведите парк на хорошую сборку — поэтапно, не выводя из работы слишком много роботов одновременно.

  • Канарейка работает первые 12 минут (≥ 5 % парка на v2.0)
  • Уход с дефектной v2.0 с 30-й по 49-ю минуту (в среднем ≤ 1 % парка на ней)
  • Хотфикс не более чем на 20 % парка в первые 10 минут
  • Хотфикс выкачен быстро: после публикации на нём в среднем ≥ 55 % парка
  • Не менее 90 % парка на новейшей сборке в конце
  • Не менее 60 % роботов доступно в любой момент
  • Тормозной путь всегда внутри поля там, где люди
  • Кобот никогда не быстрее предела мощности и силы, когда внутри человек

Основа — модель, стоящая за числами

Все зависимости, которые использует симулятор, с источниками. Константы, помеченные как допущения, — иллюстративные калибровки.

Закон Литтла: все ещё не упакованные заказы — ожидающие или уже едущие на роботе, — делённые на темп фактической упаковки контейнеров, дают время выполнения заказа.
lead time W = L / X, L = orders waiting + orders on a robot, X = totes packed per minute (smoothed, τ = 10 min)[5]
Скорость падает, когда проходы делит всё больше роботов (линейная зависимость скорости от плотности по Гриншилдсу).
v_eff = v · max(0.1, 1 − n_moving / N_jam), N_jam = 120 robots (80 with an aisle closed)[7][9]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Без резервирования два робота могут ждать участок, занятый другим, — круговое ожидание. Число встреч растёт пропорционально квадрату числа едущих роботов.
free traffic: P(new deadlock in a minute) = 1 − e^(−κ·n_moving²/n_I), κ = 0.00001 (× 300 with an aisle closed, n_I = 6 → 4); a robot behind joins with p = 0.5 (≤ 8); the fleet manager re-plans with p = 0.2/min (0.03/min with no detour)[8][10]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Резервирование зон: робот въезжает, только когда зоны впереди зарезервированы за ним (все сразу, в фиксированном порядке), что устраняет круговое ожидание; тогда каждый перекрёсток ведёт себя как одноканальная очередь с фиксированным временем проезда.
zone reservation: a robot enters only when the zones ahead are granted to it → no circular wait; each crossing W = ρτ / (2(1 − ρ)), ρ = λ_I·τ, τ = 2 s, 6 crossings per task[8][6][9]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Там, где могут быть люди, тормозной путь — путь за время реакции плюс торможение — должен укладываться в поле обнаружения персонала.
d_stop = v·t_r + v²/(2a) + C ≤ F (t_r = 0.3 s, a = 0.8 m/s², C = 0.1 m, F = 1.3 m ⇒ v ≤ 1.17 m/s where people can be)[1][2]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Ограничение мощности и силы: наибольшая скорость, при которой контакт с рукой остаётся ниже допустимой силы, — по приведённой массе руки и робота и жёсткости руки. Квазистатический предел применяется даже к кратковременному контакту, что идёт в запас.
v ≤ F / √(μ·k), μ = (1/m_H + 1/m_R)⁻¹, m_R = M/2 + m_L; hand: F = 140 N (quasi-static limit, used conservatively), k = 75 N/mm, m_H = 0.6 kg; M = 24 kg, m_L = 3 kg ⇒ v ≤ 0.67 m/s[3][4]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Контейнер с позициями требует времени захвата плюс два движения руки на каждую позицию; при человеке внутри кобот работает с коллаборативной скоростью. Роботы обслуживаются в порядке прибытия к ячейкам, посекундно внутри каждой минуты.
tote time = 10 items × (1.5 s + 2 × 0.5 m / v_cobot); v_cobot = collaborative speed while a person is in the cell; 4 cells, served in order of arrival within the minute[3]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Мощность на движение: постоянная нагрузка электроники, сопротивление качению и энергия торможения, теряемая при каждой остановке и троганье.
P = 60 W + C_rr·m·g·v/η + 0.03/m · v · ½mv²·(1 − r)/η (C_rr = 0.012, m = 500 kg, η = 0.75, r = 0.5)[12]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Зарядные станции дают полную мощность примерно до 70 % заряда, затем ток снижается (сначала постоянный ток, затем постоянное напряжение).
P_charge = 0.8 kW up to 70 % SoC, then × (1 − 0.9·(SoC − 70)/30); battery 0.8 kWh; stranded at 1 %[11][10]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Робот останавливается, если связь с менеджером парка молчит дольше его сторожевого таймера; более короткий таймер ловит гораздо больше коротких провалов Wi-Fi.
P(link silent > W in a robot-minute) = 0.224·e^(−W/0.1 s); watchdog W: v1 0.5 s, v2.0 0.15 s, v2.1 0.5 s; stop 2 min[13]Значения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.
Канареечное сравнение: остановки на робото-час у роботов на новейшей сборке против остального парка.
stops per robot-hour, canary vs control: 60·stops / robots (smoothed τ = 10 min); update or rollback = 4 min out of service[13]
Прочие константы этой модели
task 200 m in zone A + 40 m in the shared area · 6 intersections · 4 cobot cells, a person inside 25 % of minutes · 6 chargers · shift-start charge stratified over mean ± 27.5 % · v1 mislocalises 0.6 % per driving minute in re-racked aisles (others 0.04 %), 6-min stop + 3 operator-min · clearing a deadlock 2 operator-min per robot · tow 15 operator-minЗначения условные и не относятся к реальному объекту или продукту. На реальных объектах поля, скорости и пределы задают по собственной оценке рисков и данным производителя.

Случайность: генератор mulberry32 с seed; используемые распределения — равномерное, экспоненциальное (обратная CDF), нормальное (Бокса — Мюллера), Пуассона (Кнут). Seed показан и им можно делиться.

Источники

  1. ISO 3691-4:2023 Industrial trucks — Safety requirements and verification — Part 4: Driverless industrial trucks and their systems (personnel detection, zones, speed) — ISO/TC 110/SC 2, 2023
  2. ISO 13855:2024 Safety of machinery — Positioning of safeguards with respect to the approach of the human body (minimum distance S = K·T + C; replaces the 2010 edition) — ISO/TC 199, 2024
  3. ISO/TS 15066:2016 Robots and robotic devices — Collaborative robots (Annex A: body-region limits; transient contact speed v = F/√(μk), μ = (1/m_H + 1/m_R)⁻¹, m_R = M/2 + m_L) — ISO/TC 299, 2016
  4. ISO 10218-2:2025 Robotics — Safety requirements — Part 2: Industrial robot applications and robot cells (collaborative applications; takes over the ISO/TS 15066 body-region data) — ISO/TC 299, 2025
  5. J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961
  6. M. Harchol-Balter — Performance Modeling and Design of Computer Systems (M/G/1 Pollaczek–Khinchine mean wait; M/D/1) — Cambridge University Press, 2013
  7. B. D. Greenshields — A Study of Traffic Capacity (linear speed–density relation) — Highway Research Board Proceedings 14:448–477, 1935
  8. E. G. Coffman, M. Elphick, A. Shoshani — System Deadlocks (the four necessary conditions; prevention by ordered resource allocation) — ACM Computing Surveys 3(2):67–78, 1971
  9. I. F. A. Vis — Survey of research in the design and control of automated guided vehicle systems (fleet sizing, zone control, deadlocks, battery management) — European Journal of Operational Research 170(3):677–709, 2006
  10. M. De Ryck, M. Versteyhe, F. Debrouwere — Automated guided vehicle systems, state-of-the-art control algorithms and techniques (traffic, deadlock avoidance, battery charging strategies) — Journal of Manufacturing Systems 54:152–173, 2020
  11. BU-409: Charging Lithium-ion (constant current to about 70 % state of charge, then constant voltage while the current tapers) — Battery University
  12. T. D. Gillespie — Fundamentals of Vehicle Dynamics (rolling resistance F = C_rr·m·g; kinetic energy lost in braking) — SAE International, 1992
  13. The Site Reliability Workbook — Ch. 16 Canarying Releases (canary vs control, multi-stage rollout, rollback) — Beyer, Murphy, Rensin, Kawahara, Thorne (eds.), O'Reilly, 2018

Кто этим занимается профессионально

Образовательная модель — не для принятия эксплуатационных решений. Реальные объекты калибруют каждую константу под своё оборудование и данные.