A A A A Автор Тема: Наведение и БИНС (гироскоп(ДУС), акселерометр, компас)  (Прочитано 6860 раз)

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

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Здравствуйте.
Начну с предыстории. На телефон поставил программу для астронавигации, которая показывает координаты объектов: RA, Dec. А также Az, El в виде ***°, **', **"   Значит, нужно сделать коробочку и прикрепить на свой Добсон, чтобы она на экране показывала текущие углы  Az, El. И имела возможность установки нуля.

Для этих целей из закромов извлек БИНС на базе MPU6050 HMC5883L MS5611, Ардуино и экраны.
Существует программа FreeIMU http://www.varesano.net/projects/hardware/FreeIMU.
Остается "всего лишь" разобраться, вытащить градусы Az, El из БИНС и преобразовать в  ***°, **', **", отобразить на экране.
FreeIMU выдает повороты по 3м осям, т.е. рысканье = Az, крен=El_1 и тангаж=El_2.  El_1 или El_2 зависит от совмещения осей БИНС и подвижек Добсона.

Для рысканья используется 3х-осевой ДУС + коррекция 3х-осевым магнетометром (для широт, где вектор магнитного поля не вертикально в землю). Прочие оси контролируются  3х-осевым ДУС + 3х-осевым магнетометром + 3х-осевым акселерометром. Бародатчик не нужен, но он есть на плате. Судя по всему, тангаж будет точнее, чем рысканье.

Для чего эта тема? Во-первых, вдруг она будет полезна кому-то. Второе: для само-мотивации. И приглашаю всех знающих-желающих высказывать мысли. Проект некоммерческий, код буду выкладывать для всех. Расходы только в приобретении БИНС (от 1000р) и контроллера с экраном (от 1000р) всеми желающими на заграничных и российских сайтах.

Заниматься проектом буду в свободное от работы время.

Оффлайн Sergey Stepanov

  • *****
  • Сообщений: 1 710
  • Благодарностей: 310
  • Я не астроном, я только учусь...
    • Сообщения от Sergey Stepanov
Интересная задумка.
А какова точность определения координат этими датчиками?
Наблюдаю невооруженным глазом. Иногда смотрю в телескопы смоленских астрономов.

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
А какова точность определения координат этими датчиками?
Компас 1..2° из-за 12-битного АЦП, магнитных флуктуаций, металла поблизости, проводов и т.д.
Насчет MPU6050 с 16-битным АЦП (ДУС+акселерометр) неясно: зависит от мат.обработки (фильтрация, усреднение, децимация), от скорости поворотов, от времени интегрирования ДУС (он уплывает, нуждается в коррекции), от калибровки (при круговом вращении вектор должен описать окружность, без калибровки он обычно описывает фигуру картошки), от накопления ошибки при повороте. Указывают менее градуса и пишут про "очень точный".

Возможно, угловые секунды теряют смысл. Но даже градусы (и минуты?) на экранчике сильно помогут искать объект. Я сейчас страдаю с наручным компасом и искателем с прямой трубой (через 20 минут шея как у жирафа).
« Последнее редактирование: 08 Мая 2014 [11:58:30] от Boris Green »

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
Интересная задумка.
А какова точность определения координат этими датчиками?
Нашел сайтик хороший http://robocraft.ru/shop/index.php?route=product/product&path=45&product_id=265
Тоже интересная плата http://mishinmachines.com/marg-orientir-1/
Интересно,на их основе можно сделать устройство типа sky commander?
« Последнее редактирование: 08 Мая 2014 [19:59:44] от Alex_6619 »
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Пределы измеряемых величин:
ДУС ITG3205 немного устаревший и шумный (такие стояли в пульте Wii, которое потрошили для MultiWii - самодельном контроллере для квадрокоптеров).
Аксель ADXL345 тоже не особо, всего 13 бит (их тоже раньше вытаскивали из джойстиков Нунчака для MultiWii).
Для сравнения, в барометре MS5611 стоит 24-битный сигма-дельта АЦП, датчик ловит изменения высоты на 10см по давлению, помехи вносит громкий шум, "хруст" мембраны.

Все упирается отнюдь не в платы, а в софт (прикладная математика). Работа с реальными датчиками имеет массу тонкостей в плане фильтрации КИХ, БИХ, их реализациями в железе, дискретности процесса. А за 1000р можно купить 16-битные датчики с готовыми библиотеками для считывания сырых данных.

Вот популярные магазины:
http://www.drotek.fr/shop/en/home/62-imu-10dof-mpu6050-hmc5883-ms5611.html
http://www.csgshop.com/product.php?id_product=80
ebay - можно найти дешево
http://gapey.jimdo.com/
форумы авиамоделистов
и много-много других

Акселерометр нужно настраивать на min диапазон g, чтобы повысить точность. В телескопах нет тряски и перегрузок.
Для знающих математику можно читать про кватернионы, MARG (magnetic angular rate and gravity), DCM(матрица направляющих косинусов) фильтрацию, расширенный фильтр Калмана.
Но для начала хватит готовой библиотеки FreeIMU.

« Последнее редактирование: 08 Мая 2014 [16:13:47] от Boris Green »

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Итак.
Калибруем свои датчики http://www.varesano.net/blog/fabio/freeimu-magnetometer-and-accelerometer-calibration-gui-alpha-version-out
Получаем offset и сохраняем в calibration.h
Файл помещаем в проект и заливаем FreeIMU lib http://www.varesano.net/projects/hardware/FreeIMU, получаем углы Эйлера, переводим их в градусы+минуты+секунды
Выводим на консоль (потом будет экран).
Делаем кнопку обнуления углов.
Мучаемся с 2х-строчным экраном или от Нокии.
Корпус, питание, крепеж на телескопе, но подальше от стальной трубы.

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
С экраном почти разобрался. Сделаю регулируемую подсветку 5В: ШИМ на ножке или переменный резистор от отдельного импульсного ВЕС 5В.
Остаются датчики и код, чтобы float углы переводить в int градусы, int минуты, int секунды и выводить на экран.
Потом калибровка, корпус и свистелки.

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
Остаются датчики и код, чтобы float углы переводить в int градусы, int минуты, int секунды и выводить на экран.
А какой смысл выводить на экран Az и El?Нам же нужно RA и Dec.
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
А какой смысл выводить на экран Az и El?Нам же нужно RA и Dec.
У меня Добсон.

Оффлайн vitus_kz

  • *****
  • Сообщений: 2 026
  • Благодарностей: 213
  • Виталий
    • Skype - radvitus
    • Сообщения от vitus_kz
А какой смысл выводить на экран Az и El?Нам же нужно RA и Dec.

Насколько я понимаю, потому что монтировка Добсона - азимутальная.
Orion 120APO
Explore Scientific Dob16
__________________________

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
У меня Добсон.
Это я понял.По-скольку во всех астро-каталогах приводятся даные в RA и Dec,нет смысла в том,что мы будем знать азимут и высоту.Нужна будет микропрограмма,которая переводит Az и El в RA и Dec.И обязательно потребуется калибровка например,по 2-м звёздам,чтобы "связать" системы координат.
 
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
По-скольку во всех астро-каталогах приводятся даные в RA и Dec,нет смысла в том,что мы будем знать азимут и высоту
В Стеллариуме и Вито АстроНавигатор-2 есть Az, El для объектов из памяти.
И обязательно потребуется калибровка
Калибровку сделаю по Полярной и уровню. Az = 0, El =0 по жидкостному уровню. Или, возможно, получится сделать 2 крутилки +_dAz  +_dEl для установки углов по известному объекту.

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
Цитата
В Стеллариуме и Вито АстроНавигатор-2 есть Az, El для объектов из памяти.
Если я правильно понял,то наведение будет происходить так:"В  Стеллариуме или Вито АстроНавигаторе-2 находим интересующий нас объект и по Az и El и смотря на др. экран и двигая трубу пытаемся получить эти цифры?
« Последнее редактирование: 10 Мая 2014 [12:54:27] от Alex_6619 »
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Михаил ФМ

  • **
  • Сообщений: 82
  • Благодарностей: 8
    • Сообщения от Михаил ФМ
Добрый день!
А чем ваш вариант лучше планшетного с программами типа skysafary и т.п. ? Можно и самому написать подобную программу. Все датчики в наличии - ДУСы, акселерометры, магнитометр (кроме бароизмерителя). А еще есть GPS, часы и подключение к Интернет. Имеем БИНС с коррекцией на борту любого современного планшета/коммуникатора.

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Если я правильно понял,то наведение будет происходить так:"В  Стеллариуме или Вито АстроНавигаторе-2 находим интересующий нас объект и по Az и El и смотря на др. экран и двигая трубу пытаемся получить эти цифры?
Все верно! Двигаем трубу, пока не получим нужные Az и El.
А чем ваш вариант лучше планшетного
У меня нет планшета с БИНС, но есть платы с неплохими датчиками. Еще я не знаю, можно ли через API тонко управлять параметрами датчиков, как-то поверхностно посмотрел PhoneGap. И я не знаю, в недорогих гаджетах приличные датчики, 16-битные, малошумные?
Знаю точно, что с моей БИНС бесколлекторный подвес камеры настолько стабильно держит уровень, что на видео нет рывков при полете на коптерах: http://www.basecamelectronics.com/

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
Уже есть проэкты,где используют Ардуино с энкодерами http://orlygoingthirty.blogspot.ru/2012/01/arduino-bluetooth-digital-setting.html
http://vincechanblog.ca/blog/?p=47
А эта аналогичная на датчиках http://pasgopro.blogspot.ru/2012/06/arduino-telescope-setting-circles.html
« Последнее редактирование: 11 Мая 2014 [10:14:42] от Alex_6619 »
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Михаил ФМ

  • **
  • Сообщений: 82
  • Благодарностей: 8
    • Сообщения от Михаил ФМ
Уже есть проэкты,где используют Ардуино с энкодерами http://orlygoingthirty.blogspot.ru/2012/01/arduino-bluetooth-digital-setting.html
http://vincechanblog.ca/blog/?p=47
А эта аналогичная на датчиках http://pasgopro.blogspot.ru/2012/06/arduino-telescope-setting-circles.html

Это интерфейсы на Аурдино от энкодеров к SkySafary. Блютус и rs232 соответственно. DSC - как бы "цифровые установочные круги".

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Искать и крепить энкодеры пока не планирую. Возможно, придется помучиться с прерываниями на АТмега. Зато вчера подключил БИНС. Удалось вывести на экран цифры.

Как оказалось, по El шум составляет +_0.2 градуса. По Az шум до 2-3 градусов в долговременном периоде (сказывается наличие рядом ноутбука и инструментов). И даже это радует, поставлю поисковый окуляр и в окрестностях найду искомый объект.

Это легко объяснить. Берем длительный промежуток времени: El рассчитывается по показаниям акселерометра и магнетометра. Az рассчитывается исключительно по магнетометру, потому что проекция вектора g на горизонтальную плоскость равна нуль, и акселерометр бесполезен. Гироскоп (ДУС с интегратором) бесполезен в долгосрочном периоде, он накапливает ошибку. А "быстрые" движения телескоп не совершает. Возможно, я отключу ДУС в расчете положения, чтобы он не вносил свой шум.
Дополнительно стоит вопрос нормирования и калибровки БИНС. FreeIMU калибровщик на python + Qt периодически ругается на openGL моего ноутбука.

Оффлайн Alex_6619

  • *****
  • Сообщений: 1 071
  • Благодарностей: 43
    • Сообщения от Alex_6619
Как оказалось, по El шум составляет +_0.2 градуса. По Az шум до 2-3 градусов в долговременном периоде (сказывается наличие рядом ноутбука и инструментов). И даже это радует, поставлю поисковый окуляр и в окрестностях найду искомый объект.
Это легко объяснить. Берем длительный промежуток времени: El рассчитывается по показаниям акселерометра и магнетометра. Az рассчитывается исключительно по магнетометру, потому что проекция вектора g на горизонтальную плоскость равна нуль, и акселерометр бесполезен. Гироскоп (ДУС с интегратором) бесполезен в долгосрочном периоде, он накапливает ошибку. А "быстрые" движения телескоп не совершает. Возможно, я отключу ДУС в расчете положения, чтобы он не вносил свой шум.
Тут http://habrahabr.ru/post/137595/ интересная статья как использовать датчики для повышения точности и немного про алгоритмы обработки.Гироскоп отключать не стоит,лучше "побороть" шум".ИМХО.
Хорошая вещь компьютер...Посидел пять минут-полтора часа прошло....

Оффлайн Boris GreenАвтор темы

  • *****
  • Сообщений: 1 508
  • Благодарностей: 80
    • Сообщения от Boris Green
Гироскоп отключать не стоит,лучше "побороть" шум"
Шум от MEMS ДУС можно побороть в рамках астро-хобби, если только заменить его на лазерный гироскоп или нечто подобное. Измерения в любом MEMS ДУС дискретны, мгновенная угловая скорость интегрируется, вычисляется угол смещения => ошибка растет всегда. Я пробовал itg3200, MPU6050 - они всегда медленно плывут. И в этом нет ничего страшного, потому что они отлично ловят быстрые наклоны. А для медленных наклонов используются акселерометр (когда ускорения малы).