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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Y siga con estos recursos:
Revisión técnica por: Nick Hehr