Control de Robot en Tiempo Real Desde el Navegador Con WebRTC

This ad is not shown to multipass and full ticket holders
React Advanced
React Advanced 2025
November 27 - 1, 2025
London, UK & Online
We will be diving deep
Learn More
In partnership with Focus Reactive
Upcoming event
React Advanced 2025
React Advanced 2025
November 27 - 1, 2025. London, UK & Online
Learn more
Bookmark
GithubProject website
Rate this content

¡Explora un mundo de hardware como nunca has visto antes! Esta presentación contendrá demostraciones en vivo utilizando tanto robots locales como aquellos en producción de todo el país. Aunque la tecnología utilizada es avanzada, el enfoque es accesible para cualquiera que haya usado JavaScript antes.

La charla cubre la arquitectura de WebRTC como un conjunto de tecnologías para habilitar la comunicación peer-to-peer, así como cómo se puede aprovechar para interactuar con hardware embebido y robótica desde el navegador, todo utilizando APIs de JavaScript. Mi objetivo es hacer que la programación de dispositivos sea más accesible para los desarrolladores web y demostrar una solución práctica para llevar proyectos de hobby de tu escritorio a producción.

This talk has been presented at JSNation 2025, check out the latest edition of this JavaScript Conference.

Nick Hehr
Nick Hehr
21 min
16 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Nick Hare, developer advocate en Veeam, aprendió robótica a partir de proyectos de código abierto. WebRTC facilita conexiones seguras entre máquinas. Implementar WebRTC implica usar Stun, candidatos ICE, servidores TURN y señalización. La señalización y las Llamadas a Procedimientos Remotos son cruciales para la comunicación peer-to-peer. Construir un prototipo con Notify implica mensajería PubSub y REST API. Establecer conexiones WebRTC y canales de datos permite mensajería directa. La transmisión de video y el control remoto se demuestran con una cámara web conectada a una Raspberry Pi. El desarrollo de robótica VM permite construir robots y máquinas inteligentes con soporte en la nube y SDK.

1. Understanding Robotics and WebRTC

Short description:

Nick Hare, defensor de desarrolladores en Veeam. Sin educación formal en robótica. Aprendió de proyectos de código abierto. Los robots ayudan a los humanos en varias tareas. Teleoperaciones para monitoreo remoto. WebRTC para conectar máquinas de forma segura. Tecnología basada en navegador para comunicación entre pares. Biblioteca Libpeer para soporte de WebRTC.

Hola, mi nombre es Nick Hare. Soy un defensor de desarrolladores senior en una empresa llamada Veeam, una plataforma para conectar a los desarrolladores de software con el mundo físico. Puedes encontrar mi handle y logo en línea en la mayoría de los lugares en Hipster Brown. Me gustaría comenzar diciendo que no tengo educación formal en ingeniería embebida, robótica, o incluso desarrollo de software. He aprendido de otros que han compartido su conocimiento a través de proyectos de código abierto, presentaciones en masterclasses locales y conferencias, y en línea a través de videos y publicaciones de blog, lo que me emociona mucho estar en una posición para compartir ese conocimiento con todos ustedes hoy y espero inspirarlos a construir su primer robot.

Ahora, cuando digo robot, ¿qué imagen viene a la mente? Al crecer, pensaba en robots como Rosie o C3PO y R2D2, o incluso Wall-E y Eve. Estos son ejemplos de máquinas autónomas, inteligentes, y a veces humanoides que existen en mundos imaginarios. Mirando el mundo hoy, hay algunos robots que coinciden con lo que hemos imaginado en varias formas, atlas, dígitos, incluso figura cero uno. Pero la mayoría de la producción de robótica está en forma de brazos industriales o rovers, o realmente solo varios actuadores y sensores combinados para realizar alguna tarea específica para ayudar y asistir a los humanos en completar sus trabajos para ser más eficientes, más seguros, y hacerlo desde cualquier lugar del mundo.

Y hay bastantes funciones robóticas que requieren monitoreo y control de esas máquinas desde lejos. Esto cae bajo la categoría de teleoperaciones o tele-op. Y esto podría incluir vigilar una flota autónoma de vehículos de entrega o coches autónomos y tomar el control si se pierden o entran en situaciones inesperadas. Podría ser pilotar vehículos que están en entornos que son inadecuados para la vida humana, como en las profundidades del mar, en el espacio, o en el desierto, o experiencias de telepresencia y telemedicina. También se puede usar para crear arte único como el telegarden. Incluso esos robots humanoides más avanzados actualmente dependen de un humano en el bucle para funcionar.

2. WebRTC Connectivity for Robots

Short description:

Los robots se comunican en diferentes redes. WebRTC para conexiones directas entre clientes. Legado en voz sobre IP y videoconferencias. Capacidades de WebRTC más allá de los pares humanos. Las APIs y protocolos permiten el intercambio de datos. Protocolos base IP y UDP para WebRTC.

Ahora, algunos robots se comunican con servidores remotos en entornos de nube. Algunos están confinados a la red local. Y otros se comunican directamente entre sí. Pero, ¿qué tipo de tecnología y protocolos podrían soportar la conexión a una máquina desde cualquier otro mundo sin exponerla a Internet público? Bueno, como se indica en el título de esta presentación, estamos hablando de WebRTC. Y probablemente hayas oído hablar de ello antes y lo hayas utilizado en alguna aplicación construida con él.

Ahora, como el nombre indica, fue construido alrededor de navegadores y proporcionando una plataforma para conectar a los clientes directamente sin necesidad de relays a través de algún tipo de aplicación de servidor central o compartido, que podría ser requerido al usar algo como WebSockets. Debido a su legado vinculado a voz sobre IP y videoconferencias, WebRTC se utiliza en gran medida para esa función exacta. Todos hemos pasado por nuestra buena parte de Skype, RIP y llamadas de Hangouts, Zoom y Teams a lo largo de los años. Algunos de nosotros incluso hemos pasado por un tutorial de mensajería de chat entre pares en el pasado también.

Pero esas son realmente solo las capacidades que WebRTC tiene para ofrecer. ¿Qué pasaría si un par no fuera otro humano, sino una máquina respondiendo la llamada? ¿Cómo podría esto ser posible? ¿El robot abre un navegador web y hace clic como algún tipo de agente de IA? Bueno, ¿y si pudiéramos usar las APIs y protocolos de WebRTC que típicamente se encuentran en el navegador, pero en un servidor, es decir, nuestro robot? WebRTC es realmente solo un conjunto de tecnologías acrónimas que permiten enviar audio, video y datos arbitrarios directamente entre dos clientes o pares. Y esto quiere decir que la mayoría de los dispositivos de computación y lenguajes de programación tienen alguna forma de trabajar con los protocolos base de IP y UDP.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
React Summit US 2023React Summit US 2023
28 min
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
Top Content
The speaker discusses the whimsical and detailed work of Stripe, particularly their interactive and dynamic pages. They explain the use of React for building whimsical details and tracking mouse position. The speaker introduces React Spring for smooth animation and React3 Fiber for creating a 3D egg model. They also mention the use of Framer Motion and React server components for animating CSS properties.
Animaciones Emocionales y Funcionales de la Interfaz de Usuario en React
React Day Berlin 2022React Day Berlin 2022
28 min
Animaciones Emocionales y Funcionales de la Interfaz de Usuario en React
Today's Talk discussed the importance of UI animations in React, both functional and emotional. Examples were given using CSS and Framer Motion, with a focus on user feedback and accessibility. Design guidelines and animation usage were highlighted, as well as the consideration of negative emotions in animations. The Talk also touched on designing 404 error pages and concluded with gratitude to the audience and organizers.
JavaScript Haikus: Mis Aventuras en la Programación Mínima
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
JavaScript Haikus: Mis Aventuras en la Programación Mínima
This Talk is about writing super tiny JavaScript programs, known as tiny code. It explores the concept of code golf and the use of a live editor for instant feedback. The Talk discusses various ways to share tiny code, including Twitter.net. It also covers creating graphics, games, and sound in a small space. The speaker highlights inspiring tweets and showcases examples of tiny code, including asemic writing. The future of tiny code includes new techniques, better browser support, and AI-assisted programming.
La Guía del Autoestopista para Arquitecturas Basadas en Eventos
Node Congress 2025Node Congress 2025
30 min
La Guía del Autoestopista para Arquitecturas Basadas en Eventos
Premium
Today's Talk introduced event-driven architectures with Node.js. The event loop in Node.js enables non-blocking interaction between components. The event emitter class is used to handle events synchronously. Redis and Apache Kafka are popular tools for event handling, with Kafka providing scalability and persistence. Kafka.js is a JavaScript library that supports transactions and compression. Server-sent events are used to send events to the client. A plugin and library are used to convert an event emitter to an async iterator. The client displays emojis and updates the vote count.
Cómo he estado utilizando JavaScript para automatizar mi casa
JSNation 2022JSNation 2022
22 min
Cómo he estado utilizando JavaScript para automatizar mi casa
The Talk covers various experiments with JavaScript and C++, including controlling lights and creating a car control system. The speaker shares his experiences with home automation and the challenges of hiding wires. He explores using JavaScript with Esperino for face recognition and discusses the benefits and limitations of the platform. The Talk concludes with suggestions for using JavaScript in hardware projects and learning opportunities.
Construyendo una Aplicación IoT con InfluxDB, JavaScript y Plotly.js
JSNation 2023JSNation 2023
20 min
Construyendo una Aplicación IoT con InfluxDB, JavaScript y Plotly.js
This Talk introduces building an IoT app with InfluxDB, JavaScript, and PlotlyJS, highlighting the benefits of time series databases for handling high ingestion rates and data manipulation. It provides instructions for setting up IoT devices and connecting sensors, along with data cleaning and transformation techniques. The Talk covers creating a bucket in InfluxDB, using JavaScript client libraries for data read and write, querying and graphing data with InfluxDB and Plotly.js, creating dashboards, and available learning resources. Overall, it offers a comprehensive overview of building IoT applications with InfluxDB.

Workshops on related topic

Construye una aplicación IoT con InfluxDB
JSNation Live 2021JSNation Live 2021
105 min
Construye una aplicación IoT con InfluxDB
Workshop
Miroslav Malecha
Miroslav Malecha
InfluxDB es una base de datos de series temporales de código abierto que permite a los desarrolladores construir software para IoT, análisis y monitoreo. Está diseñada específicamente para manejar los volúmenes masivos y las innumerables fuentes de datos con marca de tiempo producidos por sensores, aplicaciones e infraestructura.
Este masterclass muestra una aplicación de muestra completamente funcional llamada IoT Center que está construida sobre InfluxDB. Esta aplicación demuestra las capacidades de la plataforma InfluxDB para desarrollar una aplicación basada en series de tiempo habilitada para JavaScript. Recopila, almacena y muestra un conjunto de valores que incluyen temperatura, humedad, presión, concentración de CO2, calidad del aire, así como proporciona coordenadas GPS de un conjunto de dispositivos IoT. Con estos datos almacenados en InfluxDB, la aplicación puede consultar estos datos para mostrarlos y también escribir datos de nuevo en la base de datos.
Este masterclass práctico mostrará a los estudiantes cómo instalar este código de código abierto para aprender a consultar y escribir en InfluxDB utilizando el cliente JavaScript de InfluxDB, y familiarizarse con el lenguaje de consulta Flux que está diseñado para consultar, analizar y actuar sobre datos de series de tiempo. Y finalmente, recopilar y visualizar datos de rendimiento de la aplicación Node.js.
Masterclass de IoT Center por InfluxData
Node Congress 2021Node Congress 2021
131 min
Masterclass de IoT Center por InfluxData
Workshop
Miroslav Malecha
Miroslav Malecha
InfluxDB es una base de datos de series temporales de código abierto que permite a los desarrolladores construir software de IoT, análisis y monitoreo. Está diseñado específicamente para manejar los volúmenes masivos y las innumerables fuentes de datos con marca de tiempo producidos por sensores, aplicaciones e infraestructura. En esta masterclass se presenta una aplicación de muestra completamente funcional llamada IoT Center que se basa en InfluxDB. Esta aplicación demuestra las capacidades de la plataforma InfluxDB para desarrollar una aplicación basada en series de tiempo habilitada para JavaScript. Recopila, almacena y muestra un conjunto de valores que incluyen temperatura, humedad, presión, concentración de CO2, calidad del aire, así como proporciona coordenadas GPS de un conjunto de dispositivos IoT. Con estos datos almacenados en InfluxDB, la aplicación puede consultar estos datos para mostrarlos y también escribir datos en la base de datos.
En esta masterclass práctica, los estudiantes aprenderán cómo instalar este código de código abierto para aprender a consultar y escribir en InfluxDB utilizando el cliente JavaScript de InfluxDB, y familiarizarse con el lenguaje de consulta Flux que está diseñado para consultar, analizar y actuar sobre datos de series de tiempo. Y finalmente, recopilar y visualizar datos de rendimiento de la aplicación Node.js.
Requisitos previos
Cuenta gratuita registrada en InfluxDB Cloud en https://cloud2.influxdata.comTres opciones disponibles (a través de cuenta de Google, a través de cuenta de Microsoft o a través de correo electrónico)Probar inicio de sesión después del registro y guardar las credenciales para la masterclassInstalación de la herramienta git (por ejemplo, desde https://git-scm.com/downloads)Clonar IoT CenterEjecutar: git clone https://github.com/bonitoo-io/iot-center-v2Instalar nodejs (desde https://nodejs.org/en/download)Instalar el gestor de paquetes yarn (desde https://classic.yarnpkg.com/en/docs/install)Instalar los paquetes requeridosEn el directorio clonadoEjecutar: cd appEjecutar: yarn install