meteor_detect/docs/design.md
2025-03-16 21:32:43 +08:00

5.4 KiB
Raw Permalink Blame History

流星监控系统 - 设计文档

系统架构概述

流星监控系统是一个基于树莓派的嵌入式系统,专为实时监测和记录流星事件而设计。系统采用模块化设计,各组件间通过明确的接口进行通信,保证系统的可扩展性和可维护性。

系统架构图

+------------------------------------------+
|             应用层 (Application)          |
+------------------------------------------+
|              |              |            |
v              v              v            v
+------------+ +------------+ +-----------+ +-----------+
| 检测算法模块 | | 数据存储模块 | | 通信模块   | | 监控模块   |
+------------+ +------------+ +-----------+ +-----------+
       |              |             |             |
       v              v             v             v
+------------------------------------------+
|          硬件抽象层 (HAL)                  |
+------------------------------------------+
|              |              |            |
v              v              v            v
+------------+ +------------+ +-----------+
| 摄像头控制   | |  GPS模块   | | 传感器模块  |
+------------+ +------------+ +-----------+
       |              |             |
       v              v             v
+------------------------------------------+
|             硬件 (Hardware)               |
+------------------------------------------+

模块详细说明

1. 硬件抽象层 (HAL)

1.1 摄像头模块 (Camera)

摄像头模块负责与星光级摄像头进行交互,提供以下功能:

  • 摄像头初始化与参数设置
  • 视频流采集与帧缓存管理
  • 视频质量控制与自动参数调整

主要组件:

  • CameraController: 摄像头控制器,管理摄像头生命周期和操作
  • FrameBuffer: 帧缓冲区,管理环形视频缓存
  • V4L2Driver: 底层摄像头驱动通过V4L2与硬件交互

1.2 GPS模块 (GPS)

GPS模块负责获取精确的时间和位置信息

  • NMEA数据解析
  • PPS信号处理提供精确授时
  • 摄像头指向信息存储

主要组件:

  • GpsController: GPS控制器管理GPS设备和数据处理
  • NmeaParser: NMEA协议解析器解析GPS原始数据

1.3 传感器模块 (Sensors)

传感器模块负责采集环境数据:

  • 温湿度信息采集
  • 光照强度测量
  • 传感器数据同步与缓存

主要组件:

  • SensorController: 传感器控制器,统一管理各类传感器
  • Dht22Sensor: DHT22温湿度传感器驱动
  • LightSensor: 光照强度传感器(基于摄像头或独立传感器)

2. 应用层 (Application)

2.1 检测算法模块 (Detection)

基于计算机视觉的流星检测算法:

  • 背景建模与帧差分析
  • 亮度变化检测
  • 运动轨迹提取与分析
  • 事件触发与分类

主要组件:

  • DetectionPipeline: 检测流水线,协调检测过程
  • BackgroundSubtractionDetector: 基于背景差分的检测器
  • MeteorTracker: 流星轨迹跟踪器

2.2 数据存储模块 (Storage)

管理本地和远程数据存储:

  • 原始视频环形缓存
  • 事件视频片段存储
  • 元数据管理与数据库操作
  • 存储空间管理与清理

主要组件:

  • StorageManager: 存储管理器,协调各种存储操作

2.3 通信模块 (Communication)

提供远程控制和数据传输功能:

  • MQTT事件发布与订阅
  • HTTP REST API接口
  • 远程配置与状态查询

主要组件:

  • CommunicationManager: 通信管理器,协调各种通信方式

2.4 系统监控模块 (Monitoring)

监控系统健康状态和资源使用:

  • CPU/内存/存储监控
  • 温度监控与过热保护
  • 日志管理与错误报告
  • 故障自愈机制

主要组件:

  • SystemMonitor: 系统监控器,收集和分析系统状态

3. 配置管理 (Configuration)

统一的配置管理系统:

  • 基于TOML的配置文件
  • 配置验证与默认值处理
  • 运行时配置更新

主要组件:

  • Config: 配置结构体,包含所有系统配置

数据流

  1. 采集流: 摄像头 -> 帧缓冲区 -> 检测算法 -> 事件检测
  2. 存储流: 事件检测 -> 视频片段提取 -> 本地存储 -> 云端上传
  3. 通知流: 事件检测 -> MQTT发布 -> 云端服务/移动应用
  4. 控制流: REST API -> 配置更新 -> 各模块应用配置

错误处理与恢复策略

  1. 分层错误处理: 每个模块内部处理自身错误,不影响系统整体运行
  2. 优雅降级: 核心功能优先保证,次要功能在资源受限时自动降级
  3. 自动重启: 关键组件故障时自动重启
  4. 故障隔离: 组件间通过消息传递通信,避免故障传播

性能考量

  1. 实时性: 检测流水线延迟控制在100ms以内
  2. 资源使用: 针对树莓派有限资源优化控制内存和CPU使用
  3. 存储效率: 自动管理存储空间,防止磁盘占满
  4. 功耗控制: 根据电源状态调整性能和功能

扩展性

  1. 模块化设计: 各功能模块可独立更新和替换
  2. 插件架构: 检测算法支持插件式扩展
  3. 配置驱动: 大部分功能通过配置启用/禁用,无需修改代码
  4. API优先: 所有功能都通过内部API访问便于扩展

安全性考虑

  1. 通信加密: 所有外部通信使用TLS加密
  2. 访问控制: API访问需要认证和授权
  3. 固件签名: 系统更新包通过数字签名验证
  4. 安全默认值: 默认配置优先考虑安全性