O despacho entre andares é onde os projetos de RCS vão morrer. Uma frota que roda perfeitamente em um único andar começa a perder elevadores, estourar tempos de espera e travar tarefas no momento em que se adiciona um segundo nível. Os veículos raramente são o problema: os AMRs não sobem escadas, por isso dependem de elevadores, e um elevador é um recurso compartilhado de todo o edifício. O seu RCS controla os robôs. Ele não controla o temperamento do elevador.

Desmontando uma viagem de elevador

Um deslocamento entre andares é, na verdade, cinco fases: chamar, esperar, entrar, subir, sair. Cada fase pode travar. O elevador nunca respondeu à chamada porque os protocolos nunca combinaram. A cabine chegou, mas as portas nunca abriram porque um sinal de status caiu. O robô entrou, mas as portas não fecharam por causa de uma obstrução. Subiu bem e depois não conseguiu sair porque sua localização derivou.

A percepção-chave: um robô nunca deve adivinhar o estado do elevador. O controlador do elevador é a única fonte da verdade, e o RCS deve conduzir tudo a partir da máquina de estados do controlador: posição da cabine, status das portas, peso da carga, direção do deslocamento. Os quatro sinais, sem exceção. Estimar qualquer um deles, ou assumi-lo a partir de um tempo esgotado, é plantar uma mina.

O setor já tem frameworks para esse aperto de mão, então não reinvente a camada de protocolo do zero. No ecossistema ROS2, o RMF (o Robot Middleware Framework) define um conjunto completo de mensagens de integração com elevadores: o gestor da frota e o controlador do elevador negociam por meio de apertos de mão de estados padronizados, e o robô apenas executa. As diretrizes técnicas da IMDA de Singapura para AMRs em edifícios comerciais também incorporam a troca de dados robô-elevador-porta na especificação. Do lado dos equipamentos, a alemã Lödige Industries vende um módulo de automação de elevadores que permite que AGVs e AMRs conversem diretamente com elevadores de carga como as linhas Olympus e Sherpa, com números publicados de até a classe de 20 toneladas métricas. Verifique o que seu fornecedor de elevadores e seu middleware já suportam antes de construir algo personalizado.

Quem pode chamar o elevador

A primeira bifurcação no caminho: quem emite a chamada? Existem duas arquiteturas.

Conexão direta veículo-elevador: o robô chega ao patamar e chama o elevador ele mesmo. Simples — e adequado apenas para uma demonstração de um ou dois robôs. Ao escalar, N robôs chamam ao mesmo tempo, o elevador é puxado para todos os lados, todos disputam a cabine e ninguém se move.

Chamada centralizada do RCS: toda solicitação entre andares é canalizada primeiro para o RCS, que emite um único fluxo de comandos ao elevador e depois despacha cada robô: qual cabine, qual andar. Esta é a resposta certa para frotas reais, mas significa que o RCS deve ser dono da fila. Três regras de fila que exijo:

Compartilhar carona por direção. Agrupe na mesma cabine os robôs que vão na mesma direção. O custo de uma viagem de ida e volta do elevador é fixo; cada robô extra na cabine é ganho puro.

Prioridade sem inanição. Pedidos urgentes entre andares podem furar a fila, mas limite a espera: uma tarefa comum espera no máximo N rodadas e depois é forçada a passar. Não deixe tarefas de baixa prioridade esperando no patamar até o fim dos tempos.

Despejo por timeout. Se um robô monopolizar uma cabine além do seu orçamento de tempo — digamos que a manobra de entrada não se concluiu após vários minutos — o RCS o expulsa da atribuição de cabine atual e o recoloca na fila. O elevador é um recurso escasso; nenhum robô pode acampar nele.

Minha decisão: a autoridade de programação dos deslocamentos entre andares deve ficar com o RCS. Os veículos mantêm apenas o relato de status: cheguei, entrei, saí. Divida as responsabilidades, ou você nunca vai desembaraçar uma falha.

Quando o elevador falha, o sistema não pode

Elevadores são máquinas; eles quebram. Mais frequentemente quebram pela metade: uma porta falha, os botões de um andar morrem, a cabine para de emergência ocasionalmente. Escreva o plano de degradação em três níveis, com antecedência.

Nível um, falha de uma cabine: o RCS reatribui automaticamente as tarefas às cabines operacionais, sem mudar a fila. Isso exige pelo menos dois elevadores utilizáveis por robôs na instalação: um elevador mais operação entre andares equivale a um único ponto de falha. Sinalize isso no início do projeto.

Nível dois, todos os elevadores parados: suspenda todas as tarefas entre andares, mude o RCS para o modo de andar único e mantenha o trabalho do mesmo andar funcionando; mova mercadorias entre andares por transferência manual (empilhadeira ou carrinho de mão pela rota de carga ou pela escada). O sistema desacelera, mas nunca para.

Nível três, perda de comunicação: se o RCS parar de ouvir o heartbeat do controlador do elevador, cada veículo aguarda em seu ponto de espera designado. Nada de entradas cegas na cabine. Esta é uma linha vermelha de segurança: você nunca sabe se a cabine está realmente atrás daquelas portas.

Sejamos honestos sobre o trade-off: um plano de degradação troca eficiência por segurança. Escreva-o no SLA e alinhe com o cliente com antecedência o que você garante quando os elevadores estão totalmente fora de serviço. O pior resultado é nunca discutir isso e depois culparem-se mutuamente quando acontece.

Precificando tarefas entre andares de forma justa

Uma tarefa entre andares é inerentemente mais cara que uma do mesmo andar: ela consome uma viagem de ida e volta do elevador mais tempo de espera nas duas pontas. Três regras para definir a prioridade:

Ponderar pela urgência do pedido. Tarefas de saída correndo contra o cutoff de uma transportadora têm seu peso entre andares aumentado.

Custear a viagem do elevador. Converta uma viagem de ida e volta do elevador em custo de tarefa e deixe o RCS preferir cabines cheias e minimizar viagens vazias ao programar.

Separar o pool de ponderação. Não classifique tarefas entre andares no mesmo pool de prioridade das tarefas comuns: dê a elas seu próprio nível de ponderação, ou a enxurrada de trabalho do mesmo andar vai enterrá-las.

Em uma frase: o elevador é o recurso compartilhado mais caro do edifício, e toda a estratégia de programação se resume a menos viagens vazias e nenhum robô ocioso.

Um AMR aguardando em frente a um elevador de carga antes de entrar

Armadilhas que valem a pena pregar na parede: nunca deixe os robôs chamarem o elevador eles mesmos em uma frota com vários robôs: é aí que o caos começa. Verifique a carga: veículo mais carga devem ficar abaixo da capacidade nominal do elevador, nem um quilograma acima: é um item de segurança, não de eficiência. Conecte o intertravamento do alarme de incêndio: quando o alarme dispara, os elevadores saem de serviço, e o RCS deve receber o sinal e congelar imediatamente todas as tarefas entre andares. Faça primeiro a integração do protocolo e depois fale de tamanho de frota: um controlador conectado e uma máquina de estados suave antes de adicionar veículos. Faça ao contrário e cada robô adicionado é outra mina terrestre. E se você puder, um elevador dedicado a robôs é a vida mais simples; no mínimo, garanta autoridade de despacho nos horários de pico.

Traduzido do inglês. Em caso de divergência, prevalece a versão em inglês.