Raw Marker Data when streaming Skeleton

Post Reply
Posts: 10
Joined: Fri Dec 06, 2013 8:09 am

Raw Marker Data when streaming Skeleton

Post by fhuelsma » Tue Sep 23, 2014 3:36 am


I recorded a take consisting of 2D data. Afterwards, I replayed it with skeleton tracking activated.
Now, I get always a list of 37 labeled markers as soon as the skeleton is reconstructed - also when some of the skeleton markers are hidden or not in the range of the system.

Are those marker positions the optimal marker positions, the system expects - but not the actual tracked positions? If yes, is there a possibility of streaming the raw marker data along with the skeleton?

If I disable skeleton tracking during the replay of the recording, I get a list of "other markers" (data->nOtherMarkers) which seems to be the raw data: If markers are hidden, the marker is removed from the list. Unfortunately, I do not get this list if a skeleton is tracked.

Thank you

NaturalPoint Employee
NaturalPoint Employee
Posts: 199
Joined: Tue Jun 24, 2008 2:01 pm
Location: Corvallis, OR, USA

Re: Raw Marker Data when streaming Skeleton

Post by morgan » Thu Oct 02, 2014 11:11 am

In general, we try to provide the most comprehensive data to client applications. For marker data, this means providing both the observed marker position and the model-solved position. I'll try to (hopefully) clarify:

Observed Marker Location - This is the triangulated location of the marker as "observed" by the camera system. Typically referred to as observed, tracked, actual, or "Point Cloud Solved" marker position. What I think you refer to as raw.

Model Solved Marker Location - This is the location of the marker as calculated by the model solver (rigid body or skeleton solver engines). Typically referred to as model-solved or expected.

The NatNet SDK provides both as follows :

MarkerSet Data : A named collection of identified markers and the marker positions (X,Y,Z). This list is ordered, padded, point cloud solved, model filled (where occluded). This list also contains special MarkerSet named "all" which is a list of all labeled markers.

RigidBody Data : A named segment with a unique ID, position, and orientation data, and the collection of identified markers used to define it. Marker data is model-solved positions.

Skeleton Data : A named, hierarchical collection of RigidBodies. Marker data is model-solved positions.

Labeled Markers : Ordered, padded, point cloud solved, model filled (where occluded) labeled Marker data (labeled markers not associated with a "MarkerSet").

Unlabeled Markers (Other markers) List of point cloud solved 3D positions for all markers in the frame that were unlabeled by either the skeleton or the rigid body solver.

Timestamp data Timing information for the frame, including:
- Frame ID
- Frame Timestamp
- SMPTE Timecode (If timecode is present)

Does this clears things up a bit / answer your question?

If not let us know, or if there's something you feel is missing from the SDK let us know that too.

We've updated the NatNet User's guide as well to hopefully explain this a little better.


Post Reply