r57zone / OpenVR-OpenTrack

OpenVR driver with OpenTrack support / OpenVR драйвер, с поддержкой OpenTrack
Other
181 stars 19 forks source link

Freetrack rotation axis #24

Closed Ko1dun closed 4 years ago

Ko1dun commented 4 years ago

I tried feedin rotation data from Opentrack to SteamVR via OpenVR-OpenTrack and got wrong rotation axis. I.E. pitch makes the view roll etc. I switched from opentrack to FreePIE and got correct rotations with following code: freeTrack.yaw = roll; freeTrack.pitch = yaw; freeTrack.roll = -pitch; where freeTrack is output via freetrack 2.0 and yaw, pitch, roll are aligned as following dSky-Oculus-XYZ-YPR

I could remap axis with opentrack itself, but it limits freetrack output pitch to +-90 degrees (that is corect for Euler angles) and it results in game yaw being limited to +-90.

r57zone commented 4 years ago

En: Hi, could you check the angles also in FreePie IMU? I had problems with tracking in OpenTrack, 360 tracking did not work, it seems there was some kind of bug (which was noticed by different people, including me). The FreeTrack implementation is completely taken from OpenTrack.

Ru: Привет, не могли бы вы проверить углы также в FreePie IMU? У меня возникали проблемы с трекингом в OpenTrack, 360 трекинг не работал, кажется там был какой-то баг (который замечали разные люди, включая меня). Реализация FreeTrack полностью взята из OpenTrack.

Ko1dun commented 4 years ago

Именно FreePie IMU проверить не могу, т.к. не на чем. Я пользовался программой FreePIE и её выводом в freetrack. Результат одинаковый и с opentrack и с freePIE. Во всех случаях оси перепутаны, к примеру поворот головы вправо-влево управляется осью Pitch.

r57zone commented 4 years ago

Я обновил драйвера, вроде исправил оси, просьба проверить не интвертированы ли они во FreeTrack. В UDP вроде верные, а у FreeTrack там вроде свои особенности. Проблема с "90 градусами" к сожалению исправить не могу, так как она находится в не драйвера, драйвер поддерживает 360 трекинг без проблем.

Чтобы проверить UDP драйвер можно просто переключить Output в "UDP over network", выставить в настройках трекера адрес 127.0.0.1 и заменить SteamVR драйвер.

Ko1dun commented 4 years ago

Проверил оба варианта. Оси там и там теперь соответствуют. На счёт инверсии вроде правильно, но точно не уверен. Это если что легко исправляется настройками OpenTrack. Про 90 градусов - сейчас когда оси стоят правильно, проблемы нет. Угол pitch(тангаж) чисто по определению может быть только от -90 до +90.

r57zone commented 4 years ago

Хорошие новости, рад что теперь как надо заработало, когда изначально делал калибровал под свой Arduino датчик, а там криво было.

r57zone commented 4 years ago

@Ko1dun а при использовании по UDP по оси Pitch нет отличий от FreeTrack или в сравнении с FreeTrack ось инвертирована?