2026-02-02 10:41:39 +08:00
2026-01-21 13:44:29 +08:00
2026-01-20 17:24:15 +08:00
2026-01-21 13:44:29 +08:00
2026-02-02 10:41:39 +08:00
2026-01-19 17:08:49 +08:00
2026-01-20 16:05:46 +08:00
2026-01-20 17:24:15 +08:00
2026-01-20 17:24:15 +08:00
2026-01-20 17:24:15 +08:00

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 端地面站绘图
  → 生成任务地图

💡 创新亮点

  1. 跨平台统一协议 - 单一协议支持所有端
  2. 自适应压缩 - 根据网络状况自动调整质量
  3. 无缝 GPS 集成 - 每帧数据都带有位置信息
  4. 高效分片重组 - 支持 UDP 乱序和丢包
  5. 模块化设计 - 易于扩展和集成

🔮 后续规划

短期 (v1.1)

  • 启用 CRC16 校验和错误检测
  • 支持录音轨道
  • 改进 UI 响应速度

中期 (v2.0)

  • 基于 QUIC 协议的改进
  • 多路视频流支持
  • 云端数据同步
  • AI 目标检测集成

长期 (v3.0)

  • 支持 5G 和边缘计算
  • 实时 3D 地图构建
  • 高精度 RTK-GNSS 定位
  • WebRTC 网页客户端

📞 联系方式


📜 许可证

本项目采用 MIT License 开源。详见 LICENSE


🙏 感谢

感谢所有贡献者的辛勤工作!

Contributors


如果您觉得这个项目有帮助,请给个 Star

最后更新: 2026-01-19 | 维护者: flowzl

Description
No description provided
Readme 44 MiB
Languages
C++ 69.1%
Makefile 11.9%
CMake 9%
Kotlin 7.2%
C 1.5%
Other 1.3%