gpt4 book ai didi

iPhone 陀螺仪 - 为什么 YAW 和 PITCH 连接在一起?

转载 作者:行者123 更新时间:2023-12-03 18:23:38 30 4
gpt4 key购买 nike

我有一个非常简单的应用程序,我试图通过核心运动使用陀螺仪。

此时,出于测试目的,我只是获取滚动、俯仰和偏航的值并在屏幕上打印。根据下图,据我所知,roll、pitch、yaw分别对应红、绿、蓝轴,对吗?

好的。当我将 iPhone 放在左侧的 table 上(主页按钮在右侧),与桌面平面完全成 90 度时,我读取到的滚动、俯仰和偏航值如下:-90, 0, 0.然后我开始根据表格的垂直轴逆时针旋转iPhone,这将是根据表格垂直轴的正方向。在 iPhone 上,这意味着俯仰旋转,但当我旋转时,俯仰保持不变,而偏航角会发生变化!!!!

如果 iPhone 左侧放在 table 上,则绿轴(间距)是垂直的。如果我在 X 轴上逆时针(正向)旋转设备,我应该会看到俯仰角增加,而不是偏航角增加。

我对此的唯一解释是,当您旋转设备时,陀螺仪轴不会旋转。因此,如果我使用默认姿态引用,iPhone 会认为面朝上的静止位置是默认位置,并且蓝轴(偏航)将始终是垂直轴。这是正确的吗?

这是我正在使用的代码...

关于主要代码

motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1.0/60.0; //60 Hz
[motionManager startDeviceMotionUpdates];


timer = [[NSTimer scheduledTimerWithTimeInterval:(1.0/60.0)
target:self
selector:@selector( readIt )
userInfo:nil
repeats:YES]
retain];

剩余代码

#define degrees(x) (180.0 * x / M_PI)

- (void) readIt {

// CMAttitude *referenceAttitude;
CMAttitude *attitude;

CMDeviceMotion *motion = motionManager.deviceMotion;
if (!motion) {
return;
}

attitude = motion.attitude;

NSLog(@"roll = %f... pitch = %f ... yaw = %f", degrees(attitude.roll), degrees(attitude.pitch), degrees(attitude.yaw));


}

enter image description here

最佳答案

查看我的question and the selected answer有关于此的更多信息。我认为这个答案特别能告诉你为什么两者有联系。

关于iPhone 陀螺仪 - 为什么 YAW 和 PITCH 连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206575/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com