SkyLink 项目总览
🎯 项目目标
SkyLink 是一个多平台实时视频传输系统,旨在为无人机、移动机器人和其他移动平台提供低延迟、高可靠性的实时视频流传输和地面控制能力。
🌟 核心特性
| 特性 | 说明 |
|---|---|
| 📺 实时传输 | 低延迟的 UDP 广播,支持高清视频实时显示 |
| 🌐 多平台支持 | 机载端 (ROS 2)、PC 地面站 (Qt 6)、移动端 (Android) |
| 📍 GPS 集成 | 实时位置标注和轨迹记录 |
| 📊 智能压缩 | 自适应 JPEG 压缩,根据网络状况动态调整质量 |
| 📈 数据统计 | FPS、丢包率、带宽等实时统计 |
📂 项目结构
SkyLink/
├── README.md # 项目说明
├── INSTALL.md # 安装编译指南
├── PROTOCOL.md # 协议规范
│
├── protocol/ # [核心] 公共协议定义
│ ├── protocol.h # C++ 结构体定义
│ └── Protocol.kt # Kotlin 参考实现
│
├── skylink_ros2/ # [机载端] ROS 2 工程
│ ├── src/skylink_bridge/
│ │ ├── include/ # 头文件
│ │ ├── src/ # 源文件
| | ├── test/ # 相机测试文件
│ │ ├── 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
🚀 快速开始
1️⃣ 克隆仓库
git clone http://www.flowzl.top/flowzl/flyLink.git
cd skylink
2️⃣ 机载端启动(ROS 2)
cd skylink_ros2
./build.sh
source install/setup.bash
ros2 launch skylink_bridge bridge.launch.py
3️⃣ PC 端启动(Qt 地面站)
cd ../skylink_qt_station
mkdir build && cd build
cmake ..
make
./skylink_station
4️⃣ 移动端启动(Android)
在 Android Studio 中打开 skylink_android_app,编译并安装 APK:
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 机载端
↓ (相机 + GPS)
编码为 JPEG + 分片
↓ (UDP 广播)
网络传输 (局域网 / WiFi)
↓
接收端接收
↓ (收集分片)
重组 JPEG 数据
↓ (解码)
显示到屏幕
↓
可选:保存文件或处理
核心组件
| 组件 | 说明 | 技术栈 |
|---|---|---|
| 协议层 | 统一的数据包定义 | C++ Header / Kotlin Data Class |
| 机载端 | 图像采集 + 编码 | ROS 2 + OpenCV + JPEG |
| PC 端 | UDP 接收 + 重组 + 显示 | Qt 6 + OpenGL |
| 移动端 | UDP 接收 + 解码 | Android + Coroutines |
📚 文档导航
| 文档 | 内容 |
|---|---|
| README.md | 快速开始、架构、启动命令 |
| PROTOCOL.md | 数据包结构、协议规范 |
🎯 主要用途
1. 无人机遥控
ROS 2 自主控制器 + 摄像头
→ UDP 广播视频流
→ PC 地面站实时监看
→ 操作员远程决策
2. 移动机器人监控
机器人搭载摄像头 + GPS
→ 通过 WiFi 传输视频
→ Android APP 实时接收
→ 云端存储日志
3. 户外勘测
手持摄像设备 + ROS 节点
→ 实时采集视频和位置
→ PC 端地面站绘图
→ 生成任务地图
💡 创新亮点
- 跨平台统一协议 - 单一协议支持所有端
- 自适应压缩 - 根据网络状况自动调整质量
- 无缝 GPS 集成 - 每帧数据都带有位置信息
- 高效分片重组 - 支持 UDP 乱序和丢包
- 模块化设计 - 易于扩展和集成
🔮 后续规划
短期 (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。
🙏 感谢
感谢所有贡献者的辛勤工作!
Contributors
⭐ 如果您觉得这个项目有帮助,请给个 Star!
最后更新: 2026-01-19 | 维护者: flowzl
Description
Languages
C++
69.1%
Makefile
11.9%
CMake
9%
Kotlin
7.2%
C
1.5%
Other
1.3%