NatNetLinux

From Mech
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.