Система супутникового зв'язку Iridium/RockBlock
Система супутникового зв'язку може використовуватись для забезпечення високого діапазону між наземною станцією та транспортним засобом.
Ця тема описує спосіб налаштування системи, яка використовує RockBlock як постачальника послуг для системи зв'язку зі супутниковими системами SBD. З огляду на хорошу якість сигналу, користувачі можуть очікувати затримки від 10 до 15 секунд.
Загальний огляд
Для посилання на супутникове зв'язку потрібні наступні компоненти:
- Модуль Супутникового модему RockBlock 9603 Iridium, підключений до Pixhawk, спалахнув за допомогою автопілота PX4.
- Сервер повторного повідомлення працює Ubuntu Linux.
- Автономний комп'ютер запущено QGroundControl на Ubuntu Linux
Нижче показана вся архітектура системи:
Налаштування було протестовано з поточною версією QGroundControl працює на Ubuntu 14.04 і 16.04.
- Можливо, можна запустити систему на інших наземних станціях і операційних системах, але це не було перевірено (і не гарантовано працює).
- Також можна використовувати модуль RockBlock MK2. Модуль RockBlock 9603 рекомендується оскільки він є меншим та легшим, одночасно забезпечує той самий функціонал.
Витрати
Посилання на посилання, що працює в Великобританії, складається з вартості оренди лінії та витрат на повідомлення:
- Кожен модуль повинен бути активований, який коштує 10,00 в місяць
- Кожне повідомлення, передане через систему, коштує один кредит за 50 байт. Пакети кредитів можна купити від RockBlock за £0.04-£0.11 за кредит, в залежності від розміру пакета.
Звертайтесь до документації RockBlock для детального пояснення модулів, оперативних витрат та RockBlock загалом.
Налаштування транспорту
Підключення
Підключіть модуль RockBlock до послідовного порту Pixhawk. Через вимоги до живлення модуля його можна живити лише через високопотужний послідовний порт, оскільки для роботи необхідно максимум 0,5 А при 5 В. Якщо жоден з них недоступний або вільний, то інший джерело живлення, яке має той самий рівень землі, що й Pixhawk і може забезпечити необхідну потужність, повинно бути налаштоване. Деталі щодо роз'ємів та вимог до живлення можна знайти в документації RockBlock.
Модулі
Модуль може використовувати як внутрішню антену, так і зовнішню, підключену до роз'єму SMA. Для перемикання між двома режимами антен потрібно змінити положення невеликого кабелю RF. Якщо використовується зовнішня антена, завжди переконуйтеся, що антена підключена до модуля перед включенням живлення, щоб уникнути пошкодження модуля.
Стандартна швидкість передачі даних модуля - 19200. Однак драйвер iridiumsbd PX4 вимагає швидкість передачі даних 115200, тому її потрібно змінити за допомогою команд AT.
Підключіться до модуля, встановивши параметри 19200/8-N-1, і перевірте роботу зв'язку за допомогою команди:
AT
. Відповідь має бути:OK
.Змінити швидкість передачі:
AT+IPR=9
Знову підключіться до моделі з параметрами 115200/8-N-1 і збережіть конфігурацію за допомогою:
AT&W0
Модуль тепер готовий до використання з PX4.
Програмне забезпечення
Налаштуйте послідовний порт, на якому буде працювати модуль RockBlock, використовуючи ISBD_CONFIG. Немає потреби встановлювати швидкість передачі для порту, оскільки це налаштовано драйвером.
Якщо параметр конфігурації недоступний у QGroundControl, можливо, вам знадобиться додати драйвер до мікропрограми:
drivers/telemetry/iridiumsbd
Налаштування RockBlock
При придбанні першого модуля на RockBlock спочатку потрібно створити обліковий запис користувача.
Увійдіть у зобліковий запис та зареєструйте модуль RockBlock в розділі Мої RockBLOCKs
. Активуйте оренду лінії для модуля та переконайтеся, що на обліковому записі є достатньо кредитів для очікуваного часу польоту. Якщо використовуються налаштування за замовчуванням, з апаратури відправляється одне повідомлення на хвилину на наземну станцію.
Створіть групу доставки для реле-сервера повідомлень та додайте модуль до цієї групи доставки:
Налаштування сервера станції
Сервер relay має бути запущений або на Ubuntu 16.04 або 14.04 OS.
Сервер, який працює як ретранслятор повідомлень, повинен мати статичну IP-адресу та два загальнодоступних відкритих TCP-порти:
5672
для брокера повідомлень RabbitMQ (можна змінити в налаштуваннях rabbitmq)45679
для інтерфейсу HTTP POST (можна змінити у файлі relay.cfg)
Встановіть необхідні модулі python:
shsudo pip install pika tornado future
Встановіть брокер повідомлень
rabbitmq
:shsudo apt install rabbitmq-server
Налаштуйте облікові дані брокера (змініть PWD на ваш бажаний пароль):
shsudo rabbitmqctl add_user iridiumsbd PWD sudo rabbitmqctl set_permissions iridiumsbd ".*" ".*" ".*"
Клонувати репозиторій SatComInfrastructure:
shgit clone https://github.com/acfloria/SatComInfrastructure.git
Перейдіть до розташування репозиторію SatComInfrastructure і налаштуйте черги брокера:
sh./setup_rabbit.py localhost iridiumsbd PWD
Перевірте налаштування:
shsudo rabbitmqctl list_queues
Це повинно дати вам список із 4 черг:
MO
,MO_LOG
,MT
,MT_LOG
Відредагуйте конфігураційний файл
relay.cfg
, щоб відобразити свої налаштування.Запустіть скрипт реле в режимі відокремленого виконання:
shscreen -dm bash -c 'cd SatcomInfrastructure/; ./relay.py
Інші інструкції включають:
Від’єднати від екрану:
shctrl+a d
Припиніть виконання сценарію:
shctrl+a :quit
Знову приєднати до екрана:
shscreen -dr
Наземна станція
Для налаштування наземної станції:
Встановіть необхідні модулі Python:
shsudo pip install pika tornado future
Клонуйте репозиторій SatComInfrastructure:
shgit clone https://github.com/acfloria/SatComInfrastructure.git
Відредагуйте конфігураційний файл udp2rabbit.cfg, щоб відображати ваші налаштування.
Встановить QGroundControl (щоденна збірка).
Додавайте UDP з'єднання в QGC з параметрами:
- Порт прослуховування: 10000
- Цільові хости: 127.0.0.1:10001
- Висока затримка: позначено
Верифікація
Відкрийте термінал на комп'ютері наземної станції та перейдіть до розташування репозиторію SatComInfrastructure. Потім запустіть скрипт udp2rabbit.py:
sh./udp2rabbit.py
Надішліть тестове повідомлення з облікового запису RockBlock до створеної групи доставки на вкладці
Тестові групи доставки
.
Якщо в терміналі, де запущений скрипт udp2rabbit.py
, протягом кількох секунд можна спостерігати підтвердження для повідомлення, то група доставки RockBlock, реле-сервер та скрипт udp2rabbit налаштовані правильно:
Запуск системи
Запустіть QGroundControl. Спочатку вручну підключіть високо запізнюваний зв'язок, а потім звичайний телеметрійний зв'язок:
Відкрийте термінал на комп'ютері наземної станції та перейдіть до розташування репозиторію SatComInfrastructure. Потім запустіть скрипт udp2rabbit.py:
sh./udp2rabbit.py
Увімкніть транспортний засіб.
Дочекайтеся, доки на QGC не буде отримано перше повідомлення
HIGH_LATENCY2
. Це можна перевірити за допомогою віджету Інспектора MAVLink або на панелі інструментів за допомогою індикатора зв'язку(LinkIndicator). Якщо до активного транспортного засобу підключено більше одного зв'язку, індикатор зв'язку LinkIndicator відображає всі з них, натискаючи на назву показаного зв'язку:Індикатор зв'язку завжди показує назву пріоритетного зв'язку.
Супутникова система зв'язку тепер готова до використання. Пріоритетний зв'язок, через який надсилаються команди, визначається наступними способами:
Якщо користувач не вказав зв'язок, звичайний радіо телеметрійний зв'язок віддається перевагу перед високозапізнюваним зв'язком.
Автопілот та QGC перехоплюватимуть звичайний радіо телеметрійний зв'язок на високозапізнюваний зв'язок, якщо транспортний засіб зброєний, а радіо телеметрійний зв'язок втрачений (не отримано жодного повідомлення MAVLink протягом певного часу). Як тільки радіо телеметрійний зв'язок відновлюється, QGC та автопілот повертаються до нього.
Користувач може вибрати пріоритетний зв'язок через індикатор зв'язку на панелі інструментів. Це посилання зберігається як пріоритетне посилання, поки воно активне або користувач вибирає інше пріоритетне посилання:
Вирішення проблем
Повідомлення з супутникового зв'язку від літака отримуються, але команди не можуть бути передані (транспортний засіб не реагує)
- Перевірте налаштування реле-сервера і переконайтеся, що вони правильні, особливо IMEI.
Повідомлення з супутникового зв'язку від літака не надходять на наземну станцію:
Перевірте за допомогою системної консолі, чи запущено драйвер iridiumsbd, і якщо так, чи приймається сигнал від будь-якого супутника модулем:
shiridiumsbd status
Впевніться за допомогою перевірочних кроків вище, що реле-сервер, група доставки і скрипт
udp2rabbit.py
налаштовані правильно.Перевірте, чи з'єднання активне, і чи налаштування в ньому правильні.
Драйвер IridiumSBD не запускається:
- Перезапустіть транспортний засіб. Якщо це допомагає, збільште час затримки в
extras.txt
, перед тим як драйвер буде запущений. Якщо це не допомагає, переконайтеся, що Pixhawk і модуль мають одинаковий рівень ґрунту. Підтвердіть також, що швидкість передачі даних модуля встановлена на 115200.
- Перезапустіть транспортний засіб. Якщо це допомагає, збільште час затримки в
Перше повідомлення отримане на землі, але як тільки транспортний засіб літає, жодне повідомлення не може бути передане, або затримка значно збільшується (в розмірах хвилин)
- Перевірте якість сигналу після польоту. Якщо вона зменшується під час польоту, і ви використовуєте внутрішню антену, розгляньте можливість використання зовнішньої антени. Якщо ви вже використовуєте зовнішню антену, спробуйте віддалити антену якнайдалі від будь-якої електроніки або будь-якого обладнання, яке може перешкоджати сигналу. Також переконайтеся, що антена не пошкоджена.