iphone加速度計の最大サンプリングレートは何ですか? 私は更新レートが高いことを望みます。私は1.0/300.0にupdateIntervalに設定します しかし、それはあまり更新レートを取得していないようです。iphoneの加速度計の最大サンプリングレート
私たちが得ることができる最大の更新レートはどれくらいであるか、どのように高い更新レートを得ることができるかは、どのボディからもわかります。
iphone加速度計の最大サンプリングレートは何ですか? 私は更新レートが高いことを望みます。私は1.0/300.0にupdateIntervalに設定します しかし、それはあまり更新レートを取得していないようです。iphoneの加速度計の最大サンプリングレート
私たちが得ることができる最大の更新レートはどれくらいであるか、どのように高い更新レートを得ることができるかは、どのボディからもわかります。
重複している可能性があります。古いUIAccerometerDelegateインタフェースを使用した場合と同じが有効である必要があり
update frequency set for deviceMotionUpdateInterval it's the actual frequency?
Actual frequency of device motion updates lower than expected, but scales up with setting
を見てください。
iPhone 6の最大加速度計とジャイロスコープのサンプリングレートは、100Hzです。あなた自身がこれを経験的にテストすることができます。ここにコードがあります。
/******************************************************************************/
// First create and initialize two NSMutableArrays. One for accel data and one
// for gyro data. Then create and initialize CMMotionManager. Finally,
// call this function
- (void) TestRawSensors
{
speedTest = 0.0001; // Lets try 10,000Hz
motionManager.accelerometerUpdateInterval = speedTest;
motionManager.gyroUpdateInterval = speedTest;
[motionManager startAccelerometerUpdatesToQueue: [NSOperationQueue currentQueue]
withHandler: ^(CMAccelerometerData *accelerometerData, NSError *error)
{
[rawAccelSpeedTest addObject: [NSNumber numberWithDouble: accelerometerData.timestamp]];
[rawAccelSpeedTest addObject: [NSNumber numberWithDouble: accelerometerData.acceleration.x]];
if (error)
{
NSLog(@"%@", error);
}
if (rawAccelSpeedTest.count > 100)
{
[motionManager stopAccelerometerUpdates];
for (uint16_t i = 0; i < rawAccelSpeedTest.count; i+=2)
{
NSLog(@"Time: %f Accel: %f", [rawAccelSpeedTest[i] doubleValue],
[rawAccelSpeedTest[i+1] doubleValue]);
}
}
}];
[motionManager startGyroUpdatesToQueue: [NSOperationQueue currentQueue]
withHandler: ^(CMGyroData *gyroData, NSError *error)
{
[rawGryoSpeedTest addObject: [NSNumber numberWithDouble: gyroData.timestamp]];
[rawGryoSpeedTest addObject: [NSNumber numberWithDouble: gyroData.rotationRate.x]];
if (error)
{
NSLog(@"%@", error);
}
if (rawGryoSpeedTest.count > 100)
{
[motionManager stopGyroUpdates];
for (uint16_t i = 0; i < rawGryoSpeedTest.count; i+=2)
{
NSLog(@"Time: %f Rate: %f", [rawGryoSpeedTest[i] doubleValue],
[rawGryoSpeedTest[i+1] doubleValue]);
}
}
}];
}
もう少し詳細を教えてください。私は生データを取得しますが、どのように解釈する必要がありますか?また、標準偏差はどうですか?ありがとう! –