Kinect Angles Calculation Script: Difference between revisions
No edit summary |
|||
Line 8: | Line 8: | ||
As c++ does not provide a standard library for 3 dimensional vectors and vector manipulations, we made our own <code>Vector3</code> class that gives the user access to its coördinates and contains a function that returns the length of the vector. This code is not contained here but can be read in the full code that can be downloaded from [http://cstwiki.wtb.tue.nl/index.php?title=PRE2015_4_Groep1#scripts this wiki page]. | As c++ does not provide a standard library for 3 dimensional vectors and vector manipulations, we made our own <code>Vector3</code> class that gives the user access to its coördinates and contains a function that returns the length of the vector. This code is not contained here but can be read in the full code that can be downloaded from [http://cstwiki.wtb.tue.nl/index.php?title=PRE2015_4_Groep1#scripts this wiki page]. | ||
Several manipulations on 3 dimensional vectors can be found in the same class that also converts the Kinect input into useable data. These are: | |||
* A function that returns a <code>Vector3</code> that is a difference vector pointing from one <code>CameraSpacePoint</code> to another <code>CameraSpacePoint</code>. | |||
* A function that returns the angle between two vectors, calculated using the vector dot product. | |||
* A function that returns the dot product between two vectors. | |||
* A function that returns the cross product between two vectors. | |||
* A function that returns the projection of a vector onto a plane given by that plane's normal vector. | |||
* A function that projects a vector onto another vector. | |||
* A function that returns a vector with the same direction of the input vector, but with lenght one. | |||
* A function that returns the converse of the input vector, the vector multiplied by -1. |
Revision as of 18:16, 20 June 2016
This is a brief explanation of code used to convert Kinect input from the Joints structure into the degrees of freedom of the AMIGO's arms.
This code is part of a project to create a robot technique that allows users to hug someone when separated by a disctance like a phone call.
For a mathmatical explanation of how the degrees of freedom are determined, check this section of the project.
Vectors and Vector Manipulation
As c++ does not provide a standard library for 3 dimensional vectors and vector manipulations, we made our own Vector3
class that gives the user access to its coördinates and contains a function that returns the length of the vector. This code is not contained here but can be read in the full code that can be downloaded from this wiki page.
Several manipulations on 3 dimensional vectors can be found in the same class that also converts the Kinect input into useable data. These are:
- A function that returns a
Vector3
that is a difference vector pointing from oneCameraSpacePoint
to anotherCameraSpacePoint
. - A function that returns the angle between two vectors, calculated using the vector dot product.
- A function that returns the dot product between two vectors.
- A function that returns the cross product between two vectors.
- A function that returns the projection of a vector onto a plane given by that plane's normal vector.
- A function that projects a vector onto another vector.
- A function that returns a vector with the same direction of the input vector, but with lenght one.
- A function that returns the converse of the input vector, the vector multiplied by -1.