Shared Tracking Notes

Some ideas regarding shared tracking. In this form it probably doesn't make too much sense, but I could explain it with a white board pretty well, I believe :).

The Graph

Model the relationships as a graph. Each node represents a point in space that one is interested in or knows something about. Edges represent measureable geometric relationships. The source for these relationships are typical tracker data. It might also be measured fixed knowledge. The canonical form would be a transformation matrix with some constaints (e.g. translation and rotation). It is also associated with a certain confidence value representing the error of the measurement.

Example - A magnetic tracker


Figure 1. Simple graph denoting the relationships for three devices tracked by a magnetic tracker.

In this example the tracking information is represented as a reference point R and three devices which location is known relative to the reference point. Because the setup and the applications choose to use the reference point as origin for their coordinate system, they are only interested in the direct measurements between the reference point and the devices.

Having larger graphs allows to make inferences about relationships between nodes that are not directly connected. Typically one is interested in the relationship between two fixed nodes. Then there might be several paths between these two nodes that allow to compute the relationship. Using the confidence value we can than select the most appropriate one to do the computation.

Some examples

Correcting an inertial tracker

Typically inertial readings are relative to some arbitrary null reading or null direction. As inertial trackers are accumulating errors both the measurements tend to drift. They still produce readings relative to the null reading, but in reality this null direction is changing. Therefore the application is actually interested in the measurement between the Reference Orientation and the Head. So an additional tracking input to provide the Tref transformation is required to establish the current error and take that into account.

Signpost tracking

The SignPost tracking can be modelled as follows. Within a building we measure the rooms locations by measuring a fixed origin within a room. Then we measure the room's markers' locations within that room. These measurements are treated as constanst measurement functions. Finally the camera mounted on the helmet tracks the markers, then using the fixed measurements we compute the actual interesting relationship between the head and the current room (or the building for a world in miniature model). In this case the application would also activate and deactive certain parts of the graph to avoid contradictory input (such as could happen with marker 21).

Shared tracking

The shared tracking setup is modelled by two cameras that observe a common set of markers. By inverting some measurement functions it is also possible to construct different ways to the markers. For example, camera1 could measure marker2 directly or by using the path via marker3, camera2 and marker2. The interesting aspect of this application is that it selects data from both paths depending on an error function associated with the data.

The graph model is just an ordered way to represent all possible combinations. These can then be searched through and computed.

Dynamic changes

The measurements may change (this is the norm). This requires recomputation of the infered relationships. Here the problem of the correct computational model is interesting. Should it use a continous model or a discrete model ? How could they be implemented ? How efficient are they ?

The value of the error changes (i.e. the confidence value). This may trigger the selection of another computational path. How can this be propagated or become part of the computational model ?

The graph changes. This again will change paths between nodes and can even lead to disconnectivity in the graph, a very special situation. How is this propagated and modelled ? Can or should it be application transparent ?

Error modelling

Modelling the error to allow selecting good paths is a special problem. There are two kinds of errors. Measurement errors that yield incorrect values for a certain measurement. These can be modelled by statistical means such as an error interval taken into account when computing inferred relationships. The second kind of errors does not apply to all measurements. Its the statistical test error (either type 1 or type 2). For example, an optical tracking system that tracks markers has a certain probabiliy to mistake two markers. This leads to type 1 errors, where a marker is reported although it is not present and type 2 errors where the marker is present but not reported (or the other way round). How should this kind of errors be taken into account ? They obviously cannot be modelled accuratly be a simple imprecision on the measurements.

Formal model

some ideas