INDI: кросплатформенний протокол для керування астрономічними інструментами


Коли астроном-любитель використовує Linux у своїй роботі, він зразу ж ставить собі питання: а як можна керувати телескопами та іншим обладнанням (фокусерами, CCD камерами гідами тощо) з Linux платформи? Для Windows існує давно відомий ASCOM і для нього треба тільки знайти потрібний драйвер. А як же Linux?

Для Linux існує продукт із трохи іншим підходом - клієнт-серверним. Він має назву INDI (Instrument Neutral Distributed Interface) та являється колекцією з кількох продуктів: indi сервера, indi протокола, indi клієнта та indi драйверів. Як це виглядає? На ОС Linux чи Android встановлюється indiserver (для решти платформ не реалізований. Є проект для Windows WINDI, але я не в курсі, на якій він зараз стадії готовності), який, фактично, відіграє роль такої собі "інтелектуальної перемички" між indi драйверами пристроїв, які до нього підключаються з одного боку та клієнтом з іншого. Себто, клієнт, що працює по легковісному стандартному indi-протоколу (базується на XML), з'єднується з сервером і передає йому команди та приймає метрики роботи приладів. Сервер (indiserver) перетворює команди в інструкції для драйверів пристроїв і, у свою чергу, збирає дані з драйверів про роботу самих цих приладів та надсилає клієнту.

Принципова схема роботи INDI сервера
Але, чому б не звертатися до драйверів напряму, як це зроблено в ASCOM? Клієнт-серверна архітектура має ряд переваг. Основна з них - це віддалене керування пристроями через просте TCP з'єднання. Таким чином, наприклад, легко організувати роботу віддаленої обсерваторії на базі, ноутбука чи мінікомп'ютера, типу Raspberry PI, з'єднуючись із ним через WIFI, чи виту пару, навіть, за межами локальної мережі, через інтернет. Тобто, замість встановлення віддаленого з'єднання до машини, яке достатньо "важке" в плані трафіку й передбачає передачу зображень, тут по мережі передаються тільки команди у форматі XML. Друга перевага - це кросплатформенність клієнтської частини. Маючи один сервер, до нього можна під'єднуватися клієнтами з будь-якої операційної системи. На сьогодні існують реалізації практично для всіх популярних платформ (наприклад, якщо до телескопу "підчеплений" ноутбук з indi сервером, то його можна використовувати в якості wifi точки доступу, а керувати приладами через клієнт на мобільному телефоні).

В принципі, клієнт сам теж може напряму підключатися до драйвера, але так, як правило, не роблять, бо в такому випадку ми отримуємо конструкцію один клієнт-один драйвер)

Обладнання

INDI підтримує всі типи обладнання: телескопи, фокусери, гіди, CCD камери, монтування, колеса фільтрів, джойстики, купола обсерваторій, адаптивну оптику, метеостанції тощо (повний список). Також, слід відмітити підтримку EQMod, Raspberry PI GPIO інтерфейсу (для саморобних пристроїв) та інтерфейсів для gphoto2 і v4l2, які дозволяють оперувати "дзеркалками" Cannon/Nikon та вебкамерами відповідно.

Клієнти

Клієнтами indi можуть бути різні програми, включаючи віртуальні планетарії, прості "віддалені пульти керування" для телескопів, програми для астрофото, автогіди тощо. Ось декілька найпопулярніших:

KStars+Ekos. Мабуть, найбільш повнофункціональним клієнтом для indi на сьогодні являється зв'язка віртуального планетарію kstars та системи керування indi ekos (являється частиною kstars), яка розробляється в тісній взаємодії з indi. Існує для всіх платформ. Також, є версія kstars для android. Може бути встановлений з пакетів вашого linux дистрибутива.
Керівництво з користування.

SkyChart. Ще один віртуальний планетарій із вбудованим indi клієнтом. Так само, як і kstars, він написаний під всі платформи, включаючи windows. Проте, SkyChart не має компоненти для локального керування indiserver-ом, подібного до ekos у kstars. Тому, якщо у вас немає запущеного і налаштованого віддаленого indiserver-а, або ви працюєте з ним локально, рекомендував би використовувати його в комбінації з indistarter, ccdciel, eqmodgui (опціонально).

Indistarter. Не зовсім indi клієнт. Точніше, не тільки indi клієнт. Продукт дуже схожий на ekos, але йде окремо від віртуальних планетаріїв і являється, по-суті, графічним інтерфейсом для роботи з indiserver-ом (при цьому клієнт, який працює з сервером, може знаходитись де завгодно). Для повноцінної роботи його необхідно ставити на одній машині з indiserver-ом. Себто, для того, щоб налаштувати indiserver з правильним профілем під ваше обладнання, вам потрібен або встановлений на тій же машині kstars із ekos-ом, або indistarter (або, звичайно, можете зробити налаштування вручну. Але, то, таки, геморойно. Я не пробував і не маю бажання ;) )

CCDCiel. Програма для роботи астрономічних зйомок. Являється частиною зв'язки SkyChart-CCDCiel-Indistarter-EQModGUI (опціонально) і являється альтернативою монолітного SkyChart+Ekos. Містить у собі весь необхідний функціонал для цифрового фото астрономічних об'єктів. Працює як клієнт для indiserver-а.

EQModGui. Програма для керування монтуваннями SkyWatcher (H,N)EQ-XX. Підключається, як правило, напряму до indi_eqmod драйвера. Так як являється indi клієнтом, то теоретично, може керувати будь-якими монтуваннями через indi протокол. Але, на практиці я цього не перевіряв (ні на чому), а в інтернеті нічого такого не знайшов. Зараз програма являється опціональною, так як kstars має свій інтерфейс для безпосереднього керування монтуваннями, а SkyChart 2 роки тому обзавівся власним.

PHD2. Програма для автогідування. Працює з гідуючими камерами та монтуваннями через indi протокол.

Remote Observatory та IPARCOS - прості indi клієнти для android

Це короткий опис декількох indi клієнтів. Для більш детального ознайомлення ось повний список клієнтів для будь-яких популярних платформ з різним функціоналом (в т.ч. напр. pixinsite).

Детальніше про встановлення та роботу з indi сервером та клієнтами та обладнанням читайте у наступних дописах

Посилання

Офіційний сайт проекту
Стаття на astroclub по сабжу  і ще одна
Тред на astronomy.ru
Опис INDI архітектури та протоколу (англ.)
Керівництво для розробників і ще трохи
INDI та Arduino
INDI та Raspberry PI

Коментарі

Популярні дописи з цього блогу

Дуже Великі Радіотелескопи

Дуже Великі Телескопи

Ракетобудування через віки