HI
Last time I was told that the markers can be labeled by the Arena software. In other words, in the datastream coming out of the Arena software, or in the data structure, the orders of the markers in the array are fixed. Now I have a problem that is very important to my current project: I want to know the exact position of a marker within the array. For example, when I am tracking a rigidbody formed by marker on my forearm, how can I know which marker within the array is on my elbow or on my wrist? Thanks for your attention.
By the way, when I am using your NatNet Sample3D to track two rigidbodies: Triangle, Rigid_Body, both include 3 markers, I observed that the 6 markers are named as below:
Triangle:root1
Triangle:root2
Triangle:root3
Rigid_Body:root2 //looks strange, why these 3 markers in
//the array are named like this?
Rigid_Body:root3
Rigid_Body:root1
in the array szMarkersname[] in the data structure sDataDescription. Is that the order that the markers will be described later in the data stracture sFrameOfMocapData please?
Also, when I am tracking these two rigidbodies in Arena, the selected marker will have an "ID". This "ID" sometimes is "rootX" (X represents a number, such as 3), sometimes is (-X). What is the matter please? When the marker is marked by "-X", the numbers that markers of the same rigidbody have may not be continuous, such as -1, -2, and -6. Also I notice that the same marker can have different such IDs in a taken clip, such as -5,-1,-2... And, in the natnettype.h file of the Sample Natnet, there is a strucure:
// Marker Set Definition
typedef struct
{
char szName[MAX_NAMELENGTH]; // MarkerSet name
int nMarkers; // # of markers in MarkerSet
char** szMarkerNames; // Array of marker names
} sMarkerSetDescription;
It seems that the szMarkerNames are just the name of the rigidbodies:rootX. Is that true please?
How to find a specific marker in the data array?
Re: How to find a specific marker in the data array?
Hello,
Yes markers come in the order described in sDataDescription. First marker attached to a rigidbody is named "root1", then "root2" and so on. The order of markers in sDataDescription are result of sorting by the distance from the origin of the rigidbody. In case of this rigidbody:
Rigid_Body:root2
Rigid_Body:root3
Rigid_Body:root1
root2 marker was furtherest from the origin, while root1 was closest.
If you click on white marker, its ID will show as a number, positive if successfully being tracked, negative otherwise. If you click on gray marker, ID will be its name like root1. White markers are calculated positions, while gray ones are expected positions.
Yes markers come in the order described in sDataDescription. First marker attached to a rigidbody is named "root1", then "root2" and so on. The order of markers in sDataDescription are result of sorting by the distance from the origin of the rigidbody. In case of this rigidbody:
Rigid_Body:root2
Rigid_Body:root3
Rigid_Body:root1
root2 marker was furtherest from the origin, while root1 was closest.
If you click on white marker, its ID will show as a number, positive if successfully being tracked, negative otherwise. If you click on gray marker, ID will be its name like root1. White markers are calculated positions, while gray ones are expected positions.
Re: How to find a specific marker in the data array?
Thank you very much. So when I open the same rigid body in different trials, will the same marker still be named as before? For example, will the marker on the right-angle of the rigidbody Triangle always be root1 in different trials please?
Re: How to find a specific marker in the data array?
Yes as long as the same .rgb/.skl file is being used.