Note: This page is under construction and serves primarily as a discussion forum.
The sensor API defines the data sensors, fusion and inference components and the ubitrack layer itself are expected to exchange at runtime. The data items described here are the minimum set of values such a component must provide with every single measurement.
Note that we do not define the sensor API in a formal way by means of, say, CORBA IDL or XML. Instead, we give a list of data items that must be provided by every implementation. The actual choice of implementation is up to the developers of Ubitrack and the application users, depending on specific needs regarding efficiency or integration of existing code.
| Name || Type || Semantics |
| Float || Position of the target object in 3D space, based on the source object's coordinate system. |
| Float || Orientation of the target object in 3D space, based on the source object's coordinate system. Given as a quaternion with the scalar of the quaternion being stored in |
| String || The source object's unique ID. |
| String || The target object's unique ID. |
| (Long,Long) || The time the position expressed is valid, a pair of seconds and milliseconds, based on the standard UNIX time format starting in 1970. When?? |
| Float [0..1] || A statistical value giving the probability that this measurement exists. |
| Float || A 6x6 covariance matrix parameterizing the Gaussian error distribution of the measured position and orientation. TODO: ask Cambridge guys what this means exactly. |
| Float || Standard deviation of measurement time. |
- I think the time should be given in seconds and nanoseconds, not seconds and milliseconds. Otherwise we're just wasting bits. Also, that is what the omnithreads library returns. -- AsaMacWilliams - 13 Feb 2004 Definitely -- DanielPustka - 16 Feb 2004
- This describes single measurements. We also need a description for the general capabilities of sensors: Update rate, lag, type (absolute/speed/acceleration), expected error, etc. This will be put in the graph for path searching. Is this the ubitrack layer API? -- DanielPustka - 16 Feb 2004
- Make everything double instead of float -- GerhardReitmayr? - 17 Feb 2004
- This spec just gives semantical information, not technical one. If I wrote "Float" somewhere, I just wanted to express that we have a real number, not an integer. How this gets implemented may vary. -- MartinWagner - 25 Feb 2004