Introducción
Mecatrónica: una carrera adelantada a su tiempo. Esta disciplina cobra mayor sentido con la llegada de la IA y la robótica.
Anteriormente, el desarrollo de proyectos complejos que involucraban firmware, interfaces gráficas, teoría de control y diseño mecánico demandaba la colaboración de grandes equipos de especialistas. Era una tarea casi inabarcable para una sola persona o un grupo reducido.
Sin embargo, el panorama comenzó a cambiar a partir de 2015, con la democratización de los microcontroladores (MCU), que se volvieron más accesibles en costos y disponibilidad en mercados como el de México.
Gracias a esta evolución, equipos pequeños ahora tienen el poder de ejecutar grandes proyectos. Se han abierto las puertas al mercado de productos robóticos de consumo, y en TRIX ofrecemos el soporte experto y la integración técnica para transformar ideas innovadoras en soluciones reales.
Esta forma sistemática de pensar nos permite construir sistemas resilientes y robustos. Al mantener una independencia funcional entre los componentes, podemos actualizar o modificar un servicio sin interrumpir el funcionamiento de los demás.
Estos servicios se comunican de manera eficiente a través de protocolos estándar como HTTP, HTTPS o sockets.
Microservicios y Robótica
Programar robots desde sus cimientos requiere de herramientas potentes que, afortunadamente, hoy están al alcance de todos.
Aunque Internet es un océano de información, nada se compara con la guía de un experto para navegar con éxito por las complejidades del software y el hardware.
API Gateway
Para orquestar esta comunicación de manera efectiva, es fundamental implementar un API Gateway. Cada endpoint se asocia a una ruta única, lo que permite centralizar y gestionar todas las APIs de forma organizada y segura. Además, con herramientas como Postman, es posible automatizar pruebas y validar que la comunicación entre servicios funcione a la perfección.
- Datos distribuidos: La información se fragmenta o replica en distintos nodos, garantizando así una alta disponibilidad y redundancia.
- Procesamiento distribuido: Las tareas de cálculo se dividen y ejecutan en paralelo a través de varios nodos, lo que mejora radicalmente la escalabilidad y la eficiencia del sistema.
Automatización del Despliegue
Para automatizar los despliegues, empleamos herramientas de orquestación, siendo Kubernetes el estándar de la industria. Kubernetes gestiona contenedores dentro de unidades lógicas llamadas Pods.
Un Pod puede alojar tanto una aplicación como su base de datos, o puede dividirse en múltiples Pods especializados para tareas específicas.
Esta arquitectura nos permite escalar, actualizar y balancear la carga de forma dinámica y eficiente.
Aplicación en Robótica
Al trasladar esta arquitectura a la robótica, las posibilidades son enormes:
Un microservicio de percepción puede dedicarse a procesar imágenes, utilizando tecnologías como OpenCV o Machine Learning.
Un microservicio de planeación se encarga de calcular las trayectorias óptimas para el movimiento.
Un microservicio de control se responsabiliza de enviar los comandos precisos al robot físico, ya sea mediante ESP-IDF o ROS 2.
Paralelamente, un microservicio de simulación (usando herramientas como Gazebo) puede validar los comportamientos en un entorno virtual antes de ejecutarlos en el hardware real.
Todo este ecosistema se integra a través de un API Gateway, que centraliza la comunicación y refuerza la seguridad del sistema completo.
Aprende a simular tus programas en Gazebo.
Gemelos Digitales: Crea un microservicio de simulación que se comunique directamente con el nodo de planeación para validar y optimizar cada movimiento.
¡Quiero incluirlo en mi oferta educativa!
Necesitas un proyecto. Elige algo, ¡pero hazlo ya!
Para un proyecto ESP-IDF, incluye:
main/
(código fuente)
CMakeLists.txt
(raíz y/o main/
)
components/
(si aplica)
sdkconfig
(configuración del proyecto)
Primer paso — Blink: enciende/apaga un LED para verificar carga y entorno (Arduino, ESP32, STM32, FPGA).
Herramientas sugeridas: Arduino IDE, PlatformIO, ESP-IDF, STM32CubeIDE (todos con ejemplos de Blink listos).
Cuando tus robots y dispositivos necesitan comunicarse a través de una red local
(WiFi/Ethernet) o por Internet, entran en juego los protocolos de la suite TCP/IP.
Instala Docker
Visita: https://www.docker.com/get-started/
Si estás en Windows:
Para comenzar con la instalación de Docker en Windows, es necesario descargar
Docker Desktop. La opción más recomendable es utilizar WSL 2
(Subsistema de Windows para Linux) como backend, ya que ofrece un mejor rendimiento.
Pasos para la instalación:
- Descarga el instalador de Docker Desktop desde el sitio oficial de Docker.
- Ejecuta el archivo .exe que acabas de descargar.
- Sigue las instrucciones del asistente de instalación. Asegúrate de marcar la
opción que indica "Use WSL 2 instead of Hyper-V (recommended)" para un
rendimiento óptimo.
- Una vez finalizada la instalación, reinicia tu computadora.
- Al reiniciar, Docker Desktop se iniciará automáticamente. Acepta los términos y
condiciones para completar la configuración.
Si estás en Ubuntu:
La instalación de Docker en Ubuntu se realiza principalmente a través de la línea de
comandos.
Pasos para la instalación:
- Actualiza el índice de paquetes de tu sistema:
sudo apt update
- Instala los paquetes necesarios para permitir que apt utilice
un repositorio a través de HTTPS:
sudo apt install apt-transport-https ca-certificates curl
software-properties-common
- Añade la clave GPG oficial de Docker a tu sistema:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo apt-key add -
- Agrega el repositorio de Docker a las fuentes de APT:
sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Actualiza de nuevo el índice de paquetes con la inclusión del nuevo repositorio
de Docker:
sudo apt update
- Instala Docker Community Edition (CE):
sudo apt install docker-ce
- Verifica que Docker se ha instalado correctamente ejecutando una imagen de
prueba:
sudo docker run hello-world
¿Qué es el comando
sudo?
Configura tu entorno de trabajo:
Prepara un espacio digital para tu proyecto.
¿Qué es una máquina virtual?
Una máquina virtual (VM) es un entorno virtualizado que simula un sistema operativo
dentro de tu computadora. Es ideal para probar configuraciones de software robótico,
como ROS (Robot Operating System), sin riesgos para tu sistema principal.
¿Qué es Docker?
Docker es una herramienta que empaqueta aplicaciones y sus dependencias en
contenedores ligeros. En robótica, facilita la portabilidad de entornos de
desarrollo, como simuladores o frameworks, asegurando que funcionen igual en
diferentes máquinas.
Ejercicio 1: Crea el Dockerfile y carga el proyecto Blink a tu ESP32
Luego crea un repositorio en tu cuenta de GitHub, configura las credenciales y
realiza un git push.
FROM espressif/idf:release-v5.1
# Establece el directorio de trabajo
WORKDIR /project
# Copia el código del proyecto Blink (se asume que main.c está en la carpeta blink)
COPY blink /project
# Instala dependencias necesarias para el ESP32
RUN /opt/esp/idf/install.sh esp32
# Configura el entorno IDF al iniciar el contenedor
ENV IDF_PATH=/opt/esp/idf
CMD ["/bin/bash", "-c", ". /opt/esp/idf/export.sh && idf.py set-target esp32 &&
idf.py build && idf.py -p /dev/ttyUSB0 flash"]
- Arduino te limita; migra a ESP-IDF para control de hardware
total.
- Docker reproduce entornos al 100%, incluidas dependencias.
- Flask para interfaces web ligeras con integración de software.
- ROS 2 orquesta nodos y flujos de datos en tiempo real.