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çõesAm rulat azi tot ce se poate rula. Stratul de control există și e serios, dar e offline: un modul propriu de cinematică pentru un braț cu șase axe, care a rezolvat 8.400 din 8.400 de puncte de traseu, și un validator de fizică pe MuJoCo 3.10.0 cu 34 de teste trecute, plus 14 teste pe partea de vizualizare. Amândouă declară în propria sursă că nu au transport către hardware și nu pot comanda un robot real. La vedere avem un prototip propriu — detecție și urmărire de persoane pe cameră IP fixă — cu un singur comit și cu directorul de teste gol. La audio pe robot avem zero: tot ce e pe disc e voce de call-center sau bibliotecă terță de telefonie, iar singura lucrare acustică proprie s-a încheiat cu un rezultat negativ, scris în aplicație. ROS: zero instalat, zero scris. Regula cere minimum două implementări proprii pentru „am făcut”; pe control le am, dar niciuna nu atinge hardware, iar celelalte două straturi ale serviciului sunt sub prag. Deci: ofertă cu condiții, cu granițele desenate.
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.