🤖 Operação de frotas de robôs Modelo em tempo real
Gere o piso de um armazém onde cerca de 24 robôs móveis autónomos (AMR) transportam caixas dos corredores de armazenagem para quatro células de embalagem com cobots. Cada encomenda é um percurso de 240 m — 200 m por corredores só para robôs, 40 m pela área partilhada onde trabalham pessoas — e uma recolha numa célula. O modelo calcula filas, congestionamento, bloqueios mútuos, distâncias de paragem, energia das baterias e potência dos carregadores, e o efeito das versões de software nas paragens, minuto a minuto, a partir de normas publicadas e fórmulas de manual. É um modelo de princípios de operação: não executa software de robôs, e os números são genéricos, não os de nenhum produto. Apenas simulação educativa — os locais reais seguem a sua própria avaliação de riscos.
O que vai aprender
Porque é que os carregadores, e não os robôs, são muitas vezes o estrangulamento — e como o carregamento oportunista e carregar só até ao fim da fase de corrente constante acumulam energia antes de um pico.
Como se formam bloqueios mútuos nos cruzamentos, porque é que reservar as zonas à frente antes de entrar os evita, e porque é que um robô nunca deve andar mais depressa do que o seu campo de segurança consegue pará-lo onde há pessoas.
Como uma implementação canário compara alguns robôs atualizados com o resto da frota, quando reverter, e porque é que as atualizações saem por vagas.
Simulador
Tempo 0 min
▶Em circulação com tarefa
⚙Numa célula cobot
⇥À espera de célula
·Inativo
⚡A carregar
⌛À espera de carregador
↻A atualizar software
!Parado (ligação ou localização)
⛔Preso em bloqueio mútuo
∅Sem bateria, rebocado
✓Zona sem pessoas
⚠Pessoas na zona, velocidade dentro do campo
⛔Demasiado rápido para o campo onde há pessoas
☺Pessoa numa célula de cobot
✕Carregador fora de serviço
Controlos
Os robôs de reserva são ativados no depósito; os robôs estacionados não consomem energia. Cada robô em serviço custa uma hora-robô por hora.
A zona A está vedada a pessoas, por isso os robôs podem andar depressa. Se entrarem pessoas, a velocidade tem de voltar a caber no campo de deteção de pessoas.
Aqui há sempre pessoas a trabalhar. A distância de paragem a esta velocidade tem de caber dentro do campo de deteção de pessoas de 1,3 m.
Livre: os robôs apenas se desviam uns dos outros localmente — rápido, mas dois ou mais podem bloquear-se de vez. Reserva de zona: um robô só entra num cruzamento quando as zonas à sua frente estão reservadas para ele — sem bloqueios mútuos, uma curta espera em cada cruzamento.
Liberta já todos os robôs em bloqueio mútuo. Custa 2 minutos de operador por robô libertado; não impede que se formem novos bloqueios mútuos.
Um robô que termina uma tarefa com esta carga ou menos entra na fila do carregador. Um valor mais baixo aproveita mais a bateria, mas um robô que espere demasiado pode ficar sem bateria.
Os carregadores fornecem potência máxima até cerca de 70 %; acima disso a corrente vai diminuindo. Parar mais abaixo liberta o carregador mais cedo.
Os robôs sem tarefa vão para qualquer carregador livre em vez de esperarem parados, e voltam ao trabalho assim que houver encomendas à espera e tiverem 20 % acima do nível de envio para carga.
Velocidade da ferramenta enquanto ninguém está dentro da célula. Uma caixa de 10 artigos demora 25 s a 1 m/s.
Limitação de potência e força: uma mão entalada contra uma caixa não pode sentir mais de 140 N (o limite quase estático, usado de forma conservadora), o que aqui permite no máximo 0,67 m/s.
Mover o cursor instala a versão (build) mais recente publicada nessa parte da frota (os primeiros robôs por ordem); os restantes correm a v1. Uma versão publicada mais tarde só é instalada quando voltar a mover o cursor. Cada robô que muda de versão fica fora de serviço durante 4 minutos.
Indicadores
Caixas embaladas
360/h
normal
Tempo de entrega da encomenda
0,0min
normal
Robôs disponíveis
100%
normal
Margem de paragem onde há pessoas
0,27m
normal
Encomendas em espera
0
Margem de velocidade do cobot (limite de potência e força)
0,17 m/s
Carga média da bateria
67 %
Carga mínima da bateria
42 %
Robôs à espera de carregador
0
Robôs a carregar
0
Robôs sem bateria (rebocados)
0
Robôs presos em bloqueio mútuo
0
Bloqueios mútuos formados
0
Paragens de navegação (ligação ou localização)
0
Paragens por hora-robô, versão mais recente
0,0 /h
Paragens por hora-robô, resto da frota
0,0 /h
Frota na versão mais recente
0 %
Frota na v2.0
0 %
Robôs a atualizar
0
Velocidade definida na zona A
1,5 m/s
Tempo de operador gasto em robôs
0 min
Horas-robô usadas
0 h
Robôs em serviço
24
Robôs em circulação
0
Velocidade real na zona A
1,50 m/s
Espera por travessia de cruzamento
0,0 s
Consumo de potência da frota
0,00 kW
Potência entregue pelos carregadores
0,00 kW
Células cobot ocupadas
0 %
Tendência
Cenários de crise
Nível 1 · Metade dos carregadores avaria antes do pico de encomendas
Turno da manhã, 24 robôs em serviço, cerca de 3,7 encomendas por minuto. A frota começa o turno com 60 % de carga em média, depois de uma noite movimentada. Ao minuto 15, uma avaria elétrica deixa quatro dos seis carregadores fora de serviço até ao fim do turno. Ao minuto 90 começa o pico de encomendas (+25 % durante duas horas). Mantenha as encomendas a fluir, entre no pico com a frota carregada, não deixe nenhum robô ficar sem bateria e fique dentro do orçamento de robôs do turno.
Tempo de entrega médio durante e após o pico ≤ 3,5 min
Frota com pelo menos 49 % de carga média quando o pico começa
Nenhum robô fica sem bateria
No máximo 97 horas-robô no turno
Distância de paragem sempre dentro do campo onde há pessoas
Cobot nunca mais rápido do que o limite de potência e força com uma pessoa lá dentro
Nível 2 · Um corredor fecha, os robôs encravam e uma equipa entra na zona A
Cerca de 4,2 encomendas por minuto, 24 robôs, controlo de tráfego em circulação livre. Ao minuto 10, um corredor é fechado para reorganização das estantes: menos cruzamentos, mais encontros de frente e nenhum desvio. Ao minuto 60, uma equipa de manutenção entra na zona A, só para robôs, durante 40 minutos. Mantenha as encomendas a andar com pouco tempo de operador, mantenha todas as distâncias de paragem dentro do campo de segurança onde há pessoas, e volte a pôr a zona A à velocidade máxima assim que estiver livre.
Tempo de entrega médio ≤ 6 min
Zona A de volta a ≥ 1,4 m/s em média depois de a equipa sair
No máximo 1 bloqueio mútuo
No máximo 20 minutos de operador em robôs
Distância de paragem sempre dentro do campo onde há pessoas
Cobot nunca mais rápido do que o limite de potência e força com uma pessoa lá dentro
Nível 3 · Implementação canário de novo software de navegação
As estantes dos corredores foram reorganizadas ontem à noite e os robôs com o software atual (v1) perdem lá a posição com mais frequência; cada perda exige um operador. A versão v2.0 corrige isso e já está a correr em 10 % da frota como canário. Dê ao canário tempo suficiente para o avaliar, compare-o com o resto da frota, decida se alarga ou reverte, e ponha a frota numa versão boa — por etapas, sem tirar demasiados robôs de serviço ao mesmo tempo.
Canário mantido a correr nos primeiros 12 minutos (≥ 5 % da frota na v2.0)
Fora da v2.0 defeituosa do minuto 30 ao 49 (≤ 1 % da frota nela, em média)
Hotfix em no máximo 20 % da frota nos seus primeiros 10 minutos
Hotfix implementado prontamente: em média ≥ 55 % da frota com ele após a publicação
Pelo menos 90 % da frota na versão mais recente no fim
Pelo menos 60 % dos robôs sempre disponíveis
Distância de paragem sempre dentro do campo onde há pessoas
Cobot nunca mais rápido do que o limite de potência e força com uma pessoa lá dentro
Base — o modelo por trás dos números
Todas as relações que o simulador usa, com a respetiva fonte. As constantes marcadas como pressupostos são calibrações ilustrativas.
Lei de Little: todas as encomendas ainda não embaladas — em espera ou já num robô — divididas pelo ritmo a que as caixas são efetivamente embaladas dão o tempo de entrega.
lead time W = L / X, L = orders waiting + orders on a robot, X = totes packed per minute (smoothed, τ = 10 min)[5]
A velocidade desce à medida que mais robôs partilham os corredores (relação linear velocidade–densidade de Greenshields).
v_eff = v · max(0.1, 1 − n_moving / N_jam), N_jam = 120 robots (80 with an aisle closed)[7][9]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Sem reserva, dois robôs podem ficar cada um à espera do espaço que o outro ocupa — uma espera circular. Os encontros crescem com o quadrado do número de robôs em circulação.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Reserva de zona: um robô só entra quando as zonas à sua frente estão reservadas para ele (todas de uma vez, por uma ordem fixa), o que elimina a espera circular; cada cruzamento comporta-se então como uma fila de servidor único com um tempo de travessia fixo.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Onde pode haver pessoas, a distância de paragem — percurso de reação mais travagem — tem de caber dentro do campo de deteção de pessoas.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Limitação de potência e força: a velocidade máxima a que um contacto com uma mão fica abaixo da força permitida, calculada a partir da massa reduzida da mão e do robô e da rigidez da mão. O limite quase estático é usado mesmo para contactos breves, o que é conservador.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Uma caixa de artigos demora o tempo de preensão mais dois alcances por artigo; com uma pessoa lá dentro, o cobot trabalha à velocidade colaborativa. Os robôs são atendidos pela ordem em que chegam às células, segundo a segundo dentro de cada minuto.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Potência de condução: uma carga fixa da eletrónica, a resistência ao rolamento e a energia de travagem perdida em cada para-arranca.
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Os carregadores dão potência máxima até cerca de 70 % de carga, depois a corrente vai diminuindo (corrente constante, depois tensão constante).
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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Um robô para quando a ligação ao gestor de frota fica em silêncio mais tempo do que o seu watchdog; um watchdog mais curto apanha muito mais falhas breves de 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]Valores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Comparação canário: paragens por hora-robô dos robôs com a versão mais recente face ao resto da frota.
stops per robot-hour, canary vs control: 60·stops / robots (smoothed τ = 10 min); update or rollback = 4 min out of service[13]
Outras constantes deste modelo
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-minValores ilustrativos, não de um local ou produto real. Os locais reais definem campos, velocidades e limites a partir da sua própria avaliação de riscos e dos dados do fabricante.
Aleatoriedade: um gerador mulberry32 com semente; distribuições usadas — uniforme, exponencial (inversa da CDF), normal (Box–Muller), Poisson (Knuth). A semente é apresentada e partilhável.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems (M/G/1 Pollaczek–Khinchine mean wait; M/D/1) — Cambridge University Press, 2013
B. D. Greenshields — A Study of Traffic Capacity (linear speed–density relation) — Highway Research Board Proceedings 14:448–477, 1935