Jump to content

Полноценный самодельный TrackIR


FVMAD

Recommended Posts

наткнулся на такую штуку. она конечно не самоделка, но всеже.

http://z.aimxy.com/

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

Intel i5-10600K 4.1GHz, ASUS Z490, 2*8Gb DDR4, RTX2060, ASUS Xonar DX/XD, GIGABYTE 32" 2560x1440, Kenwood KPM-510, BRD, GVL224, TrackIr 4 Pro, gametrix KW-905, Win10x64

Link to comment
Share on other sites

Ребятки, доброго времени суток всем. Изучая тему, видосы на Ютуб и прочие ветки, выяснил, что HadTrack, FreeTrack, или как там его ... На инерциальных датчиках эта штуковина отслеживает только поворот головы что ли? Верно ли я понял? Обычная люстра из трёх светодиодов что ли лучше? 😲 Признаться, удивлён. Ребята, обрадуйте меня и скажите пожалуйста, что я неправильно понял и инерциальный FreeTrack умеет отслеживать не только поворот головы, но и движение по осям. Заранее благодарю.

Link to comment
Share on other sites

В 14.08.2023 в 22:51, HeXa4yPa6oTaTb(Юрий) сказал:

Ребятки, доброго времени суток всем. Изучая тему, видосы на Ютуб и прочие ветки, выяснил, что HadTrack, FreeTrack, или как там его ... На инерциальных датчиках эта штуковина отслеживает только поворот головы что ли? Верно ли я понял? Обычная люстра из трёх светодиодов что ли лучше? 😲 Признаться, удивлён. Ребята, обрадуйте меня и скажите пожалуйста, что я неправильно понял и инерциальный FreeTrack умеет отслеживать не только поворот головы, но и движение по осям. Заранее благодарю.

Могу ошибаться но вроде как да, только повороты 3 оси.  Можно сделать с перемещениями по xy если использовать 2 датчика. Но это вроде как неудобно. Один надо кудато на шею крепить.

Спойлер

 

Вот тут со смещениями.

Спойлер

 

 


Edited by MP
  • Like 1
 

BS3, Mi-24P, Mi-8, MiG-15, MiG-21, I-16, FC3
UH-1H, F-86F, F/A-18, F-14, A10C, AJS-37, M-2000C, P-51D, Spitfire, Bf-109 K-4, Fw-190D-9
Normandy, Syria, Persian Gulf, Nevada, Supercarrier
Ryzen 5 5600X, 64GB, rtx4070, SSD, iiyama ProLite XUB2792QSU-B1, Gladiator NXT, TrackIR, Pico4.

Link to comment
Share on other sites

Наткнулся ещё на одно видео с перемещениями IMU. Может кому-то будет интересно.

Спойлер

 

 

 

BS3, Mi-24P, Mi-8, MiG-15, MiG-21, I-16, FC3
UH-1H, F-86F, F/A-18, F-14, A10C, AJS-37, M-2000C, P-51D, Spitfire, Bf-109 K-4, Fw-190D-9
Normandy, Syria, Persian Gulf, Nevada, Supercarrier
Ryzen 5 5600X, 64GB, rtx4070, SSD, iiyama ProLite XUB2792QSU-B1, Gladiator NXT, TrackIR, Pico4.

Link to comment
Share on other sites

Ну тогда ещё одно совсем уж впечатляющее видео от SebMadgwickResearch:

Но не стоит рекламные ролики принимать на веру.

Я уже давно проверил их файл с данными в проге на Делфи, и получил те же самые графики. И это действительно работает, но с такими ограничениями, что для трекинга головы совершенно не годится.

Обратите внимание, во всех видео используется анимация из MathLab. Но MathLab не выводит графики в реальном времени, умеет строить только анимацию, предварительно рассчитав все выходные координаты в виде таблицы.
И по алгоритму требуется сразу весь массив координат от гироскопа и акселерометра, за всё время от начала движения и до полной остановки.
Для коррекции дрейфа используется определение моментов, когда датчик совершенно неподвижен, поэтому его и закрепили на носке ботинка.
Если на ботинке это ещё кое как работает, то определить что голова стала неподвижной не удаётся. Да и не бывает голова полностью неподвижна.


Следующий, самый скользкий момент - это использование для определения положения вектора акселерометра, преобразованного в систему координат Земли, из которого вычтен вектор гравитации. 
Если этот сигнал дважды проинтегрировать, то после первого интегрирования получим мгновенную скорость плюс линейно возрастающую ошибку из-за смещения центра акселерометра.
После второго интегрирования получим положение датчика плюс равноускоренное движение из за интегрирования возрастающей ошибки.
Ошибку можно сбросить в 0 после полной остановки датчика, когда ботинок окажется на полу. При начале движения ошибка опять начнёт накапливаться.


В общем, не тратьте свои лучшие годы на этот метод. С помощью двойного интегрирования ускорения невозможно получить положение датчика без чудовищного дрейфа. Это неоднократно проверено и давно бы уже было сделано, если бы было возможно.

 

Необходимо кроме IMU использовать ещё два опорных 3D вектора с нулевым смещением, которые будут устранять дрейф. Например, это могут быть три дальномера или пара видеокамер. Ничего не напоминает?
 


Edited by GO63
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Согласен с вышеизложенным. Только есть вопрос - а как достигается отслеживание продольных перемещений в ТВ-пультах и 3D шлемах? Датчики лучше или математика?

Кстати, в IMU если применять одни "гироскопы" и акселерометры, без "компаса", и повороты-то отслеживать затруднительно. Хотя теоретически они на одних "гироскопах" должны работать.


Edited by Slavnik
Link to comment
Share on other sites

Quote

Согласен с вышеизложенным. Только есть вопрос - а как достигается отслеживание продольных перемещений в ТВ-пультах и 3D шлемах? Датчики лучше или математика?

Видеокамеры в шлеме или базовые станции:

https://habr.com/ru/companies/droider/articles/538748/

 

Quote

Кстати, в IMU если применять одни "гироскопы" и акселерометры, без "компаса", и повороты-то отслеживать затруднительно. Хотя теоретически они на одних "гироскопах" должны работать.

Без магнитометра неизбежен дрейф по Yaw. И дрейф по Yaw виден в предыдущем видео - траектория прохода по длинному прямому коридору слегка изогнута.

Дрейф это не "пружина", дрейф - поворот с постоянной скоростью.

Без акселерометра ещё добавится дрейф по Roll и Pitch.

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

 

Link to comment
Share on other sites

В 06.09.2023 в 21:53, GO63 сказал:

Видеокамеры в шлеме или базовые станции:

https://habr.com/ru/companies/droider/articles/538748/

Спасибо, посмотрел.

В 06.09.2023 в 21:53, GO63 сказал:

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

 

А тогда зачем гироскопы вообще нужны? Ведь "компас" с "отвесом" и так дадут полную ориентацию по вращению. Продольные ускорения башки и магнитные возмущения отфильтровывать?

Кстати, еще вопрос - в спецификации MPU-9250 упомянута такая вроде-бы встроенная туда система: Digital Motion Processor (DMP). Не в курсе с чем это едят? Он не помогает более точной работе с трекингом?


Edited by Slavnik
Link to comment
Share on other sites

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

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

В 5DOF трекере это можно проверить, отключив гироскоп в калибраторе [G ---]. Отслеживание будет таким замедленным, как будто трекер в воду погрузили или в масло.

Digital Motion Processor (DMP) есть во многих модулях сенсоров, он по показаниям датчиков строит кватернион поворота в реальном времени, который можно считывать извне.

Проблема в том, как калибровать при этом датчики.

И ещё тогда трекер будет привязан к одному типу модуля, нельзя будет в трекере использовать разные модули сенсоров.

 

Link to comment
Share on other sites

В 08.09.2023 в 22:09, GO63 сказал:

Digital Motion Processor (DMP) есть во многих модулях сенсоров, он по показаниям датчиков строит кватернион поворота в реальном времени, который можно считывать извне.

Понятно. DMP трекингу смещений никак не помогает.

Link to comment
Share on other sites

  • 6 months later...

Приветствую всех.

@GO63, может подскажешь по инерционному трекеру.

Не могу победить поворот по Yaw при наклоне по Pitch. Получается, как у тебя на сайте написано, наклоняешь назад - поворот влево градусов на 10-12, наклоняешь вперед - поворот вправо на те же значения. При этом пружины по Yaw нет, если просто влево-вправо поворачивать по Yaw. При повороте по Roll смещения нет.

Пробовал на двух версиях датчиков: GY-85 (HMC5883L) и сборный GY-521 + GY-273 (HMC5883L). Датчики старые, покупал наверное лет 10 назад, тогда же был собран трекер на Arduino Nano + GY-85, с прошивкой вот этой https://sourceforge.net/projects/gy80facetrack/. Работал вроде нормально.

Сейчас вернулся к полетам в DCS, решил обновить трекер.

Сборка Arduino Nano + GY-85, залил твой скетч Razor AHRS 5DOF [20191019]. Откалибровал магнитометр, Mag st ~0.99, Rmax/Rmin тоже чуть больше 1. Откалибровал гироскоп, Gyr st ~ 0.6 гр/сек. Акселерометр не трогал, Acc st ~ 0.96 g. Поведение трекера, как в начале поста описал.

Подумал, что может датчик не фонтан. Спаял бутерброд GY-521 + GY-273.

Сборка Arduino Nano + GY-521 + GY-273, залил твой скетч Razor AHRS 5DOF [20191019]. Откалибровал магнитометр, Mag st ~ 1.0, Rmax/Rmin ~ 1.22. Откалибровал гироскоп, Gyr st ~ 0.06 гр/сек. Акселерометр не трогал, Acc st ~ 0.98 g. Поведение трекера опять такое же.

Магнитометр пробовал калибровать сначала на дужке наушников, потом на пластиковом ободке для волос, думал может наушники наводку магнитами дают, но нет, ничего в поведении не меняется. При отключение магнитометра (М ---) поворот по Yaw исчезает при наклоне по Pitch, но естественно появляется небольшой дрейф, на GY-85 заметный (там Gyr st ~ 0.6 гр/сек), на бутерброде GY-521 + GY-273 почти незаметный (Gyr st ~ 0.06 гр/сек).

Центровку пробовал разную, [ Center YPR ], [ Center Y,P ], [ Center Yaw ] - поведение трекера не меняется.

Может место проклятое )) (с)

Спойлер

У меня в прямой видимости на расстоянии 1 км от дома в/ч с РЛС (или антеннами радио-релейной связи) находится, может влияет как-то. Но сотовая связь в квартире берет только в паре мест на противоположной стороне от РЛС, в комнате, окна которой выходят на РЛС связи нет, даже квартирный Wi-Fi не пробивает, пока поближе к выходу из комнаты не переместишься.

 


Edited by GrayZeeCat
Link to comment
Share on other sites

Отклоняется где - в калибраторе или только в Opentrack?

Это очень похоже на неправильный выбор метода центровки.

В калибраторе для Head нужно выбрать [Center Y,P] , а не [Center YPR].

В Opentrack нужно выбрать Options - Shortcuts - Centering method [Roll compensated]. Или иногда лучше Centering method [Point].

Теперь крепление модуля на голове с поворотом по Roll не будет вызывать влияние осей Yaw и Pitch друг на друга.

Для датчика на GY-521 + GY-273 ещё важно, чтобы платы обоих модулей были закреплены строго параллельно друг другу.

При плохой калибровке магнитометра такое тоже может быть. Нужно выложить файл измерений fltM, тогда можно точнее сказать.

Link to comment
Share on other sites

Отклоняется в калибраторе, до opentrack еще не дошел из-за этого.

Да, я центровку выбирал разную, мануал с сайта внимательно изучил, видел указание на это, но ни  [ Center Y,P ], ни [ Center Yaw ] ситуацию не исправляют.

4 часа назад, GO63 сказал:

Для датчика на GY-521 + GY-273 ещё важно, чтобы платы обоих модулей были закреплены строго параллельно друг другу.

Тут конечно 100% параллельность я мог не соблюсти, попробую более точно разместить платы.

Файлы приложил.

Спасибо!

s02_Mag_2403111942_наушники.fltM s02_Mag_2403112131_ободок.fltM s11_Mag_2403122204_ободок.fltM

Link to comment
Share on other sites

Посмотрел измерения.

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

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

После калибровки сиреневый эллипсоид не должен сильно отличаться по форме от тонкостенной сферы. Но его смещение от центра может быть и большим.

В общем причина ясна - неверная калибровка магнитометра.

 

Link to comment
Share on other sites

Понял, попробую еще раз откалибровать магнитометр с учетом замечаний. Калибровал на голове, головой крутил вроде сильно, чуть шея не сломалась)))

Трекер у меня проводной, длина проводов между датчиком и ардуиной см 30 - 40, потом обычный кабель USB до порта компьютера.

Насчет смещающегося металла относительно магнитометра, незакрепленные провода от датчика до ардуины тоже такой эффект дают? Во втором файле как раз провод был не закреплен, только датчик примотал к ободку. У меня металлический каркас кресла сразу за затылком (подголовник), относительно датчика он тоже будет смещаться во время калибровки, но у вас в инструкции Как правильно калибровать Магнитометр написано, что предпочтительнее калибровать в том месте, где трекер потом будет находится во время игры. Откалибровать сидя на табуретке, чтобы металла рядом не было? Или с такими вводными (металл возле затылка) не получится заставить его корректно потом работать?

Спасибо!

Link to comment
Share on other sites

Вот - вот, именно в подголовнике проблема. Массивные металлические предметы должны быть не ближе полметра от магнитометра. И я уже об этом говорил, даже в этой ветке:

 

Link to comment
Share on other sites

24 минуты назад, GO63 сказал:

Массивные металлические предметы должны быть не ближе полметра от магнитометра.

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

25 минут назад, GO63 сказал:

И я уже об этом говорил, даже в этой ветке:

Ветку читал, видимо не обратил внимания. 😳

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

Ясно, понял. 

2 минуты назад, GO63 сказал:

Нужно избавится от подголовника с металлом.

Он единое целое со спинкой, да и в целом весь каркас металлический, специально под свои габариты и вес искал покрепче.

Со стулом беда конечно, на табуретке играть не охота 🤣

Спасибо за помощь!


Edited by GrayZeeCat
  • Like 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...