# 铱/RockBlock 卫星通信系统

卫星通信系统可用于提供地面站与载具之间的长距离高延迟链路。

本主题介绍如何建立一个使用 RockBlock 作为铱星 SBD 卫星通信系统服务提供商的系统。在信号质量良好的情况下,用户可以预期 10 至 15 秒的延迟时间。

# 概述

卫星通信链路需要以下组件:

完整的系统结构如下所示:

建筑学

备注

使用当前版本的 QGroundControl 在 Ubuntu 14.04 和 16.04 上运行。

  • 该系统也许可以在其他地面站和操作系统上运行,但尚未进行过测试(也不保证一定能运行)。
  • RockBlock MK2 (打开新窗口) 模块也可以使用。推荐使用 RockBlock 9603 模块,因为它体积更小、重量更轻,但功能相同。

# 费用

英国链接的运行成本包括线路租金和每条信息的费用:

  • 每个模块都需要激活,每月费用为 10.00 英镑
  • 通过该系统传输每条信息的成本为 学分 每 50 个字节。可以从 RockBlock 购买成捆的信用点数,每点 0.04 英镑至 0.11 英镑不等,具体价格取决于成捆信用点数的大小。

参考 RockBlock 文档 (打开新窗口) 如需详细了解模块、运行成本和 岩块 一般来说

# 载具设置

# 布线

将 RockBlock 模块连接到 Pixhawk 的串行端口。由于模块的电源要求,只能通过高功率串行端口供电,因为在 5 V 电压下最大需要 0.5 A 电流。如果没有可用/空闲的电源,则必须设置另一个与 Pixhawk 具有相同接地水平并能提供所需功率的电源。有关 连接器 (打开新窗口)电力需求 (打开新窗口) 可以在 RockBlock 文档中找到。

# 模块

模块既可以使用内置天线,也可以使用连接到 SMA 连接器的外置天线。连接 在两种天线模式之间切换 (打开新窗口) 需要改变小型射频连接电缆的位置。如果使用外置天线,一定要确保天线已连接到模块上,然后再通电,以免损坏模块。

模块的默认波特率为 19200。但 PX4 铱sbd 驱动程序要求波特率为 115200,因此需要使用 AT 命令 (打开新窗口).

  1. 使用 19200/8-N-1 设置连接模块,并使用命令检查通信是否正常: AT.答复应该是 好的.
  2. 更改波特率:
    AT+IPR=9
    
  3. 现在使用 115200/8-N-1 设置重新连接模型并保存配置:
    AT&W0
    

现在,该模块已可与 PX4 配合使用。

# 软件

配置串行端口 上运行 RockBlock 模块。 ISBD_CONFIG.无需设置端口的波特率,因为波特率由驱动程序配置。

备注

如果配置参数在 QGroundControl 那么您可能需要 为固件添加驱动程序:

drivers/telemetry/iridiumsbd

# 岩块设置

在 RockBlock 上购买第一个模块时,首先需要创建一个用户账户。

登录 账户 (打开新窗口) 下注册 RockBlock 模块 我的 RockBLOCKs.激活模块的线路租用,并确保账户上有足够的点数用于预计的飞行时间。使用默认设置时,飞行器每分钟向地面站发送一条信息。

为信息中继服务器设置一个发送组,并将模块添加到该发送组:

交付组

# 中继服务器设置

中继服务器应在 Ubuntu 16.04 或 14.04 操作系统上运行。

  1. 作为信息中继的服务器应有一个静态 IP 地址和两个可公开访问的开放 TCP 端口:

    • 5672RabbitMQ 消息中介(可在 rabbitmq 设置)
    • 45679 的 HTTP POST 接口(可在 relay.cfg 文件)
  2. 安装所需的 python 模块:

    苏都 核心 安装 鼠兔龙卷风未来
    
  3. 安装 rabbitmq 消息代理:

    sudo apt install rabbitmq-server
    
  4. 配置代理的凭据(将 PWD 更改为您喜欢的密码):

    苏都 rabbitmqctl add_user iridiumsbd 工务司
    苏都 rabbitmqctl set_permissions iridiumsbd ".*"; ".*"; ".*";
    
  5. 克隆 卫星通信基础设施 (打开新窗口) 存放处:

    git clone https://github.com/acfloria/SatComInfrastructure.git
    
  6. 转到 卫星通信基础设施 repo 并配置代理的队列:

    ./setup_rabbit.py localhost iridiumsbd PWD
    
  7. 验证设置:

    sudo rabbitmqctl list_queues
    

    这样就会出现一个包含 4 个队列的列表: MO, MO_LOG, MT, MT_LOG

  8. 编辑 relay.cfg 配置文件,以反映您的设置。

  9. 以分离模式启动中继脚本:

    screen -dm bash -c 'cd SatcomInfrastructure/; ./relay.py
    

其他说明包括

  • 与屏幕分离:
    ctrl+a d
    
  • 停止执行脚本:
    ctrl+a :quit
    
  • 重新连接到屏幕::
    屏幕 -dr
    

# 地面站计算机

设置地面站:

  1. 安装所需的 python 模块:

    sudo pip install pika tornado future
    
  2. 克隆 SatComInfrastructure 资源库:

    git clone https://github.com/acfloria/SatComInfrastructure.git
    
  3. 编辑 udp2rabbit.cfg 配置文件,以反映您的设置。

  4. 安装 QGroundControl (打开新窗口) (每日建设)。

  5. 在 QGC 中添加一个 UDP 连接,并设置参数:

    • 监听端口:10000
    • 目标主机:127.0.0.1:10001
    • 高延迟:选中

    高延迟链路设置

# 验证

  1. 在地面站计算机上打开终端,切换到 卫星通信基础设施 存储库。然后启动 udp2rabbit.py 剧本

    ./udp2rabbit.py
    
  2. 洛克王国账户 (打开新窗口) 中创建的交付组。 测试交付组 标签。

如果在终端中 udp2rabbit.py 如果脚本运行几秒钟后就能观察到信息确认,则说明 RockBlock 发送组、中继服务器和 udp2rabbit 脚本设置正确:

udp2rabbit 信息确认

# 运行系统

  1. 开始 QGroundControl.先手动连接高延迟链路,然后再连接常规遥测链路:

    连接高延迟链路

  2. 在地面站计算机上打开终端,切换到 卫星通信基础设施 存储库。然后启动 udp2rabbit.py 剧本

    ./udp2rabbit.py
    
  3. 启动载具。

  4. 等到第一个 高延迟2 信息。可以使用 MAVLink 检查员 小工具或工具栏上的 链接指示器.如果有一个以上的链接连接到活动载具,则 链接指示器 点击显示链接的名称,即可显示所有链接:

    链接工具栏

    链路指示器始终显示优先链路的名称。

  5. 卫星通信系统现在可以使用了。优先链路是发送命令的链路,通过以下方式确定:

    • 如果用户没有命令链接,则优先选择普通无线电遥测链接,而不是高延迟链接。

    • 如果飞行器处于上膛状态且无线电遥测链路丢失(在一定时间内未收到 MAVLink 信息),自动驾驶仪和 QGC 将从常规无线电遥测切换回高延迟链路。一旦无线电遥测链路恢复,QGC 和自动驾驶仪将立即切换回该链路。

    • 用户可以选择优先于 链接指示器 工具栏上的只要该链接处于活动状态,或者用户选择了其他优先链接,该链接就会被保留为优先链接:

      选择优先链接

# 故障排除

  • 接收到来自飞机的卫星通信信息,但无法发送指令(载具无反应)

    • 检查中继服务器的设置,确保其正确无误,尤其是 IMEI。
  • 地面站没有收到飞机发出的卫星通信信息:

    • 使用系统控制台检查 铱sbd 驱动程序是否启动,以及模块是否接收到来自任何卫星的信号:
      铱星状态
      
    • 使用上述验证步骤,确保中继服务器、交付组和 udp2rabbit.py 脚本设置正确。
    • 检查链接是否已连接,设置是否正确。
  • IridiumSBD 驱动程序无法启动:

    • 重新启动载具。如果这有助于增加 extras.txt 在启动驱动程序之前。如果还不行,请确保 Pixhawk 和模块的地面高度一致。同时确认模块的波特率设置为 115200。
  • 地面接收到第一条信息,但飞行器一起飞就无法传输信息,或者延迟时间大大延长(约为几分钟)。

    • 飞行后检查信号质量。如果在飞行过程中信号质量下降,而您使用的是内置天线,请考虑使用外置天线。如果您已经在使用外置天线,请尝试将天线尽可能远离电子设备或任何可能干扰信号的东西。同时确保天线没有损坏。