Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

Sensor API

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
Position Float[3] Position of the target object in 3D space, based on the source object's coordinate system.
Orientation Float[4] 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 orientation[3]
Source String The source object's unique ID.
Target String The target object's unique ID.
Time (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??
Confidence Float [0..1] A statistical value giving the probability that this measurement exists.
PoseError Float[6][6] A 6x6 covariance matrix parameterizing the Gaussian error distribution of the measured position and orientation. TODO: ask Cambridge guys what this means exactly.
TimeError 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

I Attachment sort Action Size Date Who Comment
measurement_rev2.xsd manage 2.6 K 24 Feb 2004 - 15:37 Main.pintaric changed xs:float to xs:double

Edit | Attach | Refresh | Diffs | More | Revision r1.1 - 20 Sep 2012 - 16:53 - Main.guest

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif