EmmaThomasEKT/telemetry-sentinel
GitHub: EmmaThomasEKT/telemetry-sentinel
实时航天器遥测监控系统,结合机器学习实现异常检测与任务控制可视化。
Stars: 0 | Forks: 0
# 遥测 Sentinel
实时航天器遥测监控系统,具备机器学习异常检测功能和任务控制仪表板。
## 概述
Telemetry Sentinel 模拟航天器遥测数据,通过消息队列进行传输,使用机器学习检测异常,并在实时任务控制仪表板中显示结果。该系统灵感来源于 Gilmour Space Technologies、Saber Astronautics 和 Fleet Space Technologies 等公司使用的任务控制软件。
## 架构
模拟器(Python)→ 消息队列(Redis/RabbitMQ)→ AI 服务(Python)
↓
React 仪表板 ← WebSocket ← Spring Boot 后端 ← PostgreSQL
## 技术栈
- **前端:** React + WebSockets(实时图表和告警面板)
- **后端:** Java Spring Boot(REST API + WebSocket 服务器)
- **AI 服务:** Python + scikit-learn(Isolation Forest 异常检测)
- **数据库:** PostgreSQL
- **消息队列:** Redis Streams 或 RabbitMQ
## 项目结构
telemetry-sentinel/
├── backend/ # Spring Boot REST API
├── ai-service/ # Python 异常检测
├── frontend/ # React 仪表板
└── docker-compose.yml
## 快速开始
### 前置条件
- Docker Desktop
- Java 21+
- Python 3.10+
- Node.js 18+
### 1. 启动数据库
```
docker run --name telemetry-db \
-e POSTGRES_USER=telemetry \
-e POSTGRES_PASSWORD=telemetry123 \
-e POSTGRES_DB=telemetry_sentinel \
-p 5432:5432 -d postgres:15
```
### 2. 启动后端
```
cd backend
./mvnw spring-boot:run
```
### 3. 启动 AI 服务
```
cd ai-service
pip install -r requirements.txt
python main.py
```
### 4. 启动前端
```
cd frontend
npm install
npm start
```
## API 端点
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/telemetry/latest` | 每颗卫星的最新读数 |
| GET | `/telemetry/history` | 分页历史遥测数据 |
| GET | `/alerts` | 异常告警列表 |
## 异常检测
AI 服务使用 scikit-learn 中的 **Isolation Forest** 来检测遥测流中的异常,无需硬编码阈值。它学习每个指标(温度、电池电量、速度、高度)的正常分布,并标记显著偏离基线的读数。
检测到的异常类型:
- 突然跳变(例如温度突升)
- 渐进漂移(例如电池缓慢劣化)
- 多指标相关异常
## 模拟卫星
- SAT-1、SAT-2、SAT-3
- 每颗卫星每 500ms–1s 发射一次遥测数据
- 为演示目的随机注入异常
标签:Docker, docker-compose, Fleet Space, Gilmour Space, Isolation Forest, Java后端, JS文件枚举, PostgreSQL, Python AI服务, RabbitMQ, React, Redis, Saber Astronautics, scikit-learn, Spring Boot, Syscalls, WebSocket, WSL, 任务控制中心, 任务控制仪表板, 仿真系统, 依赖分析, 卫星监控, 告警面板, 地面控制软件, 安全防御评估, 实时图表, 实时遥测监控, 异常检测, 搜索引擎查询, 数据流, 时间序列数据分析, 机器学习异常检测, 流处理, 测试用例, 消息队列, 物联网监控, 航天器遥测, 请求拦截, 赛博物理系统, 逆向工具