NatNetLinux

From Mech
Revision as of 16:30, 7 March 2014 by PhilipLee (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This is a C++ library to read raw NatNet packets into structured data fields on Linux systems. Please see the Github NatNetLinux page for more detail.

NatNet

NatNet is a protocol specified by Optitrack. Below are some of the surprising details I learned about it.

  • The 'latency' field of a NatNet packet is not latency of any sort. It is a timestamp added by Motive.
  • The 'latency' field is a float, meaning it has about 7 digits of precision. Since it starts at 0 when Motive starts, this means that it can give you .1 ms precision only for about 1,000 seconds afterward, and 1 ms precision for about 10,000 seconds. It's useless.
  • The 'frame number' field of a NatNet packet is also useless in live mode. You may get many consecutive packets with the same frame number. This field is only defined in playback mode.