Working with kinect accelerometer data (libfreenect)

I access the Kinect accelerometer in C ++ through openFrameworks and ofxKinect , and I have some problems with certain angles. If I set the kindex 90 degrees down, I get nan values. I reviewed the getAccelPitch () method, and this view makes sense, since asin will return 0 when there are values ​​greater than 9.80665 divided by 10.1 / 9.80665.

The main problem is that after I mount the device 90 degrees, the roll does not seem reliable (it does not seem to change much). In my setup, I will need to set the device 90 degrees, but also know its new video.

Any hints, tips on how I can do this? Is there an easy way to get data for drawing the orientation of the kinect with 3 rows (axes).

I am trying to determine the following orientations: k1

k2

k3

k4

+4
source share
1 answer

The problem is that you are using Euler angles (roll, pitch and yaw).

Euler angles are evil and they bring stability to your application, see for example

They are not suitable for interpolation .

The solution is to use rotation matrices instead. A tutorial on rotation matrices is given in

Direction Cosine Matrix IMU: Theory

manuscript.

+3
source

All Articles