Киевский клуб любителей астрономии "Астрополис"

astromagazin.net
* *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
26 Мая 2017, 16:17:14


Автор Тема: Статья на тему использования INDI для управления астрожелезом  (Прочитано 747 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

В своё время я написал статью на тему конвертации текстовых каталогов небесных объектов при помощи утилиты CatGen для работы с ними в Картесе.

Вот думаю на тему, чтобы написать статью об использовании INDI для управления астрожелезом через компьютеры с Линуксом и Маками :)
Хочу, чтобы вы писали свои вопросы и заметки, на основании которых сложится статья.


-------------------------------------

INDI

Для управления телескопами и всяким астрожелезом в ОС семейства Windows разработана платформа ASCOM http://ascom-standards.org/
А как быть любителям астрономии, котрые "линуксоиды" и "маководы"?
Для них был создан INDI (Instrument Neutral Distributed Interface) мистером Elwood C. Downey из ClearSky Institute.

Ныне существует ресурс http://www.indilib.org, на котором можно отслеживать развитие этого протокола, список им поддерживаемых устройств, а также пообщаться на форуме (на английском языке) с разработчиками* и пользователями.

Кроме того, мир заполоняют одноплатные миникомпьютеры, операционные системы которых базируются на ядре Линукс и на аналогичных ОС. Мощности этих мелких "железяк" с каждым годом становятся всё больше, а текущих уже вполне достаточно для того, чтобы на их базе организовать компактный "электронный мозг" для управления монтировкой телескопа, затвором фотокамеры, мотофокусёром, процессами автогидирования, куполом обсерватории т.п.

Поскольку исходные коды INDI открыты, то любой программист может изменять/улучшать их в рамках лицензии GNU Lesser General Public License (LGPL v2+).

INDI — это собственно сервер, который устанавливается на компьютере, к которому физически подключен телескоп и прочие устройства. Кроме сервера, существуют драйверы различных астрономических устройств, которые пользователь устанавливает под своё астрожелезо.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Поскольку сервер INDI является “безликим”, то для общения с ним требуется INDI клиент
Если нужен удалённый доступ к телескопу и астрожелезу, то INDI сервер и нужные драйверы устанавливаются на удалённом сервере, а на клиентской машине устанавливается INDI клиент.

INDI клиенты бывают разными  :)
1. компьютерные атласы.
2. отдельные программы.
3. веб-приложения.

Вот их список, требующий обновления http://www.indilib.org/about/clients.html
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Теперь о поддерживаемых устройствах.
Поскольку любители астрономии-“линуксоиды” не считают, что нужно подавать в суд на производителей астрожелеза из-за того, что они не видят необходимость делать его поддержку для ОС семейства Линукс, то этим занимается мировое сообщество в лице программистов. Выше я указывал, что с ними можно пообщаться на форуме  http://www.indilib.org/forum/index.html , а также попросить о том чтобы они написали драйвер для астрожелезяки

Вот категории/количества ныне поддерживаемых устройств http://www.indilib.org/devices.html

P.S. Сегодня 02 июня 2016 года: я добавляю новый скрин, на котором видно, что за год увеличилось количество поддерживаемых девайсов:
« Последнее редактирование: 02 Июня 2016, 19:26:01 от Олег Малий »
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy
Сказали спасибо

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Теперь о подключении экваториальных монтировок.

У меня в наличии экваториальная монтировка SW NEQ6 Pro SynScan и компьютеры на ОС Ubuntu (32-bit и 64 bit).
Сперва я подключал монтировку к компьютерам через комплектный кабель, который втыкается в пульт SynScan. Но такое подключение не позволяет гидировать, а поэтому нужно пользоваться шнуром EQmod. В комплекте с этим шнуром обычно идёт диск с драйвером для OS Windows, но он нам не нужен, поскольку в системном уже ядре есть поддержка PL2303.
Вот как на моём компьютере, в котором вообще отсутствует разъём RS232, отображается кабель EQmod - это строка:
Bus 003 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port


Кроме того, нужно предварительно разрешить работу с USB или COM-портом, в противном случае монтировка не подключится, но вы получите  в журнале INDI клиента следующее сообщение с инструкцией:
Error connecting to port /dev/ttyUSB0: Port failure Error: Permission denied. Try adding your user to the dialout group and restart (sudo adduser $USER dialout)

Сообщение гласит об ошибке подключения, потому как у вас нет прав на использование выше упомянутого USB порта, а краткая инструкция указывает, как это право получить.
Для этого мы выполняем в терминале команду:
sudo adduser $USER dialout
где $USER заменим своей учётной записью:


После компьютер нужно перезагрузить, чтобы изменения вступили в силу, или же выйти и повторно зайти в свою учётную запись.

Примечание: на линуксе COM-порт прописывается, как /dev/ttyS0.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy
Сказали спасибо

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Установка INDI сервера и драйверов астрожелеза
См. http://www.indilib.org/download.html

Для Ubuntu 14.04 и новее рекомендую установку INDI с комплектом драйверов при помощью выполнения команд в терминале:
sudo apt-add-repository ppa:mutlaqja/ppa
sudo apt-add-repository ppa:mutlaqja/astrometry.net
sudo apt-get update
sudo apt-get install indi-full


Также прилагаю простой установочный скрипт indi.sh (вес 154Б), который содержит команды выше: его запуск избавляет от необходимости последовательного набора команд.
« Последнее редактирование: 13 Февраля 2015, 13:32:40 от Олег Малий »
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

При большом желании не ставить лишние драйверы, вес каждого из которых от 40КБ, можно вместо выполнения команды:
sudo apt-get install indi-full
выполнить sudo apt-get install libindi0
а после зайти в Synaptic и вручную установить нужные драйверы, а также удалить лишние:
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Теперь об управлении цифровыми фотоаппаратами.

Чтобы не писать 300 драйверов под 300 разных цифровых фотоаппаратов, был создан один INDI драйвер indi_gphoto_ccd (вес около 110КБ), использующий постороннюю библиотеку libgphoto2, которая собственно и поддерживает обилие цифровиков.

Поэтому вопрос на тему, а поддерживает ли INDI вот такой вот цифровик, сводится к вопросу его поддержки библиотекой libgphoto2.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Запуск INDI сервера и драйверов

В общем случае, сервер вместе с драйверами запускается с командной строки:
indiserver [параметры] driver1 driver2 driver3 driverN

а вот параметры:
-l d : записывает сообщения драйвера в файл вида d/YYYY-MM-DD.islog
-m m : выключает клиент, если тот получает больше мегабайт, чем пользователем указанное (64 МБ по умолчанию).
-p p : задаёт порт IP, который по умолчанию 7624
-f path: путь к FIFO для динамического старта или выключения драйверов. 
-v : показывает ключевые события
-vv : -v + ключевое сообщение
-vvv : -vv + готовый xml
driver : исполняемый файл или устройство@хост[:порт]

Например, мы хотим запустить сервер INDI с драйвером телескопа EQMod, драйвером цифровика, с игровым джойстиком для перемещения трубы телескопа. Хотим задействовать порт 8000, а также то, чтобы сервер выдавал ключевые сообщения:

indiserver -vv -p 8000 indi_eqmod_telescope indi_gphoto_ccd indi_joystick
« Последнее редактирование: 14 Февраля 2015, 12:13:19 от Олег Малий »
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Об одновременном запуске астрожелеза, которое использует один и тот же  драйвер.

Например, есть у нас две одинаковые монтировки, управляемые через драйвер EQMod (indi_eqmod_telescope), которыми мы хотим управлять с одного INDI клиента.

Для этого мы можем использовать запуск INDI сервера в режиме FIFO.

Открываем терминал и выполняем команды:
mkfifo /tmp/EQMODFIFO
indiserver -v -f /tmp/EQMODFIFO


Открывам второй терминал и запускаем/останавливаем работу драйвера наших монтировок:
echo 'start indi_eqmod_telescope -n "Telescope One"' > /tmp/EQMODFIFO
echo 'start indi_eqmod_telescope -n "Telescope Two"' > /tmp/EQMODFIFO


Если мы хотим остановить вторую монтировку, то выполняем команду:
stop indi_eqmod_telescope "Telescope Two"
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

А вот если мы не желаем связываться с этим FIFO, но таки хотим одновременно запустить управление двумя одинаковыми монтировками, или тремя одинаковыми CCD?

Ну, хорошо...
Это также возможно, но для этого нужно взять програмный код и скомпилировать одинаковые драйверы, но с разными именами.
Например,
indi_eqmod_telescope_NEQ6
indi_eqmod_telescope_WS180


а после их запустить примерно такой командой:
indiserver -vv indi_eqmod_telescope_NEQ6 indi_eqmod_telescope_WS180

В этом случае, мы можем одновременно открыть два Картеса, чтобы параллельно, но независимо, наводить на небесные объекты две разных монтировки.
Cм видео для этого случая


« Последнее редактирование: 14 Февраля 2015, 12:54:34 от Олег Малий »
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy
Сказали спасибо

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

В своё время, Паша продавал через этот форум ч/б камеры Firefly MV FMVU-03MTM-CS USB2, вот я и купил одну из них.
Эти камеры имеют свои SDK под Линукс, но мне было интересно использовать мою вместе с INDI.

Посколько такого драйвера не было, то я попросил его создать на форуме http://www.indilib.org
Через некоторое время, некий человек мне ответил, что такой драйвер уже им создан и дал ссылку на его загрузку.

Вот команда для запуска этого драйвера:
indiserver -v indi_ffmv_ccd

« Последнее редактирование: 14 Февраля 2015, 15:53:14 от Олег Малий »
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Диаграмма на тему использования INDI.

В левой стороне диаграммы перечислен ряд программ для Linux и Android, поддерживающих INDI.
Они имеют разную функциональность, а pyindi-client так вообще запускается из интернет-просмотрщика.
IPARCOS устанавливается на смартфоны и планшеты с Android.
По правую сторону диаграммы находится INDI сервер с драйверами всякого астрожелеза и т.п.: одноплатные микрокомпьютеры типа Raspberry PI, Arduino, которые управляют вспомогательным обсерваторным оборудованием.
К серверу подключено астрожелезо.
Связь между пользователем и его удалённой обсерваторией устанавливается через Интернет без посредничества посторонних программ типа TeamViewer.
Пользователь может использовать эти клиентские программы параллельно: любое изменение, внесённое при помощи одной из клиентских программ, сообщается/транслируется на все остальные подключенные клиенты INDI.
К INDI серверу может быть подключено несколько одинаковых или разных монтировок, камер и т.п. для параллельного управления ими.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

14 апреля 2016 я установил версию Ubuntu 16.10 (64 bit). после чего написал комманды для установки libindi на "чистую" ОС:

sudo apt install cmake
sudo apt install libusb-1.0-0-dev libnova-dev libcfitsio3-dev libgsl0-dev
sudo apt install zlib*-dev libcurl4-nss-dev libjpeg-dev

wget http://indilib.org/download/source/send/2-source/8-indi-library.html
mv 8-indi-library.html libindi.tar.gz
tar -xzf libindi.tar.gz

mv libindi_?.?.? libindi

mkdir libindi_build
cd libindi_build
cmake -DCMAKE_INSTALL_PREFIX=/usr . ../libindi
sudo make -j install

А вот эти строки служат чисто для получения списка драйверов:
cd ~
cd /usr/bin
ls indi*
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Также существует драйвер для INDI USBRelay2 Roof, который позволяет использовать USB реле для управления крышей павильона телескопа:
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Когда обсерватория далеко от пользователя, то он не имеет к ней непосредственного доступа.
Как быть в случае пропажи интернетной связи с ней?

Для этого есть INDI драйвер виртуального устройства WatchDog, задача которого - корректно завершить работу удалённой обсерватории в случае обрыва связи с ней.

Пользователь сам конфигурирует уникальную процедуру аварийного завершения работы.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy
Сказали спасибо

LifeIsGood

  • Клуб Астрополис, Модератор
  • Оффлайн Оффлайн
  • Сообщений: 4883
  • Благодарностей: 235

Олег, спасибо!
Отличная тема!
Теперь не чувствую себя таким ущербным в астрофото с Маком :)
Записан

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

И ещё одно INDI виртуальное устройство или Imager Agent для задания параметров съёмки, колеса фильтров, получения и пересылки отснятых кадров из сервера на клиентский компьютер...
Типа менеджер-планировщик астрофото сессий.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Олег, спасибо!
Отличная тема!
Теперь не чувствую себя таким ущербным в астрофото с Маком :)
Там есть инфа http://www.indilib.org/about/clients.html
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

Кто имеет желание применить PiFace - плату расширений I/O для Raspberry Pi, тот может это сделать с помощью специального INDI драйвера.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy

Олег Малий

  • Оффлайн Оффлайн
  • Сообщений: 1973
  • Благодарностей: 358

P.S. Также имеется INDI драйвер для AltIMU-10 v4 - специального модуля с датчиками: альтиметр, гироскоп, акселерометр, магнитометр и барометр.
Записан
Скачиваем и тестируем дистрибутив Ubuntu Astronomy