Телескопы покупают здесь


A A A A Автор Тема: Написал программу для проверки экваториальной монтировки по фотографиям  (Прочитано 1551 раз)

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

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Всем привет!
Для тестирования/юстировки своего астротрекера ака barndoor написал программку, которая по фотографиям наземных объектов считает точность ведения монтировки.
Принцип работы следующий. Камера с объективом/телеобъективом/телескопом ставится днём на монтировку/астротрекер, монтировка запускается (полярную ось можно конечно не устанавливать), и камера делает с определенной периодичностью снимки неподвижного удаленного объекта (дома вдалеке, леса, гор и т.д.).

Еще нужно знать, какому угловому расстоянию соответствует один пиксель на камере с этим объективом (т.н. image scale). Это можно посчитать =atan(размер пикселя / фокусное расстояние), а лучше померять - загрузить на http://nova.astrometry.net одну из исходных фотографий дипская, где видно звёзды, и в разделе calibration найти Pixel scale. В моём случае (Sony SLT A37+ Юпитер 37А) оно составляло 7.32 угловых секунды на пиксель.

Так вот, программа берёт первую фотографию как опорную, с начинает сравнивать с ней последующие - на сколько пикселей они сместились. Допустим упрощённо, есть две фотки, вторая смещена от первой на 10 пикселей. Т.к. фотографировали неподвижный объект, то это значит, что камера повернулась на 10*7.32 = на 73,2 угловых секунды (для длиннофокусных объективов эффект рыбьего глаза отсутствует, я считаю изображение линейным).
Далее программа считает разницу во времени между фотографиями, и зная скорость вращения земли (15.04 угловых секунд в секунду) можно посчитать, на сколько камера должна была повернуться. Допустим, разница во времени 5 секунд.

Итак, камера должна была повернуться на 15.04*5 = 75,2 угловых секунды, повернулась же на 73,2 секунды - итого 2 секунды ошибка ведения, монтировка ведет медленнее чем надо.

Программа (python скрипт) выложен тут https://github.com/semenmiroshnichenko/autoadjuster. Там есть коротенькое описание на английском.
Если кто-то захочет попробовать и возникнут проблемы с запуском - напишите тут, попробую помочь.

На затравку пару графиков. Тестировал:
1. Sky-Watcher Star Adventurer
2. Vixen Polarie (фото делал мой товарищ по астроклубу на своей камере)
3. Землю. Тут работал принцип наоборот: делал фотки небесного экватора неподвижной камерой. Этот принцип использую как "образцовую монтироку"


Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Такой разброс (пила) связана вероятней всего с тем, что камера пишет время с точностью до секунды. А секунда это 15 угловых секунд. Т.е. если там было 18:00:00 да ещё 900 миллисекунд, то программа посчитает только 18:00:00 как время, и это даст ошибку 0.9 секунды*15 угл. сек = 13,5 угл. секунд.
То есть тут надо как-то придумать, как проставлять более точное время на фотографиях. Возможно это можно сделать в какой-нибудь magic lantern

Ну и короткое пояснение как использовать программу: запускаем в командной строке "python autoadjuster.py <путь к папке с фотками>". Когда программа отработает, в папке с фотографиями появится файл results.csv. Его можно открыть в экселе и по первым двум столбцам построить график.

Оффлайн Грехов Михаил

  • *****
  • Сообщений: 31 825
  • Благодарностей: 818
  • Вон с форума мракобесие, ложь, фальшь и дебилизм!!
    • Сообщения от Грехов Михаил
А зачем? В ходе длительной экспозиции (ну около часа) можно понять смещение звезды на снимке и сделать выводы... Поскольку это будет более длительный промежуток времени- то будет точнее, чем за 3-4 сек. Это раз.

Второе - амбарки бывают разных типов. То есть то допустим гнут резьбовую шпильку по радиусу (сточив сбоку) и гайка накручивается и вращается двигателем равномерно (самая простая амбарка, но выгнуть по радиусу и расположить точно-непросто). То скажем как в "Астротреке" - шпилька прямая, двухшарнирная при раскрытии становится треугольником, но из-за постоянно меняющегося плеча (в сторону увеличения) нужно иметь какой-то алгоритм, который постепенно повышает скорость вращения шпильки. Так-же зависит от того, как эта шпилька установлена.... Ну или шпилька прямая под 90 градусов и елозит еще салазками в пазе подвижной части амбарки.

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

Вторая задача из пока нерешенных - это то, что надо увеличивать точность установки полярки в такой монтировке. Помимо юстировки искателя полюса надо иметь возможность его разворота на любой угол точно вокруг оси монтировки. Потому как полярка в стороне от полюса и требуется весьма хитро поднонять ось. Если в той же HEQ-5Pro это легко -как развернуть, так и отъюстировать и потом по расположению Большой Медведицы установить, то в случае "дверной монтировки" эта тема как-то остается нерешенной. А точность тоже может влиять на конечный результат съемки неба.   
« Последнее редактирование: 03 Авг 2018 [15:34:26] от Грехов Михаил »
Manfrotto 055XPROB + 808 RC4 + Fujinon 16x70 FMT-SX2. TS APO 102/714 + ES 20/100, ES 9/100, Radian 4+HEQ5Pro+ QHYIII 290M+50mm guide. 3"Flat+QHYCFW3+Optolong LRGB+SHO (36mm)+QHY268M.

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Я вижу как минимум два применения этой программы.
Первый и основной как часть моего в перспективе опенсорсного проекта амбарки второго типа (isosceles mount). Прошивка уже написана, железо и дерево собраны и работают (см. фото), осталось получить достаточную для меня точность ведения (насколько возможно). Начальный момент вдохновения был в том, что я не нашел в интернете ни одного хорошо повторяемого проекта амбарки. Многие что-то делают, но о повторяемости либо точности речи не идёт. У меня трекер на дешевой китайской плате с STM32 микроконтроллером (ака blue pill), мотор 28BYJ-48 и стандартный драйвер к нему, пара кнопочек, шпилька-гайка, муфта и подшипники для 3D принтера тоже с алиэкспесса, ничего паять не надо, проводками всё соединить, ну а дерево нужно пилить конечно самому.
Далее, когда всё собрано, хочу чтобы процесс был максимально простым и народным:
1. Залить прошивку в контроллер по USB. В прошивке уже исправлена тангенциальная ошибка, о которой Вы говорили.
2. Специальной программкой (пока нету) залить данные о геометрии (размеры) в контроллер.
3. Запустить днём, наделать фотографий.
4. Программой, которую я тут привёл, посчитать ошибку.
5. По результатам посчитать другой программой (в стадии разработки) постоянную (монтировка идёт в целом слишком быстро/медленно по причине неточного измерения геометрии) и периодическую ошибку (попробую для начала применить FFT, посчитать период + фазу, а там как получится, пока ещё до этого не дошел), залить эти данные в прошивку.
6. Прогнать ещё раз с камерой днём, удостовериться, что стало лучше, оценить, какие выдежки можно себе позволить.
7. Выйти ночью под небо и получить адекватные результаты из п.6 и радость.

Ну и вторая область применения это оценка точности ведения когда нет ночного неба над головой, например при покупке монтировки с рук.

Для проблемы с поляркой у меня есть тоже как минимум идея, надеюсь доберусь до реализации. Идея в изготовлении "цифрового искателя полюса" на допустим Raspberry Pi + камера к ней. Идея следющая - простым искателем типа реддот наводим примерно на полярку и запускаем программку на распи. Программка может общаться с контроллером монтировки и включать мотор. Делается 3 фото полярной области этой распи камерой - в начальном положении трекера, посерёдке и в конечном положении (мотор можно запускать конечно на максимальной скорости). Ищется на фотках полярная звезда и вычисляются её пиксельные координаты. Эти три координаты образую дугу окружности, центром которой является точка, проходящая через истинную ось вращения трекера (звезда вращается вокруг неё). Далее трекер едет на начальную позицию, а программа вычисляет положение истинного полюса относительно полярной звезды для данного момента времени и пиксельные координаты полярной звезды где она должна быть, когда ось вращения трекера совпадает с полюсом. Затем на экране распи или на подключенном смартфоне выводится живая картинка с камеры + кружочек, куда надо загнать полярную звезду. Когда звезда загнана, ось вращения идёт точно в полюс.

А что Вы понимаете под "Астротреком", где почитать? Мой трекер по сути является таким-же (раскрывается в равнобедренный треугольник).

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
Попробовал запустить программу, ничего не получилось. Ответ - "Файл не найден".

1. Нужно ли перед запуском устанавливать программу? Или сразу писать в командной строке "python autoadjuster.py" с полным путем к каталогу?
2. В каком формате должны быть фотографии jpg или raw?

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Попробовал запустить программу, ничего не получилось. Ответ - "Файл не найден".

1. Нужно ли перед запуском устанавливать программу? Или сразу писать в командной строке "python autoadjuster.py" с полным путем к каталогу?
2. В каком формате должны быть фотографии jpg или raw?

Саму программу устанавливать не надо, но надо пока что вручную устанавливать необходимые для её работы программы и библиотеки:
1. Установить python последней, но обязательно второй версии: https://www.python.org/downloads/windows, сейчас последняя версия это 2.7.15
2. После установки открыть командную строку и написать там python и нажать enter. Должно появиться что-то типа такого:
Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

python установлен и работает.
3. Набрать pip install numpy
4. Набрать pip install pillow
5. Установить последнюю версию opencv https://opencv.org/releases.html, сейчас это 3.4.2

На этом вроде бы с установкой всё, потом нужно заменить в файле в строке pixelScaleInArcsecPerPixel = 7.34 число 7.34 на то, что выдаёт вам http://nova.astrometry.net

Потом нужно запустить саму программу python autoadjuster.py и полный путем к каталогу с фотографиями в формате jpg. Программа создаст в папке с фотографиями файл results.csv, его можно открыть в экселе и построить график по времени (первый столбец) и ошибке ведения (второй столбец).
Напишите, если что получится (или не получится).


Оффлайн Грехов Михаил

  • *****
  • Сообщений: 31 825
  • Благодарностей: 818
  • Вон с форума мракобесие, ложь, фальшь и дебилизм!!
    • Сообщения от Грехов Михаил
По Астротраку -такая вот штука:
http://www.youtube.com/watch?v=3cFSYuo7_JA#

Чудо инженерной мысли.... тоже 2 поводка, между ними направляющие и винт с шагом 0.5мм. При помощи кнопок сначала стартово "раскрывается" и потом идет назад, смыкая плечи.... ну и видимо при приближении к финишу как то должен предупреждать от том, что скоро будет конец. После смыкания плеч сам механизм может быть развернут и убрана площадка искателя полюса. Итого -устройство может быть удобно размещено в прямоугольном чехле или пенале. Ничего не торчит. При хорошем обращении и регулировке и точности на полюс может спокойно отслеживать с нужной точностью звездное небо для объективов до 300мм фокусом... и может и больше. Хочешь -как тут - серьезная монтировка специально для него. А хочешь -просто штатив с одной головкоой для наклона механизма, и шаровой головкой для фотоаппарата. Дело твое.

Двигатель, плата с зашитыми алгоритмами работы -все находится в коробульке с кнопками. 
Manfrotto 055XPROB + 808 RC4 + Fujinon 16x70 FMT-SX2. TS APO 102/714 + ES 20/100, ES 9/100, Radian 4+HEQ5Pro+ QHYIII 290M+50mm guide. 3"Flat+QHYCFW3+Optolong LRGB+SHO (36mm)+QHY268M.

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Да, прикольная штука. Они её уже сняли с производства? Я помню год назад присматривался к ней, но цена тоже вроде от 300 евро была.

По поводу установки полюса - может я изобретаю велосипед и искатель полюса с камерой уже давно есть?

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
1. Установить python последней, но обязательно второй версии: https://www.python.org/downloads/windows, сейчас последняя версия это 2.7.15
2. После установки открыть командную строку и написать там python и нажать enter. Должно появиться что-то типа такого: Python 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> python установлен и работает.
3. Набрать pip install numpy
4. Набрать pip install pillow
5. Установить последнюю версию opencv https://opencv.org/releases.html, сейчас это 3.4.2
Выполнил шаги с 1 по 3. Получил следующую ошибку. Что делать?

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Выполнил шаги с 1 по 3. Получил следующую ошибку. Что делать?
Уже неплохо :) Откройте командную строку заново и повторите шаг 3 и далее.

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
Открыл командную строку заново и повторил шаг 3. В результате - та же ошибка.

Оффлайн krussh

  • *****
  • Сообщений: 2 460
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Открыл командную строку заново и повторил шаг 3. В результате - та же ошибка.

Вызвать командную строку Windows (или терминал Linux) и сделать: python -m pip install numpy.
Для Pillow так же.

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
Удалось запустить программу. Все работает. Спасибо разработчику. Понравилась идея тестирования трекера, не дожидаясь хорошей погоды.
При запуске программы столкнулся со следующими трудностями:
1. "pip install numpy" и "pip install pillow" выдавал ошибку. Делать нужно, как написал krussh (спасибо за подсказку):
Вызвать командную строку Windows (или терминал Linux) и сделать: python -m pip install numpy.Для Pillow так же.
2. При скачивании opencv AVG фиксирует вирус, пришлось AVG отключить;
3. Долго разбирался с установкой opencv. Здесь инструкция по установке: https://docs.opencv.org/3.3.1/d5/de5/tutorial_py_setup_in_windows.html
4. Запуск программы:  python путь к программе autoadjuster.py путь к папке с фото.

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
Удалось запустить программу. Все работает. Спасибо разработчику.
Пожалуйста :)
Подскажите, какую монтировку тестировали и какие результаты получили? Насколько соответствует реальности?

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
Тестировал свои самодельные монтировки:
1. Амбарка https://astronomy.ru/forum/index.php/topic,136062.msg4055783.html#msg4055783
2. Трекер с двигателем и планетарным редуктором 1:27
3. Трекер с двигателем и планетарным редуктором 1:100

Для всех вариантов расчет по программе показал, что скорость ведения отличается от требуемой в 1,95 раза. Сначала думал, что я ошибся в настройке скорости ведения двигателей. Но кода получил один и тот же результат на трех монтировках, то теперь думаю, что ошибка не в настройках, а в расчетах. К тому же скорости ведения я настраивал по реальному небу. Однако, где конкретно находится ошибка, не смог разобраться.
Поэтому программу использовал для сравнения различных монтировок: делал кадры через 10 секунд, если монтировка вела бы телескоп с постоянной скоростью, то каждый кадр смещался бы одинаковое количество пикселей, фактически же смещение происходило на разное количество пикселей, в результате рассчитывал смещение в пикселях относительно среднего значения и строил графики.
Монтировка 1 (амбарка) дала самый лучший результат по точности ведения (синяя линия).

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
О как интересно  :) Первое, что приходит в голову, это неправильно заданный в программе масштаб пикселя (pixel scale). Подскажите, как вы его рассчитывали? Что говорит astrometry.net?
А идея с подсчетом среднего значения и рассчётах от него правильная, если конечно есть уверенность, что монтировка в целом ведет корректно.
Подкажите, как читать ваш график - что за значения на оси Х (время в минутах или секундах?) и Y?

Оффлайн Ant_Z

  • ****
  • Сообщений: 276
  • Благодарностей: 29
  • Мне нравится этот форум!
    • Сообщения от Ant_Z
Аstrometry.net не использовал. Если правильно понял, то туда нужно загружать снимки звездного неба. Когда же я сравнивал монтировки, то фотографировал днем соседний дом.
Расчет pixelscale выполнил следующим образом:
У меня фотоаппарат Canon 600D, размер матрицы 22,3х14,9 мм, разрешение 5184х3456 пикселей, значит размер одного пикселя 22,3/5184 = 0,0043 мм. Телескоп SW70500 c фокусным расстоянием 500 мм. Значит угол составляет atan(0,0043/500) = 0,00049 гр./пкс = 1,779 уг.сек./пкс.

На графиках размерность осей: Х - номер кадра (всего 50 кадров. Т.к. все снимки делались через одинаковый интервал времени 10 секунд, то разницы в том, что откладывать время или просто номер кадра, нет), Y - отклонение относительно среднего значения в пикселях, которые рассчитаны с помощью программы.

Оффлайн Semen MiroshnichenkoАвтор темы

  • Новичок
  • *
  • Сообщений: 37
  • Благодарностей: 5
    • Сообщения от Semen Miroshnichenko
На Аstrometry.net  можно по ночным фотографиям, сделанным тем же объективом (телескопом) проверить точное значение pixelscale. Я бы загрузил туда одну фотку с камеры проверить. Можете выложить или мне прислать, могу сам посмотреть. Интересно же, откуда такая погрешность.

Так вроде всё правильно. Глупый вопрос, но камера у вас точно настроена сохранять фотографии с разрешением матрицы? Проверьте, какое разрешение получается у снимков.

А насколько далеко соседний дом? Если буквально пара метров, то может наблюдаться параллакс - я вначале фоткал стену комнаты, и результаты не сходились.