K
Kazuki's Blog
K
Kazuki's Blog

[项目] 基于自训练AI的Mesh自适应路由优化系统研究

跳转:建模论文

项目文档&研究概述

一、研究背景

当前无线 Mesh 网络普遍存在“信号强却连接不稳定”的问题。传统 Zigbee、WIFI Mesh 等协议依赖单一信号强度因素进行路由选择,无法全面感知链路丢包率、物理遮挡及节点负载等关键因素。一旦遭遇墙体遮挡、人员移动等动态干扰,网络容易中断,不能适应变化/复杂的环境,难以满足特殊环境下的通信需求。
本项目改变了传统单一因素决策模式,搭建“AI 智能决策”架构。通过将随机森林算法部署至 ESP32-C6 芯片,赋予每个节点独立决策的能力,无需云端参与。系统融合信号质量、链路跳数、节点负载、链路稳定性等多维特征,实现从“被动连接”到“主动优化”的跨越,确保在复杂多变环境下网络依然稳健、高效、可自愈。


二、项目概述

本项目构建了一种基于 AI 算法的自适应路由优化系统。
通过 OMNet++无线网络物理仿真软件构建含有若干墙体与通信节点的场景,获得了 6959 条仿真训练数据。之后,采用随机森林算法拟合训练集数据,得出了拟合效果较好的数学模型。
该模型可用函数近似表示(f 由随机森林近似):

DeliveryRatio = f(RSSI, Hop, Child, Loss)

研究后,将得到的预测算法部署至 ESP32-C6 单片机并进行实验,结果表明本文得出的模型在选择上级节点时能够更好地兼顾信号强度、链路跳数、节点负载等信息进而选择综合质量更优的节点进行组网。
该算法能够应用于大型复杂环境的快速组网部署等场景,具有一定的实用前景。


三、核心亮点

1、多特征融合路由决策

突破传统仅依赖信号强度的路由方式,综合 RSSI、传输距离、链路质量、能耗等多维特征,提升路径决策准确性。

2、模块化智能组网

每个 ESP32-C6 为一个独立的单元,单元之间彼此通信协商,通过训练的决策模型综合多方面实际数据推算节点质量指标,最终能够形成最优的拓补网络。
组网后,不论是 ESP32(C6/S3/C3/8266),还是手机、平板、电脑,都可以通过这些节点进行网络访问。此时这些节点起到了网络中继路由作用。

3、训练基于机器学习的拟合预测模型

通过 OMNeT++无线物理仿真工具采集数据,使用随机森林训练路由选择模型,决定系数:

R² = 0.965047
MSE = 0.001571

实现高精度路径质量预测。

4、AI 边缘化部署

将模型部署到 ESP32-C6 节点,实现本地实时推理,无需云端参与,提升模型决策响应速度与便捷性。

5、3D 建模打印 + PCB 设计

将采用 3D 建模打印技术设计终端外壳,集成锂电池与充放电模块,通过将各个部件焊接到设计并打样的 PCB 电路板上,实现电路集成。

6、云端数据/结构实时监控

结合 Python Flask 框架搭建服务端(后端),并将服务端通过 Docker 容器化部署于 Linux 云服务器(Debian-12.0),通过 Vue.JS 编写前端页面,实现网络拓补结构及节点信息的实时监控。


四、与传统网络连接方式的对比图解

1、正常情况

正常情况

2、可能遇到的意外情况(信号阻挡 或 距离远信号弱)

意外情况
对比图解 1,2:该创新方案优势明显,由于结合了训练的 AI 模型,在多变环境下本项目拥有自适应环境、自动优化网络拓补结构的能力,具备更强的适应性、灵活性、预见性。


五、应用前景

  • 灾害现场应急通信(无基站环境)
  • 智慧物联网网络
  • 工业低功耗监测网络
  • 智能家居自组织网络

研究日志

一:选题

现状:
当前无线 Mesh 网络普遍存在“信号强却不稳定”的现象。
问题所在:
传统协议依赖单一信号强度进行路由选择,无法全面感知链路丢包率、物理遮挡及节点负载等关键因素。
研究目标:
搭建稳健、高效、可自愈的智能 Mesh 网络体系。


二:仿真环境构建、数据采集

选用 OMNet++ 无线网络物理仿真软件构建场景。
仿真逻辑基于以下假设:

  1. 场景为二维房间,网关、终端、中继、墙体都在每一轮随机生成
  2. 墙体简化为线段,链路是否“穿墙”通过线段相交判断,信号衰减随穿墙数量线性累加。
  3. 组网为树形结构,以主网关作为根节点
  4. 跳数定义为中继到网关路径长度(中继跳),子设备数定义为该中继在树中的直接子节点个数
  5. 墙壁对信号造成的衰弱影响利用对数距离路径损耗模型的修正模型计算

    PL = PL₀ + 10n log₁₀(d/d₀) + Nwall · Awall
  6. 中继节点的子设备数越多,节点负载越大,数据包丢包概率越高。
  7. 数据包在每一次中继转发过程中均存在一定的丢包可能性。

基于以上假设:
使用 C++ 编写仿真逻辑,包括随机环境生成(网关、终端、中继节点与墙体位置)、终端到各中继及中继到网关路径的 RSSI 与跳数计算、子设备负载对链路成功率的影响、中继概率丢包、统计仿真发数据包可达率,以及 CSV 结果输出(RSSI、跳数、子设备数、节点到网关丢包率、可达率)


三:数据处理、AI 模型训练与优化

(一)数据预处理

数据共包含 6959 条记录,每条记录由 5 个字段组成:

  • 信号强度(RSSI_dBm)
  • 节点跳数(HopCount)
  • 节点子节点数(ChildCount)
  • 节点到网关的丢包率(NodeToGatewayLossRate)
  • 终端数据包可达率(DeliveryRatio)
    其中 RSSI_dBm、HopCount、ChildCount、NodeToGatewayLossRate 作为特征。
    终端与网关可达率 DeliveryRatio 作为模型预测的标签(目标变量)。
    通过 Python 中 pandas 库读取 csv 数据。

(二)划分训练集和测试集

随机划分数据中 20% 为测试集,另外 80% 为训练集。

(三)算法拟合

利用 Python 中 scikit-learn 库,分别构建线性回归、多项式回归和随机森林算法。

(四)结果分析

(1)线性回归

R² = 0.622295
MSE = 0.016977

拟合效果较弱,特征数据与标签数据线性关系不明显。

(2)多项式回归(二次)

R² = 0.836970
MSE = 0.007328

根据图像得出拟合效果略优于线性回归,但在真实值较小处预测出现了负值,模型存在过拟合现象。

(3)随机森林

R² = 0.965047
MSE = 0.001571

由于特征与标签之间存在非线性关系,且样本中存在噪声,经分析该算法是符合要求的预测方式。


四:硬件开发与部署

核心:
选定 ESP32-C6 单片机作为核心控制单元。将训练好的预测算法部署至 ESP32-C6 节点。完善基本逻辑。
结构:
采用 3D 建模打印技术设计终端外壳。完成 PCB 电路板设计与打样。
功能:
集成锂电池与充放电模块,开关,OLED 屏幕。
组网能力:
每个 ESP32-C6 为独立单元,彼此通信协商,形成最优拓扑网络。
兼容 ESP32 系列(C6/S3/C3/8266)及手机、平板、电脑等终端接入。


五:云端监控系统搭建

后端:
结合 Python Flask 框架搭建服务端。
通过 Docker 容器化部署于 Linux 云服务器(Debian-12.0)。
前端:
使用 Vue.JS 编写前端页面。
实现了网络拓扑结构及节点信息的实时监控(包括节点编号、子设备数、丢包率、RSSI 等数据展示)。
后端日志可实时记录数据接收情况(如 POST /api/data 请求处理)。


六:优化系统、修复问题

整理各部分程序,查找并修复逻辑和细节错误,优化系统,同时增加一些有意义的功能。

上一篇 [项目] 一套完整的智能共享单车系统 下一篇 [项目] ClarityAI 智能需求对齐工具

暂无评论

Ctrl + Enter 发送

还没有评论,来说点什么吧

© 2026 Kazuki's Blog
鄂ICP备2025120139号
Theme Robes