使用 kinect (libfreenect) 加速计数据

问题描述 投票:0回答:1

我正在通过 openFrameworksofxKinect 访问 C++ 中的 Kinect 加速计,并且在某些角度上遇到一些问题。如果我将 kinect 向下倾斜 90 度,我会得到

nan
值。我查看了 getAccelPitch() 方法,这种方法是有道理的,因为当值大于 9.80665 除以 10.1/9.80665 时,
asin
将返回 0。

主要问题是在我将设备倾斜 90 度后,滚动似乎不太可靠(似乎没有太大变化)。在我的设置中,我需要将设备倾斜 90 度,但也知道它是新卷。

关于我如何做到这一点有任何提示、技巧吗?有没有一种简单的方法来获取数据以用 3 条线(轴)绘制 kinect 的方向。

我正在尝试检测这样的方向: k1

k2

k3

k4

c++ accelerometer kinect openframeworks ofxkinect
1个回答
3
投票

如果您只有加速度计,那么您可以获得倾斜角度,但不能获得旋转矩阵。 仅使用加速度计无法检测绕垂直轴的旋转,它们对它们来说是不可见的

问题在于您使用的是欧拉角(滚动、俯仰和偏航)。

欧拉角是邪恶的,它们会破坏应用程序的稳定性,请参见示例

它们对于插值也没有用。

解决方案是使用旋转矩阵。

中给出了有关旋转矩阵的教程

方向余弦矩阵IMU:理论

手稿。

© www.soinside.com 2019 - 2024. All rights reserved.