paint-brush
¿Condiciones de red deficientes? ¡No hay problema! gRPC y WebRTC para robots pueden ayudarpor@joycelin
158 lecturas

¿Condiciones de red deficientes? ¡No hay problema! gRPC y WebRTC para robots pueden ayudar

por Joyce Lin4m2024/08/09
Read on Terminal Reader

Demasiado Largo; Para Leer

Aprenda a utilizar gRPC y WebRTC para que los robots y otras máquinas inteligentes se comuniquen de manera más confiable. Muchos sistemas robóticos están compuestos por dispositivos de bajo consumo y bajo ancho de banda, o funcionan en malas condiciones de red. GRPC está optimizado para la velocidad, quizás hasta 7 a 10 veces más rápido que las API REST.
featured image - ¿Condiciones de red deficientes? ¡No hay problema! gRPC y WebRTC para robots pueden ayudar
Joyce Lin HackerNoon profile picture

Los robots funcionan en todo tipo de lugares con condiciones de red variables, desde Ethernet estable hasta conexiones celulares o satelitales inconsistentes. Descubra cómo puede usar gRPC y WebRTC para que los robots y otras máquinas inteligentes se comuniquen de manera más confiable.


Operar un rover usando la API gRPC de Viam en Postman

¿Por qué utilizar gRPC y WebRTC para controlar robots?

Hace poco empecé un nuevo trabajo en Viam y tenía curiosidad por aprender más sobre la arquitectura de sus sistemas. Muchos sistemas robóticos están compuestos por dispositivos de bajo consumo y bajo ancho de banda, o funcionan en malas condiciones de red. Viam es una plataforma de software robótico de código abierto que fue diseñada específicamente para ayudar a los robots y otras máquinas inteligentes a comunicarse de manera más confiable.


Utiliza gRPC para una comunicación rápida y estructurada entre cliente y servidor, y WebRTC para una comunicación directa entre máquinas, de igual a igual. Exploremos los beneficios de usar gRPC y WebRTC con más detalle.

Beneficios de utilizar gRPC y Protobuf en robótica

Existen varias razones para usar gRPC para robótica, como mejorar la productividad y la experiencia de los desarrolladores. Sin embargo, la razón más convincente es que está optimizado para la velocidad, quizás hasta 7 a 10 veces más rápido que las API REST sobre HTTP, con mensajería Protobuf liviana.

Rendimiento y eficiencia

  • Codificación: Protobuf ofrece una codificación binaria eficiente, ideal para máquinas con bajas restricciones de potencia, memoria, cómputo o ancho de banda en comparación con JSON-RPC .
  • Transporte: junto con el transporte predeterminado de HTTP/2, gRPC admite transportes alternativos como HTTP/1.1 con gRPC-Web y WebRTC. Esto proporciona una interfaz consistente con la flexibilidad de la tecnología de transporte subyacente, especialmente con streaming.


Components and services in the Viam API represented as protobuf

Los componentes y servicios de la API de Viam se representan como servicios de Protocol Buffer (protobuf) independientes del lenguaje, y gRPC es responsable del transporte y la comunicación de los mensajes de protobuf cuando se invocan métodos de protobuf.


En concreto, Viam utiliza gRPC para interacciones de alto nivel entre piezas de máquinas y aplicaciones basadas en SDK, lo que permite el intercambio de datos estructurados y de baja latencia y comandos de control. Se trata de una forma eficiente de coordinar el trabajo que se debe realizar, como recuperar nubes de puntos de las cámaras, analizar datos para la segmentación de objetos e instruir a los brazos robóticos para que realicen tareas en función de poses calculadas.


Protobuf minimiza el tamaño de los datos transmitidos, ahorrando ancho de banda de red durante la transmisión.

Beneficios de utilizar WebRTC en robótica

Existen diversas razones para utilizar WebRTC en robótica, como la seguridad y la compatibilidad entre plataformas. Sin embargo, la razón más convincente es que utiliza una conexión directa.

Comunicación entre pares

  • Directo : WebRTC facilita conexiones directas entre dispositivos, lo que reduce la dependencia de servidores centrales y minimiza la ruta transversal de datos.
  • Adaptabilidad de la red : ajusta la calidad de los medios según las condiciones de la red para lograr un rendimiento fluido, como en la transmisión de video.


Viam se basa en WebRTC para la comunicación entre pares, lo que permite transmisiones directas de video y datos entre las partes de la máquina y el SDK de Viam. Esto significa que una vez que se establece la conexión inicial, sus datos no necesitan recorrer el largo camino que pasa por un servidor central para comunicarse con otra máquina. Esta configuración optimiza la capacidad de respuesta en tiempo real y la eficiencia operativa, especialmente con configuraciones de máquinas complejas.


WebRTC permite la comunicación directa peer to peer, evitando servidores intermedios que podrían introducir retrasos o puntos de falla.

Cómo Viam utiliza gRPC y WebRTC para permitir la comunicación entre robots peer to peer

Veamos cómo funciona esto en el ejemplo de un juego de garra arcade compuesto por dos partes de máquina: una cámara y un brazo.


Viam controla los componentes de un robot en un juego de garra arcade


La aplicación Viam (app.viam.com) escucha las solicitudes de conexión, envía los detalles de la conexión y luego permite que los dos pares se comuniquen directamente. Las conexiones iniciales se facilitan a través de gRPC.


Viam usa gRPC para inicializar conexiones y WebRTC para comunicación peer to peer en este juego de garras robóticas


Una vez conectados, los componentes de la máquina se comunican a través de WebRTC, lo que permite que todas las interacciones entre los SDK y las máquinas se realicen a través de WebRTC mediante llamadas a métodos gRPC. En otras palabras, el esquema gRPC decide cómo se ven los datos y cómo se empaquetan, mientras que WebRTC se encarga de la entrega real de esos datos de un lugar a otro.

Empiece a utilizar la robótica con Viam

Si bien usted podría construir una infraestructura similar por su cuenta, Viam ofrece esta capacidad con software de robótica listo para usar. La funcionalidad en la máquina es de código abierto y su funcionamiento es gratuito. Si finalmente comienza a administrar una flota, se facturará en función del uso de los servicios en la nube y el almacenamiento de datos.


La aplicación web y los SDK de Viam se diseñaron para ayudarlo a trabajar con sus máquinas. Sin embargo, si desea explorar lo que sucede detrás de escena, consulte el espacio de trabajo público de las API de Viam en Postman para obtener instrucciones paso a paso sobre cómo trabajar con las API de gRPC de Viam subyacentes, que incluyen:


  • Autorizar llamadas a la API de gRPC

  • Invocación de métodos para controlar componentes de hardware

  • Invocación de métodos para gestionar servicios de software


    La colección de API gRPC de Viam como referencia

Puede que no tengas un brazo robótico a tu disposición, pero puedes probar esto con una máquina más asequible, como un explorador, como Yahboom o SCUTTLE . Viam también diseñó un explorador de código abierto para ayudar a la gente a aprender sobre robótica.


Utilice gRPC y WebRTC para operar un rover


Para comenzar, bifurque la colección de muestras del rover Spin a Viam en su propio espacio de trabajo haciendo clic en el botón Ejecutar en Postman a continuación.


Bifurque la colección gRPC en su propio espacio de trabajo haciendo clic en el botón Ejecutar en Postman

Y siga con estos recursos:

Revisión técnica por: Nick Hehr