我正在使用Madgwick算法的C++实现,对我的传感器(加速度计、磁强计和陀螺仪)进行校准。一切看起来都很好,但是当我把传感器放在垂直位置(音高到90度)时,其他角度开始做一些奇怪的事情。这就是我得到的:Matlab绘图问题
事实上,我得到的角度是正确的,但表达方式不同。我只应该得到:
但我明白:
两个结果都是一样的,对吧?我的问题是:
发布于 2017-01-30 11:44:08
不,你不能锁定一个传感器,因为它是你移动的物理物体。
万向节锁指的是一个状态,如果你在哪里移动2个角度,它们会对旋转产生同样的影响。这不是一个错误,而是一个特定的旋转状态。但是如果你亲自用手移动物体,万向节锁是不可能的。维基百科有一个很棒的礼物:

万向节锁定飞机。当俯仰(绿色)和偏航(洋红色)吉姆巴尔斯变得对齐,改变滚动(蓝色)和偏航应用相同的旋转飞机。
但是,请注意,Gimbal锁定的原因可能是数据的原因:在euler角中,有多个角度集给出了完全相同的端点。你的系统给了你哪一个?你不可能知道。取决于用来给你数据的传感器和算法。
一个很好的方法,以确保你的进一步数学是一致的,并知道2轮是相同的,就是把你的测量值转换为四元数。这些是独特的每一个旋转,并将帮助你更好地理解什么旋转已经发生。
https://stackoverflow.com/questions/41933779
复制相似问题