Difference between revisions of "Introduction 9DoF"

From The Relativty Wiki
 
Line 4: Line 4:
  
 
<!--T:2-->
 
<!--T:2-->
Main [[Alpha_testing|Alpha Testing]] page
+
Back to main [[Alpha_testing|Alpha Testing]] page
  
 
<!--T:3-->
 
<!--T:3-->

Latest revision as of 18:10, 14 May 2019

Other languages:
English

Introduction to 6DoF and 9DoF[edit]

Back to main Alpha Testing page

Positional tracking is complex field, full of obtuse terms and complicated mathematics. In a nutshell though, for those of you wondering what a move from 6DoF to 9Dof will give us, it'll fix the main problem that 6DoF trackers have, which is drift. Of course, the first question really should be: "What on earth is 6DoF or 9DoF?"

This is best explained in the two 1 minute videos below, from Sebastian Madgwick - the guy who developed the sensor fusion algorithms that we all use as part of his Ph.D research at the University of Bristol in 2009. Basically, the direction that your 6DoF headset tracker thinks is forwards slowly drifts sideways because of sensor errors, so you have to keep on recalibrating it - but not if you have a 9DoF headset tracker. A 9DoF tracker also measures the earth's magnetic field, alongside the standard 6DoF measurements, & uses a mathematical algorithm to continually compensate for the 6DoF errors.


YouTube: 6Dof Demonstration of Basic Concepts and Drift



YouTube: 9Dof Demonstration of Zero Drift

The hardware has moved on since Sebastian Madgwick was first playing with it, as have the mathematical algorithms. An American called Kris Winer took Madgwick's algorithm and applied them to new Arduino compatible MPU-9250 sensor boards that had recently become available. He released his work to the world as "Beerware" - which means that anyone can do whatever they like with it, but if they ever get the chance, they should buy him a beer. His work is beyond epic, so if you ever meet him, please, buy him as much beer as you can!

However, to those of us who are not so mathematically adept, the algorithms are rather hard to understand. Thankfully, various people have taken them & wrapped them up in nice, approachable Arduino libraries which are pretty straightforward to use.