Разработка open-source Head Tracker'а - уже работает :-)

Prikupets

Мой блог 😃
Если кто-то хочет поучаствовать в разработке или обсудить, прошу комментрировать в этой теме, а не в комментах к в блоге.

voraks

Класс!!!
Пара вопросиков:

  1. для какого передатчика система заточена?
  2. подключение через тренерский разъем, или чет еще поковырять надо в передатчике?
Prikupets
voraks:
  1. для какого передатчика система заточена?
  2. подключение через тренерский разъем, или чет еще поковырять надо в передатчике?
  1. Hitec Flash 5.
  2. Надо резинкой оттянуть тренерский переключатель, чтобы он был все время включен. Вроде все 😛

Я сильно расширил статью в блоге, так что если кто заинтересован, лучше почитать снова.

voraks

А возможно ли воткнуть сей девайс в 6-8 канальный передатчик, и как при этом можно будет назначить каналы для него?

ПС Насколько я понял, для каждой оси используется свой канал, т.е. 2 канала на две оси?

an2an

Должен вам сказать, что дрейф нуля - нормальное явления для гироскопов. Лечится термокомпенсацией (плохо) или термостабилизацией (хорошо). Если серьезно хотите добитьсястабильности, просто разогрейте гироскоп градусов до 50 и держите эту температуру, ноль плыть станет гораздо меньше.

Prikupets

Дело в том, что эта штука питается от передатчика. Разогрев будет брать слишком много энергии из его батареи.
А мерять температуру ядра гироскопа наверное будет проще - поставить DS18xx плоский датчик и в покое снять характеристику дрифта от температуры. Но надо будет учитывать запаздывание - когда ядро уже нагрелось и дрифтует, а термометр еще нет. Есть у кого-нибудь какие-нибудь application notes для этого? Буду очень благодарен 😒

Схема добавляет после 3-его канала 4-ый (Pan), 5-ый (Tilt) и 6-ой (Фото-кнопка). На пульте тоже есть 4-й и 5-й, но они отрезаются. В принципе, ничего не стоит добавлять не после 3-его, а любого другого.

an2an
Prikupets:

Дело в том, что эта штука питается от передатчика. Разогрев будет брать слишком много энергии из его батареи. А мерять температуру ядра гироскопа наверное будет проще - поставить DS18xx плоский датчик и в покое снять характеристику дрифта от температуры.

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

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

Prikupets
an2an:

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

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

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

Насчет еще одного гиро - не понял вопроса - у меня двухосевой гиро на голове. Вертим головой или телом - без разницы.

Vad64

Я по камере летать пока не пробовал и, возможно, не знаю специфики требований к Хэдтрекеру. Но у меня вот какие мысли.

  1. Имеет смысл реализовать мертвую зону по минимальной угловой скорости. Трудно представить, что человек будет поворачивать голову на 60-90 градусов дольше минуты. Поэтому, если сигнал с датчика меньше 1-2 град/сек, можно считать это покоем и калибровать в это время ноль датчика.
  2. Возможно, следует ввести мертвую зону по углу. Т.е. если скорость нулевая и интеграл скорости (угол) близок к центру, то дополнительно нулить интеграл (угол).
  3. Весьма полезной будет кнопка, с помощью к-рой можно будет изменить центр углов. Т.е. типа выставил поворотом головы центр поля зрения, зажал кнопку, повернул голову в удобное положение (при этом скорости не интегрируются и сервы не отрабатывают) и отпустил кнопку. После чего слежение начинается с этой точки.

Думаю, это позволит комфортно работать и без сложной системы компенсации дрейфа (если только он не больше 1-2 град/сек). А кнопка, видимо, нужна в любом случае, т.к. неизбежна ошибка, связанная с отсутствием 3й оси гироскопа.

Prikupets
Vad64:
  1. Имеет смысл реализовать мертвую зону по минимальной угловой скорости.
  2. Возможно, следует ввести мертвую зону по углу. Т.е. если скорость нулевая и интеграл скорости (угол) близок к центру, то дополнительно нулить интеграл (угол).
  3. Весьма полезной будет кнопка, с помощью к-рой можно будет изменить центр углов.
  1. Это есть, но в неявном виде. Если отсчет ADC ±1 от нуля, то он считается 0.
  2. Не стоит делать, потому что потом скачок угла будет и не заметно куда дрифтует.
  3. Есть такая кнопка изначально.
an2an
Prikupets:

Насчет еще одного гиро - не понял вопроса - у меня двухосевой гиро на голове. Вертим головой или телом - без разницы.

Вот именно, а надо бы только поворот головы относительно тела, а не вообще, как мне кажется.

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

Prikupets:
  1. Не стоит делать, потому что потом скачок угла будет и не заметно куда дрифтует.

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