# SkyLink 项目总览 ## 🎯 项目目标 SkyLink 是一个**多平台实时视频传输系统**,旨在为无人机、移动机器人和其他移动平台提供低延迟、高可靠性的实时视频流传输和地面控制能力。 ## 🌟 核心特性 | 特性 | 说明 | |------|------| | 📺 **实时传输** | 低延迟的 UDP 广播,支持高清视频实时显示 | | 🌐 **多平台支持** | 机载端 (ROS 2)、PC 地面站 (Qt 6)、移动端 (Android) | | 📍 **GPS 集成** | 实时位置标注和轨迹记录 | | 📊 **智能压缩** | 自适应 JPEG 压缩,根据网络状况动态调整质量 | | 📈 **完整统计** | FPS、丢包率、带宽等实时统计 | | 💾 **数据记录** | 支持本地视频和 GPS 日志保存 | | 🔄 **自动重组** | UDP 分片自动检测和重组 | | 🎨 **现代化 UI** | Qt 6 美观界面 + Android Material Design | --- ## 📂 项目结构 ``` SkyLink/ ├── README.md # 项目说明 ├── INSTALL.md # 安装编译指南 ├── PROTOCOL.md # 协议规范 ├── CONTRIBUTING.md # 贡献指南 ├── LICENSE # MIT 许可证 │ ├── protocol/ # [核心] 公共协议定义 │ ├── protocol.h # C++ 结构体定义 │ └── Protocol.kt # Kotlin 参考实现 │ ├── skylink_ros2/ # [机载端] ROS 2 工程 │ ├── src/skylink_bridge/ │ │ ├── include/ # 头文件 │ │ ├── src/ # 源文件 │ │ ├── launch/ # 启动脚本 │ │ ├── config/ # 参数配置 │ │ ├── CMakeLists.txt │ │ └── package.xml │ └── build.sh # 快速编译脚本 │ ├── skylink_qt_station/ # [PC端] Qt 工程 │ ├── src/ # 源代码 │ │ ├── main.cpp │ │ ├── MainWindow.* │ │ ├── GroundReceiver.* │ │ └── DataLogger.* │ ├── forms/ # UI 文件 │ ├── resources.qrc │ └── CMakeLists.txt │ ├── skylink_android_app/ # [移动端] Android 工程 │ ├── app/ │ │ ├── build.gradle.kts │ │ └── src/main/ │ │ ├── AndroidManifest.xml │ │ ├── java/com/skylink/app/ │ │ │ ├── MainActivity.kt │ │ │ ├── network/ │ │ │ └── utils/ │ │ └── res/ │ ├── build.gradle.kts │ └── settings.gradle.kts │ └── docker-compose.yml # Docker 部署 ``` --- ## 🚀 快速开始 ### 1️⃣ 克隆仓库 ```bash git clone https://github.com/skylink-team/skylink.git cd skylink ``` ### 2️⃣ 机载端启动(ROS 2) ```bash cd skylink_ros2 ./build.sh source install/setup.bash ros2 launch skylink_bridge bridge.launch.py ``` ### 3️⃣ PC 端启动(Qt 地面站) ```bash cd ../skylink_qt_station mkdir build && cd build cmake .. make ./skylink_station ``` ### 4️⃣ 移动端启动(Android) 在 Android Studio 中打开 `skylink_android_app`,编译并安装 APK: ```bash Build > Build Bundle(s) / APK(s) > Build APK ``` --- ## 🔧 系统需求 | 平台 | 最低要求 | 推荐配置 | |------|--------|--------| | **ROS 2 机载** | Ubuntu 20.04, ROS 2 Foxy | Ubuntu 22.04, ROS 2 Humble | | **Qt PC 地面站** | Windows 10 / Linux / macOS | Windows 11 + Qt 6.5+ | | **Android 移动** | Android 11 (API 30) | Android 12+ (API 31+) | --- ## 📊 性能指标 ### 机载端 (ROS 2) - 🎥 **支持分辨率**: 320×240 ~ 1920×1080 - ⚡ **帧率**: 15 ~ 30 FPS (取决于网络) - 🗜️ **压缩方案**: JPEG (质量可调, 1-100) - 📡 **传输**: UDP 广播 (端口 9999) - 💾 **资源占用**: ~50 MB 内存, 20-30% CPU (树莓派 4) ### PC 端 (Qt) - 📺 **解码**: 硬件加速 (OpenGL) - ⏱️ **显示延迟**: < 100 ms (局域网) - 🗺️ **地图支持**: GPS 实时标注和轨迹 - 📊 **统计显示**: FPS, 丢包率, 带宽 - 💾 **录制**: 支持批量保存帧和 CSV 日志 ### 移动端 (Android) - 📱 **适配**: 手机 + 平板 - 🖼️ **显示**: 实时预览 + 缩放 - 🔍 **性能**: 耗电量 < 10% (Snapdragon 8) - 📍 **GPS**: 实时位置显示 - 💾 **存储**: 自动本地备份 --- ## 🏗️ 核心架构 ### 数据流 ``` ROS 2 机载端 ↓ (相机 + GPS) 编码为 JPEG + 分片 ↓ (UDP 广播) 网络传输 (局域网 / WiFi) ↓ 接收端接收 ↓ (收集分片) 重组 JPEG 数据 ↓ (解码) 显示到屏幕 ↓ 可选:保存文件或处理 ``` ### 核心组件 | 组件 | 说明 | 技术栈 | |------|------|--------| | **协议层** | 统一的数据包定义 | C++ Header / Kotlin Data Class | | **机载端** | 图像采集 + 编码 | ROS 2 + OpenCV + JPEG | | **PC 端** | UDP 接收 + 重组 + 显示 | Qt 6 + OpenGL | | **移动端** | UDP 接收 + 解码 | Android + Coroutines | --- ## 📚 文档导航 | 文档 | 内容 | |------|------| | [README.md](README.md) | 快速开始、架构、启动命令 | | [INSTALL.md](INSTALL.md) | 详细的安装和编译步骤 | | [PROTOCOL.md](PROTOCOL.md) | 数据包结构、协议规范 | | [CONTRIBUTING.md](CONTRIBUTING.md) | 贡献指南、编码规范 | --- ## 🎯 主要用途 ### 1. 无人机遥控 ``` ROS 2 自主控制器 + 摄像头 → UDP 广播视频流 → PC 地面站实时监看 → 操作员远程决策 ``` ### 2. 移动机器人监控 ``` 机器人搭载摄像头 + GPS → 通过 WiFi 传输视频 → Android APP 实时接收 → 云端存储日志 ``` ### 3. 户外勘测 ``` 手持摄像设备 + ROS 节点 → 实时采集视频和位置 → PC 端地面站绘图 → 生成任务地图 ``` --- ## 💡 创新亮点 1. **跨平台统一协议** - 单一协议支持所有端 2. **自适应压缩** - 根据网络状况自动调整质量 3. **无缝 GPS 集成** - 每帧数据都带有位置信息 4. **高效分片重组** - 支持 UDP 乱序和丢包 5. **模块化设计** - 易于扩展和集成 --- ## 🔮 后续规划 ### 短期 (v1.1) - [ ] 启用 CRC16 校验和错误检测 - [ ] 支持录音轨道 - [ ] 改进 UI 响应速度 ### 中期 (v2.0) - [ ] 基于 QUIC 协议的改进 - [ ] 多路视频流支持 - [ ] 云端数据同步 - [ ] AI 目标检测集成 ### 长期 (v3.0) - [ ] 支持 5G 和边缘计算 - [ ] 实时 3D 地图构建 - [ ] 高精度 RTK-GNSS 定位 - [ ] WebRTC 网页客户端 --- ## 📞 联系方式 - 📧 **邮件**: support@skylink.dev - 🐙 **GitHub**: https://github.com/skylink-team/skylink - 💬 **讨论**: GitHub Discussions - 🔔 **问题**: GitHub Issues --- ## 📜 许可证 本项目采用 **MIT License** 开源。详见 [LICENSE](LICENSE)。 --- ## 🙏 感谢 感谢所有贡献者的辛勤工作! ## Contributors --- **⭐ 如果您觉得这个项目有帮助,请给个 Star!** **最后更新**: 2026-01-19 | **维护者**: SkyLink Team