paint-brush
Condições de rede ruins? Sem problemas! gRPC e WebRTC para robôs podem ajudarpor@joycelin
287 leituras

Condições de rede ruins? Sem problemas! gRPC e WebRTC para robôs podem ajudar

por Joyce Lin4m2024/08/09
Read on Terminal Reader

Muito longo; Para ler

Aprenda como você pode usar gRPC e WebRTC para robôs e outras máquinas inteligentes para se comunicarem de forma mais confiável. 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. O GRPC é otimizado para velocidade, talvez até 7–10x mais rápido do que APIs REST.
featured image - Condições de rede ruins? Sem problemas! gRPC e WebRTC para robôs podem ajudar
Joyce Lin HackerNoon profile picture

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.


Operar um rover usando a API gRPC da Viam no Postman

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. A Viam é 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.


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 gRPC 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é 7–10x mais rápido do que REST APIs sobre HTTP, com mensagens Protobuf leves.

Desempenho e Eficiência

  • Codificação: 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 JSON-RPC .
  • Transporte: 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.


Components and services in the Viam API represented as protobuf

Os componentes e serviços na API Viam 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.


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 WebRTC em robótica, como segurança e compatibilidade entre plataformas. No entanto, a razão mais convincente é que ele usa uma conexão direta.

Comunicação ponto a ponto

  • Direto : o WebRTC facilita conexões diretas entre dispositivos, reduzindo a dependência de servidores centrais e minimizando a rota de travessia de dados.
  • Adaptabilidade de rede : ajusta a qualidade da mídia com base nas condições da rede para um desempenho suave, como para streaming de vídeo.


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.


Viam controla componentes de um robô em um jogo de garra arcade


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.


Viam usa gRPC para inicializar conexões e WebRTC para comunicação ponto a ponto neste jogo de garra de robô


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 funcionalidade na máquina é 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.


O aplicativo web e os SDKs 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 espaço de trabalho público das APIs do Viam no Postman para obter instruções passo a passo sobre como trabalhar com as APIs gRPC subjacentes do Viam, incluindo:


  • Autorizando chamadas de API gRPC

  • Invocando métodos para controlar componentes de hardware

  • Invocando métodos para gerenciar serviços de software


    A coleção de API gRPC do Viam para referência

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 Yahboom ou SCUTTLE . Viam também projetou um rover de código aberto para ajudar as pessoas a aprender sobre robótica.


Use gRPC e WebRTC para operar um rover


Para começar, bifurque a coleção de amostras do Spin a Viam Rover para seu próprio espaço de trabalho clicando no botão Executar no Postman abaixo.


Bifurque a coleção gRPC para seu próprio espaço de trabalho clicando no botão Executar no Postman

E acompanhe estes recursos:

Revisão técnica por: Nick Hehr