Ground Station:开源的卫星跟踪和无线电通信

Ground Station是一个功能齐全的开源卫星跟踪和无线电通信软件解决方案,专为业余无线电操作员、卫星爱好者和研究人员设计。它提供了一个全面的平台,用于监测航天器、控制无线电设备以及接收来自卫星的实时无线电信号。

Ground Station详细介绍

Ground Station核心功能特性

  1. 实时卫星跟踪:采用高精度轨道模型追踪数百颗卫星,TLE数据自动从CelesTrak和SatNOGS更新。
  2. 自动天线旋转控制:与主流天线旋转器连接,在卫星过顶时自动追踪。
  3. 电台控制(Hamlib):在卫星过境期间控制支持Hamlib的电台并进行多普勒频移校正。
  4. SDR集成:流式传输并记录来自多种SDR设备的实时无线电信号,包括RTL-SDR、SoapySDR以及UHD/USRP无线电。
  5. IQ录制与回放:以SigMF格式录制包含完整元数据的原始IQ数据,并通过虚拟SDR设备回放录制文件。
  6. 数据解码:支持SSTV、FSK、GFSK、GMSK和采用AX25 USP Geoscan成帧的BPSK信号解码。
  7. AI语音转录:通过Gemini Live或Deepgram对解调后的音频进行实时语音转文字,注重隐私保护。
  8. 计划观测任务:定义详细的观测任务,在卫星过境期间自动完成监听、解码、转录以及音频和IQ数据的记录。
  9. SatDump集成:通过SatDump解码来自METEOR-M2卫星的气象图像,并与自动化观测任务结合。
  10. 性能监控:实时可视化信号处理流程,展示数据在各组件间的流动情况,监控队列健康状况、处理速率及组件统计信息。

系统架构

Ground Station采用现代化的微服务架构,包含三个主要组件:

前端:基于React + Redux + Material-UI构建的响应式Web界面,适配桌面、平板和手机设备。

后端:基于FastAPI + Socket.IO的Python应用,提供REST API和实时通信接口。

工作进程:多个专用工作进程处理核心功能:

  • 卫星跟踪与硬件控制
  • SDR IQ采集
  • FFT处理
  • 解调器
  • IQ录制器
  • 解码器
  • SDR本地/远程探测

技术栈

  • 后端:FastAPI、SQLAlchemy、Skyfield、SGP4、Socket.IO、pyrtlsdr、SoapySDR
  • 前端:React、Redux Toolkit、Material-UI、Vite、Socket.IO Client、Leaflet、satellite.js
  • 第三方集成:SatDump、gr-satellites

部署安装步骤

系统要求

  • 操作系统:支持Linux(推荐Ubuntu/Debian)、macOS、Windows(通过Docker)
  • 硬件:支持RTL-SDR、SoapySDR、UHD/USRP等SDR设备
  • 存储空间:至少10GB可用空间
  • 内存:建议8GB或以上
  • 网络:用于TLE数据同步和远程访问

Docker部署(推荐方式)

1. 安装Docker

首先确保系统已安装Docker。对于Ubuntu系统,可参考以下步骤:

bash 复制代码
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
sudo docker run hello-world
2. 配置Docker镜像加速器(可选但推荐)
bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.m.daocloud.io", "https://hub-mirror.c.163.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 部署Ground Station

选项1:从源码构建(适合开发或定制)

bash 复制代码
# 克隆项目
git clone https://github.com/sgoudelis/ground-station.git
cd ground-station

# 构建Docker镜像
docker build -t ground-station .

# 运行容器(标准桥接模式,适用于本地SDR)
docker run --rm -p 7000:7000 --device /dev/bus/usb ground-station

# 或使用主机网络(支持SoapySDR远程服务器发现)
docker run --rm --network host --device /dev/bus/usb ground-station

选项2:使用预构建镜像(推荐生产环境)

bash 复制代码
# 拉取最新版本镜像
docker pull ghcr.io/sgoudelis/ground-station:latest

# AMD64架构运行(支持SoapySDR远程发现)
docker run -d \
  --platform linux/amd64 \
  --network host \
  --name ground-station \
  --restart unless-stopped \
  --device=/dev/bus/usb \
  --privileged \
  -v /path/to/data:/app/backend/data \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:latest

# ARM64架构(如树莓派5)
docker run -d \
  --platform linux/arm64 \
  --network host \
  --name ground-station \
  --restart unless-stopped \
  -v /dev:/dev \
  --privileged \
  -v /path/to/data:/app/backend/data \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:latest

# 标准桥接模式(无SoapySDR远程发现)
docker run -d \
  -p 7000:7000 \
  --name ground-station \
  --restart unless-stopped \
  --device=/dev/bus/usb \
  --privileged \
  -v /path/to/data:/app/backend/data \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:latest

重要参数说明

  • --network host:启用SoapySDR远程服务器自动发现(推荐)
  • --device=/dev/bus/usb:允许容器访问USB设备
  • -v /path/to/data:/app/backend/data:挂载数据目录,确保数据持久化
  • -e GS_ENVIRONMENT=production:设置生产环境
  • -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile:优化GNU Radio缓冲区性能
4. 访问Web界面

部署完成后,通过浏览器访问 http://<服务器IP>:7000 即可使用Ground Station。

使用方法指南

1. 初始设置

  1. 硬件连接:将SDR设备(如RTL-SDR)连接到计算机
  2. 设备检测:在Web界面中,系统应自动检测到连接的SDR设备
  3. TLE数据同步:首次使用时,系统会自动从CelesTrak和SatNOGS同步卫星轨道数据

2. 基本操作流程

卫星跟踪
  1. 选择卫星组:在"Global Satellite Overview"页面选择感兴趣的卫星组(如业余卫星、气象卫星等)
  2. 设置目标卫星:点击卫星列表中的"SET AS TARGET"按钮
  3. 查看轨道信息:系统显示卫星的实时位置、轨道参数和过境预测
  4. 自动跟踪:如果连接了天线旋转器,系统会自动调整天线方向跟踪卫星
SDR配置
  1. 选择SDR设备:在"SDR Hardware Management"页面选择可用的SDR设备
  2. 配置参数:设置中心频率、采样率、增益等参数
  3. 开始接收:点击"Start"按钮开始接收信号
信号处理
  1. 频谱显示:查看实时频谱和瀑布图
  2. 解调设置:选择适当的解调模式(FM、SSB、AM等)
  3. 解码配置:根据需要启用相应的解码器(SSTV、GMSK等)
  4. AI转录:启用实时语音转文字功能(需要配置API密钥)

3. 自动化观测

  1. 创建监控模板:在"Observations Overview"页面定义卫星监控模板
  2. 配置硬件:指定使用的SDR设备、天线旋转器和电台
  3. 设置信号参数:配置频率、带宽、解调模式等
  4. 定义任务:选择要执行的任务(IQ录制、音频录制、解码、转录等)
  5. 调度观测:系统自动计算并安排符合条件的卫星过境

4. IQ录制与回放

  1. 开始录制:在接收信号时点击录制按钮,系统以SigMF格式保存IQ数据
  2. 管理录制文件:在"File Browser & Decoders"页面查看和管理录制文件
  3. 回放录制:选择录制文件作为虚拟SDR设备进行回放和分析

5. 高级功能

  1. 多SDR操作:支持同时使用多个SDR设备进行并行观测
  2. 远程SDR支持:通过SoapyRemote连接网络上的远程SDR设备
  3. 性能监控:查看"DSP Topology & Performance"页面监控信号处理流水线状态
  4. 数据导出:导出解码后的图像、数据包和转录文本

6. 硬件支持

  • SDR设备:RTL-SDR、Airspy、HackRF、LimeSDR、UHD/USRP、SDRplay等
  • 天线旋转器:支持Hamlib兼容的旋转器
  • 电台控制:支持Hamlib兼容的电台,带多普勒校正功能

故障排除

常见问题

  1. SDR设备未检测到:确保设备已正确连接,并检查USB权限
  2. 无卫星数据显示:检查网络连接,确保TLE数据同步成功
  3. 音频无输出:检查浏览器音频设置和解调器配置
  4. 性能问题:调整采样率和缓冲区大小,或使用性能更强的硬件

日志查看

bash 复制代码
# 查看容器日志
docker logs ground-station

# 实时查看日志
docker logs -f ground-station
相关推荐
Ahtacca1 小时前
实测分享:AI 生成 Python 科技海报时,如何避免文字乱码问题
人工智能·科技
杨超越luckly1 小时前
AI Agent应用指南 :自动化构建品牌数据库:提示词 + API + 结构化输出
大数据·数据库·人工智能·自动化·ai agent
HelloGitHub1 小时前
GitHub 悄悄起飞的开源项目,想让 AI 接管你的电脑
开源·github
Takoony1 小时前
Nanobot 源码深度剖析:一个轻量级 AI Agent 框架的架构设计与实现原理
人工智能
物联网软硬件开发-轨物科技2 小时前
【轨物洞见】定义“视觉语音时代”:轨物科技重塑人机交互新范式
人工智能·科技·人机交互
DX_水位流量监测2 小时前
德希科技供水水质多参数 PLC 一体机
网络·人工智能·深度学习·水质监测·水质传感器·水质厂家·供水水质监测
艾莉丝努力练剑2 小时前
System V IPC底层原理详解
linux·运维·服务器·网络·c++·人工智能·学习
ONLYOFFICE2 小时前
ONLYOFFICE 全新 PDF 编辑器 API 上线,自动化处理 PDF 内容
前端·人工智能·pdf·编辑器·onlyoffice
放风筝的猪2 小时前
从“逐字预测”到“全量并行”:深度拆解语音识别与合成的效率革命
人工智能·语音识别
chnyi6_ya2 小时前
Beyond Language Modeling: An Exploration of Multimodal Pretraining
人工智能·语言模型·自然语言处理