[Proyecto] Investigación sobre un sistema de optimización de enrutamiento adaptativo Mesh basado en IA de autoentrenamiento
Ir a:Documento de modelado
Documentación del proyecto y resumen de la investigación
I. Antecedentes de la investigación
Actualmente, las redes inalámbricas Mesh presentan comúnmente el problema de “señal fuerte pero conexión inestable”. Los protocolos tradicionales como Zigbee y WIFI Mesh dependen de un único factor de intensidad de señal para la selección de rutas, sin poder percibir de manera integral factores clave como la tasa de pérdida de paquetes del enlace, la obstrucción física y la carga de los nodos. Una vez que se enfrentan a interferencias dinámicas como obstrucciones por paredes o movimiento de personas, la red se interrumpe fácilmente, no puede adaptarse a entornos cambiantes/complejos y difícilmente puede satisfacer las necesidades de comunicación en entornos especiales.
Este proyecto cambia el modelo tradicional de decisión basado en un único factor y construye una arquitectura de “decisión inteligente con IA”. Mediante la implementación del algoritmo de bosque aleatorio en el chip ESP32-C6, se otorga a cada nodo la capacidad de tomar decisiones de forma independiente, sin necesidad de participación en la nube. El sistema integra múltiples características como la calidad de la señal, el número de saltos del enlace, la carga del nodo y la estabilidad del enlace, logrando la transición de “conexión pasiva” a “optimización activa”, garantizando que la red siga siendo robusta, eficiente y auto-reparable en entornos complejos y cambiantes.
II. Resumen del proyecto
Este proyecto construye un sistema de optimización de enrutamiento adaptativo basado en algoritmos de IA.
Mediante el software de simulación física de redes inalámbricas OMNet++, se construyó un escenario con varias paredes y nodos de comunicación, obteniendo 6959 datos de entrenamiento de simulación. Posteriormente, se utilizó el algoritmo de bosque aleatorio para ajustar los datos del conjunto de entrenamiento, obteniendo un modelo matemático con buen efecto de ajuste.
Este modelo puede representarse de forma aproximada mediante una función (f aproximada por bosque aleatorio):
Tras la investigación, el algoritmo de predicción obtenido se implementó en el microcontrolador ESP32-C6 y se realizaron experimentos. Los resultados muestran que el modelo obtenido en este artículo puede considerar mejor la intensidad de señal, el número de saltos del enlace, la carga del nodo y otra información al seleccionar el nodo superior, eligiendo así nodos con mejor calidad integral para la formación de red.
Este algoritmo puede aplicarse a escenarios como el despliegue rápido de redes en entornos grandes y complejos, con ciertas perspectivas prácticas.
III. Puntos destacados principales
Decisión de enrutamiento con fusión multi-característica
Rompe con el método tradicional de enrutamiento que depende únicamente de la intensidad de señal, integrando múltiples características como RSSI, distancia de transmisión, calidad del enlace y consumo de energía, mejorando la precisión de la decisión de ruta.
Formación de red inteligente modular
Cada ESP32-C6 es una unidad independiente; las unidades se comunican y negocian entre sí, y mediante el modelo de decisión entrenado se calculan indicadores de calidad de nodo integrando datos reales de múltiples aspectos, logrando finalmente formar una red topológica óptima.
Después de la formación de red, ya sea ESP32 (C6/S3/C3/8266), o teléfonos móviles, tabletas y computadoras, todos pueden acceder a la red a través de estos nodos. En este momento, estos nodos desempeñan la función de enrutamiento repetidor en la red.
Entrenamiento de modelo de predicción de ajuste basado en aprendizaje automático
Mediante la herramienta de simulación física inalámbrica OMNeT++ se recopilan datos, y se utiliza el bosque aleatorio para entrenar el modelo de selección de rutas, coeficiente de determinación:
Logrando una predicción de calidad de ruta de alta precisión.



Despliegue de IA en el borde
El modelo se implementa en los nodos ESP32-C6, logrando inferencia local en tiempo real sin necesidad de participación en la nube, mejorando la velocidad de respuesta y la conveniencia de las decisiones del modelo.
Modelado e impresión 3D + diseño de PCB
Se utilizará tecnología de modelado e impresión 3D para diseñar la carcasa del terminal, integrando batería de litio y módulo de carga/descarga; mediante la soldadura de cada componente en la placa de circuito PCB diseñada y prototipada, se logra la integración del circuito.



Monitoreo en tiempo real de datos/estructura en la nube
Se combina el framework Python Flask para construir el servidor (backend), y el servidor se despliega mediante contenedores Docker en un servidor en la nube Linux (Debian-12.0); mediante Vue.JS se escriben las páginas frontend, logrando el monitoreo en tiempo real de la estructura topológica de la red y la información de los nodos.


IV. Diagrama comparativo con los métodos de conexión de red tradicionales
Situación normal

Posibles situaciones inesperadas (bloqueo de señal o señal débil por distancia lejana)

Diagrama comparativo 1, 2: Este innovador esquema tiene ventajas evidentes, ya que al combinar un modelo de IA entrenado, este proyecto posee la capacidad de adaptarse al entorno y optimizar automáticamente la topología de red en entornos cambiantes, con mayor adaptabilidad, flexibilidad y previsión.
V. Perspectivas de aplicación
- Comunicación de emergencia en escenarios de desastre (entorno sin estación base)
- Red de IoT inteligente
- Red de monitoreo industrial de bajo consumo
- Red autoorganizada de hogar inteligente
Registro de investigación
I: Selección del tema
Situación actual:
Actualmente, las redes Mesh inalámbricas presentan comúnmente el fenómeno de “señal fuerte pero inestable”.
Problema identificado:
Los protocolos tradicionales dependen de una única intensidad de señal para la selección de rutas, sin poder percibir de manera integral factores clave como la tasa de pérdida de paquetes del enlace, el bloqueo físico y la carga del nodo.
Objetivo de investigación:
Construir un sistema de red Mesh inteligente robusto, eficiente y auto-reparable.
II: Construcción del entorno de simulación y recolección de datos
Se seleccionó el software de simulación física de redes inalámbricas OMNet++ para construir el escenario.
La lógica de simulación se basa en las siguientes suposiciones:
- El escenario es una habitación bidimensional, donde la puerta de enlace, los terminales, los repetidores y las paredes se generan aleatoriamente en cada ronda.
- Las paredes se simplifican como segmentos de línea; si un enlace “atraviesa una pared” se determina mediante la intersección de segmentos de línea, y la atenuación de la señal se acumula linealmente según el número de paredes atravesadas.
- La red se organiza en estructura de árbol, con la puerta de enlace principal como nodo raíz.
- El número de saltos se define como la longitud de la ruta del repetidor a la puerta de enlace (salto de repetidor), y el número de dispositivos hijos se define como el número de nodos hijos directos de ese repetidor en el árbol.
- El impacto de atenuación de la señal causado por las paredes se calcula utilizando el modelo corregido del modelo de pérdida de trayectoria por distancia logarítmica.
- Cuantos más dispositivos hijos tenga un nodo repetidor, mayor será la carga del nodo y mayor la probabilidad de pérdida de paquetes de datos.
- Los paquetes de datos tienen cierta probabilidad de pérdida en cada proceso de reenvío por repetidor.
Con base en las suposiciones anteriores:
Se utilizó C++ para escribir la lógica de simulación, incluyendo la generación aleatoria del entorno (posiciones de puerta de enlace, terminales, nodos repetidores y paredes), el cálculo de RSSI y número de saltos desde los terminales a cada repetidor y desde los repetidores a la puerta de enlace, el impacto de la carga de dispositivos hijos en la tasa de éxito del enlace, la pérdida probabilística de paquetes del repetidor, el cálculo estadístico de la tasa de alcanzabilidad de paquetes de datos enviados en la simulación, y la salida de resultados en CSV (RSSI, número de saltos, número de dispositivos hijos, tasa de pérdida de paquetes del nodo a la puerta de enlace, tasa de alcanzabilidad).
III: Procesamiento de datos, entrenamiento y optimización del modelo de IA
(I) Preprocesamiento de datos
Los datos contienen un total de 6959 registros, cada registro compuesto por 5 campos:
- Intensidad de señal (RSSI_dBm)
- Número de saltos del nodo (HopCount)
- Número de nodos hijos del nodo (ChildCount)
- Tasa de pérdida de paquetes del nodo a la puerta de enlace (NodeToGatewayLossRate)
- Tasa de alcanzabilidad de paquetes del terminal (DeliveryRatio)
De los cuales RSSI_dBm, HopCount, ChildCount, NodeToGatewayLossRate se utilizan como características.
La tasa de alcanzabilidad entre terminal y puerta de enlace DeliveryRatio se utiliza como etiqueta de predicción del modelo (variable objetivo).
Se leen los datos CSV mediante la biblioteca pandas de Python.
(II) División del conjunto de entrenamiento y conjunto de prueba
En la división aleatoria de datos, el 20% es el conjunto de prueba y el otro 80% es el conjunto de entrenamiento.
(三) Ajuste del algoritmo
Utilizando la biblioteca scikit-learn de Python, se construyen respectivamente los algoritmos de regresión lineal, regresión polinómica y bosque aleatorio.
(四) Análisis de resultados
(1) Regresión lineal
El efecto de ajuste es débil, la relación lineal entre los datos de características y los datos de etiquetas no es evidente.


(2) Regresión polinómica (cuadrática)
Según la imagen, el efecto de ajuste es ligeramente superior al de la regresión lineal, pero en los valores reales pequeños la predicción presenta valores negativos, el modelo tiene fenómeno de sobreajuste.


(3) Bosque aleatorio
Dado que existe una relación no lineal entre las características y las etiquetas, y hay ruido en las muestras, tras el análisis este algoritmo es un método de predicción que cumple con los requisitos.


Cuatro: Desarrollo e implementación de hardware
Núcleo:
Se seleccionó el microcontrolador ESP32-C6 como unidad de control central. Se implementó el algoritmo de predicción entrenado en el nodo ESP32-C6. Se perfeccionó la lógica básica.
Estructura:
Se diseñó la carcasa del terminal utilizando tecnología de modelado e impresión 3D. Se completó el diseño y la fabricación de la placa de circuito PCB.
Función:
Se integró batería de litio y módulo de carga/descarga, interruptor, pantalla OLED.
Capacidad de red:
Cada ESP32-C6 es una unidad independiente, se comunican y negocian entre sí, formando una red de topología óptima.
Compatible con la serie ESP32 (C6/S3/C3/8266) y con el acceso de terminales como teléfonos móviles, tabletas, computadoras, etc.



Cinco: Construcción del sistema de monitoreo en la nube
Backend:
Se construyó el servidor combinando el framework Flask de Python.
Se implementó mediante contenedores Docker en un servidor en la nube Linux (Debian-12.0).
Frontend:
Se utilizó Vue.JS para escribir las páginas del frontend.
Se implementó el monitoreo en tiempo real de la estructura de topología de red y la información de los nodos (incluyendo la visualización de datos como número de nodo, cantidad de subdispositivos, tasa de pérdida de paquetes, RSSI, etc.).
El registro del backend puede registrar en tiempo real la recepción de datos (como el procesamiento de solicitudes POST /api/data).


Seis: Optimización del sistema, corrección de problemas
Se organizaron los programas de cada parte, se buscaron y corrigieron errores lógicos y de detalle, se optimizó el sistema y al mismo tiempo se agregaron algunas funciones significativas.