Robôs trabalham em todos os tipos de lugares com condições de rede variáveis, de Ethernet estável a conexões celulares ou de satélite inconsistentes. Aprenda como você pode usar gRPC e WebRTC para robôs e outras máquinas inteligentes se comunicarem de forma mais confiável. Por que usar gRPC e WebRTC para controlar robôs? Recentemente comecei um novo emprego na Viam e estava curioso para aprender mais sobre a arquitetura do sistema deles. Muitos sistemas de robótica são compostos de dispositivos de baixa potência e baixa largura de banda, ou operam em condições de rede precárias. é uma plataforma de software de robótica de código aberto que foi projetada especificamente para ajudar robôs e outras máquinas inteligentes a se comunicarem de forma mais confiável. A Viam Ele usa gRPC para comunicação cliente-servidor rápida e estruturada e WebRTC para comunicação direta ponto a ponto entre máquinas. Vamos explorar os benefícios de usar gRPC e WebRTC em mais detalhes. Benefícios do uso de gRPC e Protobuf em robótica Há uma série de razões para usar para robótica, como para melhorar a produtividade e a experiência do desenvolvedor. No entanto, a razão mais convincente é que ele é otimizado para velocidade, talvez até sobre HTTP, com mensagens Protobuf leves. gRPC 7–10x mais rápido do que REST APIs Desempenho e Eficiência O Protobuf oferece codificação binária eficiente, ideal para máquinas com baixas restrições de energia, memória, computação ou largura de banda em comparação ao . Codificação: JSON-RPC Junto com o transporte padrão do HTTP/2, o gRPC suporta transportes alternativos como HTTP/1.1 com gRPC-Web e WebRTC. Isso fornece uma interface consistente com a flexibilidade da tecnologia de transporte subjacente, especialmente com streaming. Transporte: Os componentes e serviços na são representados como serviços de Protocol Buffer (protobuf) independentes de linguagem, e o gRPC é responsável pelo transporte e comunicação de mensagens protobuf ao chamar métodos protobuf. API Viam Especificamente, a Viam usa gRPC para interações de alto nível entre peças de máquinas e aplicativos baseados em SDK, permitindo troca de dados estruturados e de baixa latência e comandos de controle. Esta é uma maneira eficiente de coordenar o trabalho a ser feito, como recuperar nuvens de pontos de câmeras, analisar dados para segmentação de objetos e instruir braços robóticos a executar tarefas com base em poses computadas. O Protobuf minimiza o tamanho dos dados transmitidos, economizando largura de banda da rede durante a transmissão. Benefícios do uso do WebRTC em robótica Há uma série de razões para usar em robótica, como segurança e compatibilidade entre plataformas. No entanto, a razão mais convincente é que ele usa uma conexão direta. WebRTC Comunicação ponto a ponto : o WebRTC facilita conexões diretas entre dispositivos, reduzindo a dependência de servidores centrais e minimizando a rota de travessia de dados. Direto : ajusta a qualidade da mídia com base nas condições da rede para um desempenho suave, como para streaming de vídeo. Adaptabilidade de rede A Viam depende do WebRTC para comunicação peer-to-peer, permitindo fluxos diretos de vídeo e dados entre partes da máquina e o Viam SDK. Isso significa que, uma vez que a conexão inicial é estabelecida, seus dados não precisam percorrer um longo caminho passando por um servidor central em seu caminho para falar com outra máquina. Essa configuração otimiza a capacidade de resposta em tempo real e a eficiência operacional, especialmente com configurações complexas de máquina. O WebRTC permite comunicação direta ponto a ponto, evitando servidores intermediários que podem causar atrasos ou pontos de falha. Como a Viam usa gRPC e WebRTC para permitir a comunicação ponto a ponto entre robôs Vamos ver como isso funciona no exemplo de um jogo de garra de arcade composto de duas partes de máquina: uma câmera e um braço. O aplicativo Viam (app.viam.com) escuta solicitações de conexão, envia detalhes de conexão e então permite que os dois pares se comuniquem diretamente. As conexões iniciais são facilitadas por gRPC. Uma vez conectadas, as partes da máquina se comunicam por WebRTC, permitindo que todas as interações entre SDKs e máquinas aconteçam por WebRTC usando chamadas de método gRPC. Em outras palavras, o esquema gRPC decide como os dados se parecem e como eles são empacotados, enquanto o WebRTC lida com a entrega real desses dados de um lugar para outro. Comece com robótica usando Viam Embora você possa construir uma infraestrutura semelhante por conta própria, a Viam fornece essa capacidade com software de robótica pronto para uso. A é de código aberto e gratuita para operar. Se você eventualmente começar a gerenciar uma frota, é um faturamento baseado no uso para serviços de nuvem e armazenamento de dados. funcionalidade na máquina O e do Viam foram projetados para ajudar você a trabalhar com suas máquinas. No entanto, se quiser explorar o que está acontecendo nos bastidores, confira o no Postman para obter instruções passo a passo sobre como trabalhar com as APIs gRPC subjacentes do Viam, incluindo: aplicativo web os SDKs espaço de trabalho público das APIs do Viam Autorizando chamadas de API gRPC Invocando métodos para controlar componentes de hardware Invocando métodos para gerenciar serviços de software Você pode não ter um braço robótico à sua disposição, mas pode tentar isso com uma máquina mais acessível, como um rover, como . Viam também projetou para ajudar as pessoas a aprender sobre robótica. Yahboom ou SCUTTLE um rover de código aberto Use gRPC e WebRTC para operar um rover Para começar, bifurque a coleção de amostras para seu próprio espaço de trabalho clicando no botão abaixo. do Spin a Viam Rover Executar no Postman E acompanhe estes recursos: Codelab passo a passo: tutorial do Postman para APIs gRPC da Viam Navegue pela para obter mais detalhes sobre cada solicitação documentação da coleção Assista ao vídeo: Gire um rover com a API gRPC da Viam https://www.youtube.com/watch?v=KaJIXznpssw&t=1s&embedable=true Revisão técnica por: Nick Hehr