Head tracking: Difference between revisions
(→Related content: + link: FGData/Nasal/view.nas; + Developer mailing list threads) |
(Extending and rewriting. Somehow I initially did not think of AR and VR goggles.) |
||
Line 1: | Line 1: | ||
'''Head tracking''' or '''face tracking''' | '''Head tracking''' or '''face tracking''' allow the in-sim view follows your head movements. Head tracking is usually done for two similar purposes: Either to pan and translate the view presented on a screen, or to make the view of augmented or virtual reality goggles follow your head movements. | ||
Though there is no head tracking built into FlightGear (as of may 2016) there are still various ways to achieve that. | |||
More exotic uses of head tracking is to have a high resolution projector follow your head movements, while having a few low resolution projectors that only will be visible in your peripheral view. | |||
== Degrees of freedom == | |||
Degrees of freedom (DoF) are very common measure of the capability of a head tracking solution. It is the number of axis the view can be rotated or translated around or along. | |||
For example would simple horizontal panning be 1 DoF (in essence rotation around the Z axis), while all translations and rotations would be 6 DoF (rotation around x, y and z + translation along x, y and z). | |||
== Screen view vs. VR view panning == | |||
While you obviously would like a VR goggle view to precisely follow your head movements, you can not do that if you want to have the view on a screen in front of you. To be able to still see the screen when you are panning the view to directly behind, the translations usually are scaled down when head tracking is used for panning the view on a screen. | |||
While one or two DoF may be satisfactory when you are using head tracking to pan a screen view, three or sometimes six DoF is usually wanted when using VR goggles. Having six DoF with goggles usually requires requires external head tracking to capture the head movements as accelerometers are too noisy and will drift. | |||
== Head tracking | == Head tracking solutions == | ||
There are many ways to do head tracking. The | There are many ways to do head tracking. The solutions cheapest to implement will use your web camera and will follow your face or some markers to figure out where your head is and how it is rotated. | ||
The more expensive ones use IR cameras, either using a group of LED light markers or IR lights at the camera and reflective markers. The last method is used by some of the more popular commercial products. Often there is three or four markers grouped together with fixed relative positions that is attached to headwear or headphones. | |||
== Using head tracking in FlightGear == | == Using head tracking in FlightGear == | ||
As FlightGear is very flexible there are many ways head tracking | As FlightGear is very flexible there are many ways head tracking can be implemented. Often some external head tracking software will [[Interfacing FlightGear|interface with FlightGear]] for example using a [[generic protocol]] such that the rotations and translations is read into [[Property tree|properties]] that in turn are used for panning and moving the view. | ||
== Related content == | == Related content == | ||
Line 43: | Line 53: | ||
=== Source code === | === Source code === | ||
* {{fgdata source|Nasal/view.nas}} – ''[[Nasal]] module that handles the view panning and translation, and related | * {{fgdata source|Nasal/view.nas}} – ''[[Nasal]] module that handles the view panning and translation, and related properties.'' | ||
[[Category:FlightGear]] | [[Category:FlightGear]] |
Revision as of 21:46, 30 May 2016
Head tracking or face tracking allow the in-sim view follows your head movements. Head tracking is usually done for two similar purposes: Either to pan and translate the view presented on a screen, or to make the view of augmented or virtual reality goggles follow your head movements.
Though there is no head tracking built into FlightGear (as of may 2016) there are still various ways to achieve that.
More exotic uses of head tracking is to have a high resolution projector follow your head movements, while having a few low resolution projectors that only will be visible in your peripheral view.
Degrees of freedom
Degrees of freedom (DoF) are very common measure of the capability of a head tracking solution. It is the number of axis the view can be rotated or translated around or along.
For example would simple horizontal panning be 1 DoF (in essence rotation around the Z axis), while all translations and rotations would be 6 DoF (rotation around x, y and z + translation along x, y and z).
Screen view vs. VR view panning
While you obviously would like a VR goggle view to precisely follow your head movements, you can not do that if you want to have the view on a screen in front of you. To be able to still see the screen when you are panning the view to directly behind, the translations usually are scaled down when head tracking is used for panning the view on a screen.
While one or two DoF may be satisfactory when you are using head tracking to pan a screen view, three or sometimes six DoF is usually wanted when using VR goggles. Having six DoF with goggles usually requires requires external head tracking to capture the head movements as accelerometers are too noisy and will drift.
Head tracking solutions
There are many ways to do head tracking. The solutions cheapest to implement will use your web camera and will follow your face or some markers to figure out where your head is and how it is rotated.
The more expensive ones use IR cameras, either using a group of LED light markers or IR lights at the camera and reflective markers. The last method is used by some of the more popular commercial products. Often there is three or four markers grouped together with fixed relative positions that is attached to headwear or headphones.
Using head tracking in FlightGear
As FlightGear is very flexible there are many ways head tracking can be implemented. Often some external head tracking software will interface with FlightGear for example using a generic protocol such that the rotations and translations is read into properties that in turn are used for panning and moving the view.
Related content
Wiki articles
Forum topics
- Setting up my flight gear? May 2016
- How-to: motion tracking controller using vJoy and FreePIE February 2016
- Headtrack January 2011–November 2015
- FaceTracking: which views are movable ? May–June 2013
- Offset problem with infra-red headtracker April 2012
- Something for your sim pit? (Eye-following projector) June 2011
- linux-track and FlightGear March 2011–March 2014
- Typhoon+Grand Canyon+FaceTrackNoIR=AwEsOmE March 2011
- First update FaceTrackNoIR June 2010–March 2011
- Anything new related to FreeTrack/TrackIR? April 2009–July 2010
- Integration with OpenCV February 2007
Developer mailing list threads
- [Flightgear-devel] SteamVR January 2016
- [Flightgear-devel] Kinect for pc for head tracking? March 2013
- [Flightgear-devel] FG Input though socket or anyway? August 2011
- [Flightgear-devel] Enable headtracking in FlightGear? April 2010
- [Flightgear-devel] Depth percepted cockpit January–February 2008
- [Flightgear-devel] Extending generic protocol for binary input streams. September 2007–March 2009
- [Flightgear-devel] Formation Flying May 2006
Source code
- flightgear/fgdata/next/Nasal/view.nas – Nasal module that handles the view panning and translation, and related properties.