【问题标题】:apple watch CMDeviceMotion is not giving me good readings苹果手表 CMDeviceMotion 没有给我很好的读数
【发布时间】:2015-09-08 20:02:52
【问题描述】:

目前,我只是在记录一堆运动数据并将其保存到文件中。然而,当我绘制数据时,我很难相信我得到了正确的读数。这是我的手表代码:

- (IBAction)startStopRecording {
    if (!recording){
        NSLog(@"starting to record");
        recording = YES;
        data = [[NSMutableArray alloc] init];
        [self.startRecording setTitle:@"Stop Recording"];
        if (self.motionManager.deviceMotionAvailable) {
            [self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
                [data addObject:[NSString stringWithFormat:@"%f, %f, %f, %f, %f, %f, %f, %f, %f", motion.attitude.pitch, motion.attitude.roll, motion.attitude.yaw, motion.userAcceleration.x, motion.userAcceleration.y, motion.userAcceleration.z, motion.rotationRate.x, motion.rotationRate.y, motion.rotationRate.z]];
                NSLog(@".");
            }];
        }
    }else{
        recording = NO;
        NSLog(@"stopping recording");
        [self.motionManager stopDeviceMotionUpdates];
        [self.startRecording setTitle:@"Start Recording"];
        [InterfaceController openParentApplication:@{ @"data": data } reply:^(NSDictionary *replyInfo, NSError *error) {
            NSLog(@"Data has been saved.");
            NSLog(@"replyInfo %@", replyInfo);
        }];
    }
}

父应用程序只是将所有数据写入文件。我记录了手表在所有三个轴上来回旋转(俯仰,然后滚动,然后偏航):

然后当我绘制数据时,这就是我得到的:

偏航太吵了,你根本看不到那里的信号。在三个不同方向猛拉手表后绘制加速度时,我也遇到了类似的问题。我可以看到加速度的尖峰,但它们似乎与方向无关。关于如何改进这一点的任何想法?我错过了什么吗?难道我的手表传感器坏了?

【问题讨论】:

    标签: ios objective-c watchkit apple-watch core-motion


    【解决方案1】:

    原因是我实际上并没有从手表中提取数据。它正在从手机中提取数据。为了提取数据(目前手表中只有 acc 数据可用),您需要有 watchOS2(目前处于测试阶段)。否则手表只会从手机获取数据。

    【讨论】:

    • 与已发布的 WtachOS 2 相同,没有区别。即使它在 WatchOS 2 中可用,实际设备也不会提供有关 AppleWatch 的任何数据。真的很郁闷……
    • 您必须为 watchOS2 设置一些不同于 watchOS1 的设置,以便提取数据。不幸的是,我不记得我遵循了什么教程来做这件事,但我记得我必须建立一个应用程序组,并且几乎有一个单独的手机和手表应用程序。而且你只能拉加速度计数据。陀螺仪数据尚不可用。
    • 作为应用程序组或 WatchOS 1 或 2 的数据传输/共享无关紧要。即使使用最新的 WatchOS 2,AppleWatch 上的 isDeviceMotionAvailable 始终为 false。
    • 既然你提到了,我不知道我是否成功地从手机中提取了陀螺仪数据。一旦我意识到我无法获得加速度计,这个项目就不可行了,所以我可能什至没有尝试拉陀螺。
    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多