Giter Site home page Giter Site logo

opentrack / opentrack Goto Github PK

View Code? Open in Web Editor NEW
3.3K 3.3K 422.0 233.74 MB

Head tracking software for MS Windows, Linux, and Apple OSX

CMake 6.54% Perl 0.17% C++ 75.22% C 5.53% HTML 2.14% CSS 0.19% Shell 0.37% Inno Setup 0.38% Batchfile 0.13% Makefile 2.00% Python 0.20% Rich Text Format 7.08% Objective-C++ 0.05%
c-plus-plus c-plus-plus-17 flight-simulator headtracking linux-app opencv qt5 wiimote

opentrack's Introduction

Intro

opentrack project home is located at <http://github.com/opentrack/opentrack>.

For the latest downloads visit <https://github.com/opentrack/opentrack/releases> Download an .exe installer or a .7z archive. Currently installers and portable versions for Windows are available for each release. It supports USB stick truly "portable" installations

Please first refer to <https://github.com/opentrack/opentrack/wiki> for new user guide, frequent answers, specific tracker/filter documentation. See also the gameplay video with opentrack set up.

Looking for railway planning software?

Railway planning software <http://opentrack.ch> had the name opentrack first. Apologies for the long-standing naming conflict.

Usage

opentrack is an application dedicated to tracking user's head movements and relaying the information to games and flight simulation software.

opentrack allows for output shaping, filtering, and operating with many input and output devices and protocols; the codebase runs Microsoft Windows, Apple OSX (currently unmaintained), and GNU/Linux.

Don't be afraid to submit an issue/feature request if you have any problems! We're a friendly bunch.

Tracking input

  • PointTracker by Patrick Ruoff, freetrack-like light sources
  • Oculus Rift DK1, DK2, CV, and legacy/knockoff versions (Windows only)
  • Paper marker support via the ArUco library <https://github.com/opentrack/aruco>
  • Razer Hydra
  • Relaying via UDP from a different computer
  • Relaying UDP via FreePIE-specific Android app
  • Joystick analog axes (Windows)
  • Windows Phone tracker over opentrack UDP protocol
  • Arduino with custom firmware
  • Intel RealSense 3D cameras (Windows)
  • BBC micro:bit, LEGO, sensortag support via Smalltalk(1)(2) S2Bot
  • Wiimote (Windows)
  • NeuralNet face tracker
  • Eyeware Beam[1]
  • Tobii eye tracker

Output protocols

  • SimConnect for newer Microsoft Flight Simulator (Windows)
  • freetrack implementation (Windows)
  • Relaying UDP to another computer
  • Virtual joystick output (Windows, Linux, OSX)
  • Wine freetrack glue protocol (Linux, OSX)
  • X-Plane plugin (Linux; uses the Wine output option)
  • Tablet-like mouse output (Windows)
  • FlightGear
  • FSUIPC for Microsoft Flight Simulator 2002/2004 (Windows)
  • SteamVR through a bridge (Windows; see <https://github.com/r57zone/OpenVR-OpenTrack> by @r57zone)

Credits, in chronological order

  • Stanisław Halik (maintainer)
  • Wim Vriend -- author of FaceTrackNoIR that served as the initial codebase for opentrack. While the code was almost entirely rewritten, we still hold on to many of FaceTrackNoIR's ideas.
  • Chris Thompson (aka mm0zct, Rift and Razer Hydra author and maintainer)
  • Patrick Ruoff (PT tracker author)
  • Xavier Hallade (Intel RealSense tracker author and maintainer)
  • furax49 (hatire tracker author)
  • Michael Welter (contributor)
  • Alexander Orokhovatskiy (Russian translation; profile repository maintenance; providing hardware; translating reports from the Russian community)
  • Attila Csipa (Micro:Bit author)
  • Eike "e4z9" (OSX joystick output driver)
  • Wei Shuai (Wiimote tracker)
  • Stéphane Lenclud (Kinect Face Tracker, Easy Tracker)
  • GO63-samara (Hamilton Filter, Pose-widget improvement)
  • Davide Mameli (Eyeware Beam tracker)
  • Khoa Nguyen (Tobii eye tracker)

Thanks

  • uglyDwarf (of linuxtrack)
  • Andrzej Czarnowski (FreePIE tracker and Google Cardboard assistance, testing)
  • Wim Vriend (original codebase author and maintainer)
  • Ryan Spicer (OSX tester, contributor)
  • Ries van Twisk (OSX tester, OSX Build Fixes, contributor)
  • Donovan Baarda (filtering/control theory expert)
  • Mathijs Groothuis (@MathijsG, dozens of bugs and other issues reported; NL translation)
  • The Russian community from the IL-2 Sturmovik forums (reporting bugs, requesting important features)
  • OpenCV authors and maintainers <https://github.com/opencv/opencv/>.

Contributing

See guides for writing new modules[1][2], and for working with core code.

License and warranty

Almost all code is licensed under the ISC license. There are very few proprietary dependencies. There is no copyleft code. See individual files for licensing and authorship information.

See WARRANTY.txt for applying warranty terms (that is, disclaiming possible pre-existing warranty) that are in force unless the software author specifies their own warranty terms. In short, we disclaim all possible warranty and aren't responsible for any possible damage or losses.

The code is held to a high-quality standard and written with utmost care; consider this a promise without legal value. Despite doing the best we can not to injure users' equipment, software developers don't want to be dragged to courts for imagined or real issues. Disclaiming warranty is a standard practice in the field, even for expensive software like operating systems.

Building opentrack from source

On Windows, use either mingw-w64 or MS Visual Studio 2015 Update 3/newer. On other platforms use GNU or LLVM. Refer to Visual C++ 2015 build instructions.

opentrack's People

Contributors

a1k0n avatar achipa avatar achipa-hp avatar alterscape avatar berarma avatar damichel avatar dawelter avatar dbaarda avatar ddzzkunye avatar e4z9 avatar eyedav avatar gdolle avatar go63-samara avatar khoanguyen-3fc avatar mathijsg avatar miniskipper avatar mm0zct avatar mrcapone avatar okdshin avatar orokhovatskiy avatar ph0b avatar priton-ce avatar russell avatar rvt avatar sbabbi avatar slion avatar sthalik avatar tombrazier avatar usrusr avatar v4friend avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentrack's Issues

Option to disable 'ding'

When hitting the center or toggle tracking keys, there's a 'ding' sound.

Not nice when trying to stream games on twitch :)

Would be great to be able to disable it.

Frequent crashes .. no debugging??

Hi, just tried opentrack today. Frequent crashes but it doesn't seem to put out any error/debugging info. x86_64 arch system.No specifics because it seems to hang/crash from a variety of situations.

allow for spring effect in core, for any axis

Spring effect hardcoded for Rift yaw only, so far.

Need allow for @pocketmoon EDTracker et al. in a protocol-agnostic fashion.

Possibly need generalized enough to work for all of drifting gyros, mags, and accelerometers.

Once done, implore @brumster and friends to remove their firmware-based spring effect.

Qt5 needed?

`$ cmake ./
CMake Error at CMakeLists.txt:117 (find_package):
Could not find module FindQt5.cmake or a configuration file for package
Qt5.

Adjust CMAKE_MODULE_PATH to find FindQt5.cmake or set Qt5_DIR to the
directory containing a CMake configuration file for Qt5. The file will
have one of the following names:

Qt5Config.cmake
qt5-config.cmake

CMake Error at CMakeLists.txt:118 (cmake_policy):
Policy "CMP0020" is not known to this version of CMake.

CMake Error at CMakeLists.txt:197 (QT5_WRAP_UI):
Unknown CMake command "QT5_WRAP_UI".
Call Stack (most recent call first):
CMakeLists.txt:221 (opentrack_module)

-- Configuring incomplete, errors occurred!`

Do I really need Qt5? It's not even in the default ubuntu repos...

PointTracker problem crashes opentrack

The point tracker plugin crashes opentrack if the video device is not ready...

There should be some kind of error handling. Is there any video preview? This would really help to identify camera problems.

~/usr/local/src/opentrack$ LD_LIBRARY_PATH=/usr/local/src/opentrack ./opentrack
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-proto-fgfs.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-proto-udp.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-tracker-hatire.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-tracker-ht.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-tracker-pt.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-tracker-udp.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-filter-accela.so" 
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Error, if any: (null)
Loading "libopentrack-filter-ewma.so" 
loadSettings says: Starting  
Config file now "/usr/local/src/opentrack/settings/default.ini" 
loadSettings says: iniFile =  "/usr/local/src/opentrack/settings/default.ini" 
loadSettings says: selectedTrackerName =  "" 
loadSettings says: secondTrackerName =  "None" 
createIconGroupBox says: selectedFilterName =  "" 
CurveConfigurationDialog::loadSettings says: Starting  
CurveConfigurationDialog::loadSettings says: iniFile =  "/usr/local/src/opentrack/settings/default.ini" 
CurveConfigurationDialog::loadSettings says: Starting  
CurveConfigurationDialog::loadSettings says: iniFile =  "/usr/local/src/opentrack/settings/default.ini" 
tracker Hz: 66 
Done with tracking 
stopTracker says: Deleting tracker! 
stopTracker says: Tracker deleted! 
width 640 height 480 
width 640 height 480 
tracker Hz: 66 
Done with tracking 
stopTracker says: Deleting tracker! 
stopTracker says: Tracker deleted! 
width 640 height 480 
width 640 height 480 
tracker Hz: 66 
Done with tracking 
stopTracker says: Deleting tracker! 
stopTracker says: Tracker deleted! 
Tracker::Tracker 
Tracker::Initialize
TrackerSettings::load_ini()
VIDIOC_REQBUFS: Das Gerät oder die Ressource ist belegt
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
Unable to stop the stream.: Ungültiger Dateideskriptor
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
munmap: Das Argument ist ungültig
Tracker:: Applying settings 
VIDIOC_G_FMT: Ungültiger Dateideskriptor
HIGHGUI ERROR: V4L: Unable to determine size of incoming image
VIDIOC_G_FMT: Ungültiger Dateideskriptor
HIGHGUI ERROR: V4L: Unable to determine size of incoming image
*** Error in `./opentrack': double free or corruption (fasttop): 0x0000000001cd0720 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x80996)[0x7fa64562b996]
/usr/lib/libopencv_highgui.so.2.4(+0x29444)[0x7fa635787444]
/usr/lib/libopencv_highgui.so.2.4(_ZN20CvCaptureCAM_V4L_CPP11getPropertyEi+0x592)[0x7fa635787b02]
/usr/local/src/opentrack/libopentrack-tracker-pt.so(+0x9bbe)[0x7fa635c71bbe]
/usr/local/src/opentrack/libopentrack-tracker-pt.so(+0x96cf)[0x7fa635c716cf]
/usr/local/src/opentrack/libopentrack-tracker-pt.so(+0xc00a)[0x7fa635c7400a]
/usr/local/src/opentrack/libopentrack-tracker-pt.so(+0xcd0b)[0x7fa635c74d0b]
/usr/local/src/opentrack/libopentrack-tracker-pt.so(+0xcd92)[0x7fa635c74d92]
./opentrack(_ZN17SelectedLibrariesC1EP23IDynamicLibraryProvider+0x1f1)[0x43af07]
./opentrack(_ZN13FaceTrackNoIR12startTrackerEv+0xfc)[0x42a24c]
./opentrack[0x442344]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x2d1)[0x7fa646616261]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN15QAbstractButton7clickedEb+0x32)[0x7fa6475387c2]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(+0x238653)[0x7fa6472af653]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(+0x238f6b)[0x7fa6472aff6b]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN15QAbstractButton17mouseReleaseEventEP11QMouseEvent+0x134)[0x7fa6472b0174]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN7QWidget5eventEP6QEvent+0x43e)[0x7fa6471e986e]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xb4)[0x7fa6471b2b54]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x2a9)[0x7fa6471b5e39]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x84)[0x7fa6465eedd4]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Eb+0x318)[0x7fa6471b4fa8]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(+0x191865)[0x7fa647208865]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(+0x193a70)[0x7fa64720aa70]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xb4)[0x7fa6471b2b54]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x456)[0x7fa6471b5fe6]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x84)[0x7fa6465eedd4]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate17processMouseEventEPN29QWindowSystemInterfacePrivate10MouseEventE+0x70b)[0x7fa646afa01b]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate24processWindowSystemEventEPN29QWindowSystemInterfacePrivate17WindowSystemEventE+0x29d)[0x7fa646afa8ed]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Gui.so.5(_ZN22QWindowSystemInterface36sendWindowSystemEventsImplementationE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x28)[0x7fa646ae3a98]
/opt/Qt5.1.1/5.1.1/gcc_64/plugins/platforms/libqxcb.so(+0xb7940)[0x7fa63e33a940]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x146)[0x7fa6444fa3b6]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x48708)[0x7fa6444fa708]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c)[0x7fa6444fa7ac]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x64)[0x7fa646639314]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xcb)[0x7fa6465edb6b]
/opt/Qt5.1.1/5.1.1/gcc_64/lib/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x7e)[0x7fa6465f1bbe]
./opentrack(main+0xef)[0x43c558]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fa6455ccde5]
./opentrack[0x41c1e9]
======= Memory map: ========
00400000-00455000 r-xp 00000000 00:10 1683624                            /usr/local/src/opentrack/opentrack
00655000-00656000 r--p 00055000 00:10 1683624                            /usr/local/src/opentrack/opentrack
00656000-00657000 rw-p 00056000 00:10 1683624                            /usr/local/src/opentrack/opentrack
01c3e000-02e25000 rw-p 00000000 00:00 0                                  [heap]
7fa61c000000-7fa61c021000 rw-p 00000000 00:00 0 
7fa61c021000-7fa620000000 ---p 00000000 00:00 0 
7fa624000000-7fa624021000 rw-p 00000000 00:00 0 
7fa624021000-7fa628000000 ---p 00000000 00:00 0 
7fa62809d000-7fa6280a9000 rw-s 00000000 00:04 351469617                  /SYSV00000000 (deleted)
7fa6280a9000-7fa62814c000 rw-s 00000000 00:04 351436847                  /SYSV00000000 (deleted)
7fa62814c000-7fa62814d000 ---p 00000000 00:00 0 
7fa62814d000-7fa62894d000 rw-p 00000000 00:00 0 
7fa629630000-7fa629631000 ---p 00000000 00:00 0 
7fa629631000-7fa629e31000 rw-p 00000000 00:00 0                          [stack:15161]
7fa629f91000-7fa629fdc000 rw-s 00000000 00:04 351567922                  /SYSV00000000 (deleted)
7fa629fdc000-7fa629fed000 r-xp 00000000 00:10 1683716                    /usr/local/src/opentrack/libopentrack-filter-ewma.so
7fa629fed000-7fa62a1ed000 ---p 00011000 00:10 1683716                    /usr/local/src/opentrack/libopentrack-filter-ewma.so
7fa62a1ed000-7fa62a1ee000 r--p 00011000 00:10 1683716                    /usr/local/src/opentrack/libopentrack-filter-ewma.so
7fa62a1ee000-7fa62a1ef000 rw-p 00012000 00:10 1683716                    /usr/local/src/opentrack/libopentrack-filter-ewma.so
7fa62a1ef000-7fa62a202000 r-xp 00000000 00:10 1683692                    /usr/local/src/opentrack/libopentrack-filter-accela.so
7fa62a202000-7fa62a402000 ---p 00013000 00:10 1683692                    /usr/local/src/opentrack/libopentrack-filter-accela.so
7fa62a402000-7fa62a403000 r--p 00013000 00:10 1683692                    /usr/local/src/opentrack/libopentrack-filter-accela.so
7fa62a403000-7fa62a404000 rw-p 00014000 00:10 1683692                    /usr/local/src/opentrack/libopentrack-filter-accela.so
7fa62a404000-7fa62a415000 r-xp 00000000 00:10 1683871                    /usr/local/src/opentrack/libopentrack-tracker-udp.so
7fa62a415000-7fa62a615000 ---p 00011000 00:10 1683871                    /usr/local/src/opentrack/libopentrack-tracker-udp.so
7fa62a615000-7fa62a616000 r--p 00011000 00:10 1683871                    /usr/local/src/opentrack/libopentrack-tracker-udp.so
7fa62a616000-7fa62a617000 rw-p 00012000 00:10 1683871                    /usr/local/src/opentrack/libopentrack-tracker-udp.so

ARMA 2/3 support

Opentrack beta 3 doesn't work with ARMA 2 and 3. I have enabled the trackir controller in the control settings but my head movement isn't recognized in the game. I use freetrack 2.0 as protocol in Opentrack.

Installation on Debian gnu/linux testing

All files are installed to CMAKE_INSTALL_PREFIX. No install directories seem to be set, so all .so files etc. are installed directly to my /usr/local.

This is what I tried:
mkdir build
cd build
cmake ..
make
sudo make install

Support for android app Head Track

Google play page:
https://play.google.com/store/apps/details?id=com.c0bra.head.track&hl=en

It's an app that gets raw gyroscope data from phone to use as yaw/pitch/roll track device with a pc (data is transmitted over network).
This app was written by https://github.com/KateAdams (Aka C0bra), with a Windows server more or less compatible as a freetrack device.

The code for the app & server is available here: https://github.com/KateAdams/HeadTrack

The idea is to implement the server side into opentrack so the app can be used with opentrack.

I'm willing to contribute if someone would provide me some guidelines.

OpenTrack - UDP output format

I'm trying to access the UDP packets via another Python script, and am having trouble correctly decoding the output. As per this issue (#3), and looking through the code, it seems that the output UDP is a QByteArray of six doubles, and so I'm decoding that data in Python.

On the Python side, however, the positive numbers have been decoded correctly as IEEE double-precision numbers, yet whenever the data from OpenTrack gets a negative yaw/pitch/roll, the data suddenly becomes a small positive floating-point number, rather than a negative number.

For example: 0, 0, 0, -158, -1.27, 32.26 data from OpenTrack is sent as a UDP message. Decoded into hex:

['0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x3f', '0x3f', '0x3f', '0x63', '0x3f', '0x00', '0x00', '0x00', '0x60', '0x3f', '0x3f', '0x3f', '0x3f', '0x00', '0x00', '0x00', '0x3f', '0x3f', '0x24', '0x40', '0x40']

That, when decoded / unpacked as six doubles, turns into:

(0.0, 0.0, 0.0, 0.0023494944834965281, 0.00047679230920039117, 32.283180117607117)

This is my code:

chars = x.encode('utf-8')
doubles = struct.unpack('dddddd', chars)

Note that the last number, which is positive, is translated (relatively) correctly.
I'm a little stumped, since a big/small endian format issue wouldn't explain why all positive numbers are decoded properly, yet the negative numbers are not. Another example:

OpenTrack Data: [0, 0, 0, -6.09, 10.06, 13.91]
Parsed Python UDP output: [0, 0, 0, 9.2867e-05, 10.11.., 13.62..]

Are there any quirks or format specifics within the UDP output format for OpenTrack that could possibly help? Thanks a bunch.

Precision mode ala TrackIR

First off, love this software. Thanks for the work on it.

A request for Precision mode, something TrackIR has which can be very useful. Basically it would be an additional hotkey that would reduce sensitivity. TrackIR does this by increasing smoothing. Useful in flight sims, as well as games like ARMA when using scopes.

Currently, because the view is so zoomed in when using scopes, tiny head movements translate to large view shifts. Binding a "precision mode" key to be the same as one for zooming in would reduce this problem.

From TrackIR manual:

"The Precision hotkey enables precision mode, which temporarily steadies the view by increasing smoothing. When precision mode is disabled, smoothing settings return to the normal profile preset.
Precision mode is commonly used in combat flight simulators when tracking an enemy in your sights to keep the view as stable as possible. "

the face tracking problem

The sole face tracker remaining, HT, misbehaves badly.

Either make sure it isn't such a waste of disk space, -or- document that it's only good to see if tracking works, not usage.

Or both.

preempt further pestering with FAQ

Get rid of stuff causing common user confusion.

Maybe make a first-time user wizard or something.

  • initial mapping being empty
  • face tracking ain't worth spit
  • making a LED clip not necessary, see aruco

How to chose a different camera?

How can I chose a different camera? Opentrack detects my TV card as capture device but I can't find a way to change it to the PS3 Eye cam that is connected as well.

Unable to get headtracking with pointtracker to work

opentrack_error
Hello Devs,

I just tried opentrack on Windows 7 but I was unable to get this working. I use a PS3 cam with a 3 point IR-model. For FactrackNoIR this works nearly perfect. In the settings of PointTracker 1.1 or in the video preview in opentrack I can see that 3 points are detected but opentrack somehow does not recognize the movement. I tried different versions of opentrack.

Is there something I missed?

Bye
F4l0

Orientation of LED clip

Hi, my clip is not orientated exactly vertically. i have played around with the custom model settings to compensate for this but this seems to be a bit fiddly and to introduce distortions of the tracking. Is it possible to have an angular clip orientation setting somewhere, or do I just need to mount it vertically on my headset? This latter option would make it difficult for more than one person to use the clip if their head sizes were markedly different.

OpenTrack Stuttering when moving.

Hi

OpenTrack is stuttering badly when using it. I'm using PS3 Eye with DelanClip ( PointTracker 1.1, FreeTrack2.0 and Accela Filter MK4 )

As I've stated the stuttering is bad. I don't have any stutter when using FTNIR but the latency is worse there. My settings
ddeadzone=0.7
exponent=2.0
rotation-alpha=25
second-order-alpha=999
third-order-alpha=999
translation-alpha=25
rotation-deadband=0.4
translation-deadband=0.4

I've also tried settings bellow but it makes stutter even worse
deadzone=0.7
exponent=2.0
rotation-alpha=6
rotation-deadband=0.675
second-order-alpha=3
third-order-alpha=4
translation-alpha=8
translation-deadband=0.45

Deadlock ?

I am trying opentrack compiled on archlinux 64 bit. I use PointTracker 1.1 as the main tracker. I have a ps3 eye.
After tweaking the code a little I found that maybe there is a deadlock on the mutex declared there : ftnoir_tracker_pt.h:60
So, Tracker::GetHeadPoseData almost never get the lock. It seems Tracker::run() always has it.
What's happening :
When tracking is running, the video widget is updated every frame and the points are extracted well. But extracted values and octopus animation is very jittery. And It's impossible to use the main tracker settings window, it may respond every 30 seconds.

As a tweak, I commented out in Tracker::run() in ftnoir_tracker_pt.cpp:73 :
QMutexLocker lock(&mutex);

Has anyone having this issue too ?

reorganize source tree

All trackers in the form of ftnoir_tracker_FOO -> trackers/FOO

Similarly for protocols and filters.

remove rest of forked project's cruft

Look harder for cruft from "FaceTrackNoIR" project:

  • useless comments
  • win32 and Qt API misuse
  • logic errors
  • dead code

Most of it's taken care of already.

TrackClipPro dimensions

Maybe you can add the dimensions of the popular track clip pro to the default settings?

ClipBottomHeight=40
ClipBottomLength=30
ClipTopHeight=70
ClipTopLength=80

Path for Highgui include in tracker_pt?

I am compiling OpenTrack on Windows 7 32-bit using Visual Studio 2008. OpenCV is built from their git 2.4 branch. On a fresh checkout of master, I need to manually modify line 16 of camera.h to read "# include <opencv2/highgui/highgui.hpp>" to fix a file not found error. I also need to manually modify my linker input to include strmbase.lib from the Windows SDK. With these changes, master (as of 022e586) builds and runs as expected. Not sure how to solve the latter in cmake, and not sure if the former is a quirk of my particular opencv build, but squawking the issues in case others are experiencing them.

TrackIR output

Would you mind giving a quick comment on current & future TrackIR support? I understand that they have started using a proprietary format rather than that used in FreeTrack.

The reason I ask is that 'Elite: Dangerous' is being released this year (currently in alpha) with TrackIR support .. a game that I will be playing when it reaches beta in about a month.

Shortcut keys not working in games windowed or fullscreen. Work fine otherwise.

The latest opentrack posted last night. opentrack-win32-20140913.tar.xz is tracking with EdTracker correctly which is excellent news. Thanks for all your effort.

I have tested in War Thunder and Elite Dangerous and actual tracking is working fine. I have however noticed a problem.

The keyboard shortcuts for center and on/off toggle only work outside of a game. When a game has focus those keyboard shortcuts stop working while the tracking itself continues working.

If I run some other non game application in a window with opentrack visible on the screen somewhere, the shortcuts work. It only seems to be happening in games both windowed or fullscreen.

I checked that the shortcut keys were not being used elsewhere in game, just in case there was a conflict. It doesn't seem to be the case.

UDP Protocol

I've written an Android app to send orientation data via UDP but Opentrack doesn't appear to receive/understand it. The raw value displays remain at 0.

This is one of the UDP packets:

bcee7b774d5b18e2c29b015208004500004c000040004011b6aac0a8016ac0a8013c891e15ae00389c5900000000000000000000000000000000000000000000000040600000000000003ff0000000000000c010000000000000

The data being the last 48 bytes:

00:00:00:00:00:00:00:00
00:00:00:00:00:00:00:00
00:00:00:00:00:00:00:00
40:60:00:00:00:00:00:00
3f:f0:00:00:00:00:00:00
c0:10:00:00:00:00:00:00

The first 3 are 0 as I'm not using translation, only rotation.
The three numbers should be 128, 1 and -4.
These are IEEE doubles.

Am I doing something wrong or is this a bug in Opentrack?
Thanks

UDP paquets - byte encoding

I try to acess to the UDP paquets send via FlightGear (port 5550). I can't decode the bytes (in C#).
It should be Encoding.UTF8.GetBytes(dataByte). I try to encode the bit with UTF8, ASCII, ASCI... The Qbyte array works with UTF8 encoding right ?

Every test are made with the old facetrackNoIr. The protocol seems to have change since the new version of Opentrack. Maybe my question is obsolete.

[suggestion] Opentrack/facetrackNoIR is a real opportunity for Virtual Reality (not necesseary gaming). I'll publish soon some exemples of VR using OpenTrack. Maybe It should be good to implement some commun protocol in interaction design (such OSC, etc)

Mappings not saving

Hi, Opentrack isn't saving my mappings, and I have to redo them all when I start the program. I do have saved profiles, but the curves are all flat when I load them. Remappings and invert options are saved, but that's it. Am I doing something wrong?

difference windows / linux

Using the same profile I have to change the axis inversion between windows and linux in order to get the same result:

diff linux.ini /media/WindowsHDD/windows.ini  | grep invert
< pitch-invert-axis=false
< roll-invert-axis=false
< x-invert-axis=true
< y-invert-axis=false
< yaw-invert-axis=false
< z-invert-axis=false
> pitch-invert-axis=true
> roll-invert-axis=false
> x-invert-axis=false
> y-invert-axis=false
> yaw-invert-axis=true
> z-invert-axis=false

Futhermore looking in WarThunder (windows) is very smooth, the movement is very choppy in X-Plane (linux). I use the same settings expect of the inversion.

Maybe the different fps of my ps3 eye is the source of this problem?

stable and dev branches

We can't annoy users any longer with regressions and other nonsensical bugs anymore.

Hence, process changes to stable and dev branches.

Stuttering during camera movement

Hi, I tried my hand at opentrack recently with the new mk4 filter, and have noticed a consistent micro-stuttering in games whenever moving the camera. I've played around with game settings, vsync, and accela settings but the stuttering just never goes away. The best way to describe it is that the video image seems to "skip" frequently and doesn't flow smoothly. This effect only happens during camera movement, otherwise gameplay is smooth. After 10mins of this I actually started feeling queasy.

I then switched back and forth between the mk4 filter an mk2 in ftnoir, and the old filter didn't have this issue. Compared to mk4 It was significantly slower and laggier, but the video image was smooth.

Has anyone else experienced anything like this?

Joystick Protocol dialog not showing options.

Hi, the joystick input dialog seems to have changed in the very latest build. Instead of listing the joystick name from a list and giving you the 6DOF axis assignment options it displays the stick name and no configuration settings. See pic below:

My EDTracker and Saitek X52 do not work correctly with the wrong axes preassigned.

It used to look like this:

60 fps ps3 eye cam linux

My framerate does not go above 30 even if I select 60 fps in the point tracker settings. Are 60 fps not supported on Linux?

remapping axes feature

Please add remapping axes feature, for example x for y or y for z etc.
It will be useful in case for use smartphone sensor (via UDP), there will be a possibility to mount smartphone in any way. This allow set up of axes to VR or tracking

//polish//
Proszę o dodanie funkcjonalności zamiany osi, np x na y lub y na z etc.
Przyda się to w przypadku wykorzystania sensora ze smartfona (via UDP), dzięki temu będzie można przymocować sensor w dowolny sposób do głowy. Umożliwi to ustawieni osi pod gogle VR lub pod tracking

;)

Pink Octopus and Top Numbers

Hi, I'm trying to decide if opentrack is tracking or not when using pointtracker. I have three crosses following my leds nicely in the video stream, and values displayed for raw translation and rotation. There are no numbers displayed at the top next to the pink octopus. Should this be moving like in FTNoIR?

Secondly, I cannot get opentrack to work with flightgear. I have set the flightgear output settings to 127.0.0.1 and port 5542 in opentrack. I have copied:

clientfiles/FlightGear/Protocol/headtracker.xml to FlightGear/data/Protocol/headtracker.xml

and have tried to run flightgear with:

fgfs --generic=socket,in,25,localhost,5542,udp,headtracker

I'm sure that I am doing something stupid, but I cannot see what.

Regards,

Ian Sutherland

Opentrack is sending X and Y translation values, even though they are disabled?

Not sure if this is the right place to post this - I couldn't find any Opentrack forums or discussion boards.

I have OpenTrack set up to work with my IR 3-point cap, and it works great, except for one thing - when I rotate or pitch my head, your software OpenTrack adds a whole bunch of X and Y translation on top of that. That means that when I turn my head 10 degrees in real life, OpenTrack is telling my game to not only rotate 90 degrees in-game, but also translate left a whole crapload.

The weird thing is, X and Y axes are disabled under the pointtracker settings. Under the "Raw Translation" values, the X and Y values are 0. Constantly 0. So I don't know where OpenTrack is getting these X and Y translation values from, but they are not from X and Y inputs.

OpenTrack doesn't output the oculus tracking data

Hi !
I'm having a strange issue. I've set up OpenTrack to use the Oculus Rift as main tracker, no secondary tracker, and FreeTrack 2.0 as the output.

OpenTrack correctly reads the Oculus tracking (after pressing start) but the software (VBS2), even though detecting a TrackIR controller, enabled, doesn't react to it.

Worse, even the mouse emulation doesn't produce any kind of result.

I am using Windows 8, tried compatibility mode (XP and 7), as well as launching OpenTrack as an Administrator, but still no result. Is there anything to enable that I forgot ? A checkbox to tick ? A software or driver to install ?

Thanks a lot, and sorry for the bothering. It's just that the readme doesn't really help...

Have a great day !

Edit: Mouse Emulation does work. I understood it's settings the wrong way and mapped Mouse X to X, and so forth, and since the rift doesn't have any positional tracking... My bad. Sill doesn't solve the main issue though, but it's reassuring.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.