我正在通过 openFrameworks 在 C++ 中访问 Kinect 加速度计和 ofxKinect并且在某些角度上有一些问题。如果我将 kinect 向下倾斜 90 度,我会得到 nan
值。我看了一下 getAccelPitch()方法,这种方法很有意义,因为当值大于 9.80665 除以 10.1/9.80665 时 asin
将返回 0。
但主要问题是在我将设备倾斜 90 度后,滚动似乎不可靠(似乎变化不大)。在我的设置中,我需要将设备倾斜 90 度,但也知道它是新的滚动。
关于我如何做到这一点的任何提示和技巧?有没有一种简单的方法来获取数据以使用 3 条线(轴)绘制 kinect 的方向。
我正在尝试检测这样的方向:
最佳答案
问题是您使用的是欧拉角(滚动、俯仰和偏航)。
欧拉角是邪恶的,它们会破坏您应用程序的稳定性,请参见示例
它们是 not useful for interpolation要么。
一个解决方案是改用旋转矩阵。在
中给出了旋转矩阵的教程Direction Cosine Matrix IMU: Theory
手稿。
关于c++ - 使用 kinect (libfreenect) 加速度计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12039105/