Especialização · Sistemas para robôs
Software para robôs: a camada que decide o movimento, o módulo de visão e o de audição. Hoje temos verificação offline e simulação — não temos nada que comande um motor real.
Escrevemos cinemática, verificação de trajetória e simulação física reprodutível, com gates que bloqueiam quando a prova falta. Para visão temos um protótipo com câmara fixa, não em robô. Para áudio em robô não temos nada construído, e a página diz isso em vez de tomar provas emprestadas da telefonia. Não trabalhamos com ROS.
Oferta, com condiçõesExecutei hoje tudo o que pode ser executado. A camada de controlo existe e é séria, mas está offline: um módulo próprio de cinemática para um braço com seis eixos, que resolveu 8.400 de 8.400 pontos de trajetória, e um validador de física em MuJoCo 3.10.0 com 34 testes aprovados, mais 14 testes na parte de visualização. Ambos declaram na própria fonte que não têm transporte para hardware e não podem comandar um robot real. À vista temos um protótipo próprio — deteção e seguimento de pessoas numa câmara IP fixa — com um único commit e o diretório de testes vazio. No áudio no robot temos zero: tudo o que está em disco é voz de call-center ou biblioteca telefónica de terceiros, e o único trabalho acústico próprio terminou com um resultado negativo, escrito na aplicação. ROS: zero instalado, zero escrito. A regra exige pelo menos duas implementações próprias para „fizemos”; em controlo tenho-as, mas nenhuma toca no hardware, e as outras duas camadas do serviço estão abaixo do limiar. Portanto: oferta com condições, com os limites desenhados.
O software de um robô tem três camadas que falham de forma diferente: o que vê e ouve, o que decide e o que envia para os motores. Nas duas primeiras temos trabalhos próprios com testes em execução. Na terceira — a ponte para o hardware — não temos nada, e isso é a fronteira do serviço, não um detalhe de implementação. Dois dos nossos códigos dizem-no no próprio cabeçalho, em inglês, exatamente para não poderem ser lidos de forma errada: o módulo de cinemática não tem transporte para hardware e não pode comandar um robô real.
O que existe na parte de movimento é verificação antes do movimento. Um módulo próprio calcula a cinemática direta, o jacobiano e a cinemática inversa para um braço com seis eixos, com uma margem imposta face aos limites de cada eixo, e foi usado para verificar uma trajetória completa: 8.400 pontos pedidos, 8.400 resolvidos, com a velocidade máxima por eixo mantida abaixo de 8% do limite de catálogo. Em separado, um validador de física corre em MuJoCo 3.10.0 no processador, com passo de cálculo de um milissegundo, em seis cenários, cada um duas vezes, com a mesma semente — e as duas execuções dão impressões digitais idênticas. O determinismo não é uma afirmação, é uma comparação de somas de controlo.
Na vertente de visão, existe menos, e é honesto dizer quanto. Um protótipo próprio faz deteção e seguimento de pessoas em streams de câmara IP, com um pequeno detetor da família YOLO, um seguidor multiobjeto, estimativa de postura para cinco estados e controlo de rotação-inclinação-zoom da câmara. Tem um único commit e o diretório de testes vazio. E a diferença entre isto e a visão de um robot é real, não formal: a câmara de um robot move-se com ele, a cena está próxima, a exposição muda a cada passo e o orçamento de latência é outro, porque a imagem tem de chegar a uma decisão de movimento, não a um ecrã. Não temos câmara de profundidade, não temos calibração de câmara, não temos odometria visual.
Na vertente de áudio para robots não temos nada construído, e não vamos emprestar provas de outro lado. Temos trabalho real de voz para telefonia e para assistentes conversacionais, mas um microfone num robot tem outros problemas: o ruído próprio da máquina, ventiladores e servomotores que arrancam exatamente quando o robot se move, a direção de onde vem a voz, o eco na sala e a distância variável. O único trabalho acústico próprio que temos terminou com um resultado negativo, escrito na aplicação, e publicamo-lo como tal — porque um resultado negativo medido é mais útil do que uma promessa.