My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members

Kinect Research Framework

The Kinect Research Framework, developed by AltN Research, builds upon the simpleopenni project to provide a general framework and toolset for users getting started programming the Kinect. This system is based around a SERVER -> CLIENT model that gathers all joint data in a central server and packages it in a format that can be sent to most any program that can accept TCP/IP or UDP data. The goal for this method is to expose the skeleton/tracking data in as direct a format possible.

The Kinect server is built in Processing and works on Windows/OSX/Linux

It can currently send data to/from

Processing / Flash / Maya / Rhino / Arduino / Max/Msp / Unity / VVVV / Pure Data

Installation

Download and install the Kinect Drivers / SimpleOpenNI


Data Table

This framework seeks to expose all of the Kinect Data by storing it in a single array. This is achieved by sending a comma separated string from the server that is parsed into an array by the client. To access the desired data, you simply need to know what index in the array it is stored at.

The array holds both the 3d world coordinates and flatten 2d coordinates of all joint positions, internal references, and external references

Joint Positions

These are the 2d and 3d coordinates of each of the 15 tracked joints on the skeleton

Internal References

Internal references are relationships assigned between various joints on the body. The distance and 2 angles (in degrees) are stored in the Data array. For example a reference can be assigned to track the distance and angle between your 2 hands

External References

External References are created by "tagging" points in a space. A reference line is then drawn from the point to a specified joint. The distance and 2 angle components of the reference line is stored in the array.

HEAD: 3dX=coords[1] 3dY=coords[2] 3dZ=coords[3] // 2dX=coords[4] 2dY=coords[5]
 NECK: 3dX=coords[7] 3dY=coords[8] 3dZ=coords[9] // 2dX=coords[10] 2dY=coords[11]
 
 LEFT SHOULDER: 3dX=coords[13] 3dY=coords[14] 3dZ=coords[15] // 2dX=coords[16] 2dY=coords[17]
 LEFT ELBOW: 3dX=coords[19] 3dY=coords[20] 3dZ=coords[21] // 2dX=coords[22] 2dY=coords[23]
 LEFT HAND: 3dX=coords[25] 3dY=coords[26] 3dZ=coords[27] // 2dX=coords[28] 2dY=coords[29]
 
 RIGHT SHOULDER: 3dX=coords[31] 3dY=coords[32] 3dZ=coords[33] // 2dX=coords[34] 2dY=coords[35]
 RIGHT ELBOW: 3dX=coords[37] 3dY=coords[38] 3dZ=coords[39] // 2dX=coords[40] 2dY=coords[41]
 RIGHT HAND: 3dX=coords[43] 3dY=coords[44] 3dZ=coords[45] // 2dX=coords[46] 2dY=coords[47]
 
 TORSO: 3dX=coords[49] 3dY=coords[50] 3dZ=coords[51] // 2dX=coords[52] 2dY=coords[53]
 
 LEFT HIP: 3dX=coords[55] 3dY=coords[56] 3dZ=coords[57] // 2dX=coords[58] 2dY=coords[59]
 LEFT KNEE: 3dX=coords[61] 3dY=coords[62] 3dZ=coords[63] // 2dX=coords[64] 2dY=coords[65]
 LEFT FOOT: 3dX=coords[67] 3dY=coords[68] 3dZ=coords[69] // 2dX=coords[70] 2dY=coords[71]
 
 RIGHT HIP: 3dX=coords[73] 3dY=coords[74] 3dZ=coords[75] // 2dX=coords[76] 2dY=coords[77]
 RIGHT KNEE: 3dX=coords[79] 3dY=coords[80] 3dZ=coords[81] // 2dX=coords[82] 2dY=coords[83]
 RIGHT FOOT: 3dX=coords[85] 3dY=coords[86] 3dZ=coords[87] // 2dX=coords[88] 2dY=coords[89]
 
 /////REFERENCES
 
 Internal REference
 
 INTref1:  refDistance=coords[90] Xangle=coords[91] Zangle=coords[92]
 INTref2:  refDistance=coords[93] Xangle=coords[94] Zangle=coords[95]
 INTref3:  refDistance=coords[96] Xangle=coords[97] Zangle=coords[98]
 INTref4:  refDistance=coords[99] Xangle=coords[100] Zangle=coords[101] 
 
 External REference
 
 EXTref1:  refDistance=coords[102] Xangle=coords[103] Zangle=coords[104]
 EXTref2:  refDistance=coords[105] Xangle=coords[106] Zangle=coords[107]
 EXTref3:  refDistance=coords[108] Xangle=coords[109] Zangle=coords[110]
 EXTref4:  refDistance=coords[111] Xangle=coords[112] Zangle=coords[113] 
 
Powered by Google Project Hosting