0

衝突検出と MAC SDK を使用して、どの軸が影響を受けたかを把握しようとして、本当に問題があります。意味のあるデータを取得できないようです。サンプルのキードライブを衝突検出と統合して、返される衝突データを理解しようとしました。衝突は問題なく検出できるようですが、x 軸と y 軸のリターン パワーの値が一致していないようです。私の非同期メソッドでこの小さなコードを使用します。

if ([asyncData isKindOfClass:[RKCollisionDetectedAsyncData class]]) {
    RKCollisionDetectedAsyncData *collisionData = (RKCollisionDetectedAsyncData *)asyncData;
    xPower = collisionData.impactPower.x;
    yPower = collisionData.impactPower.y;

    NSLog(@"X Power: %u",collisionData.impactPower.x);
    NSLog(@"Y Power: %u",collisionData.impactPower.y);
    [RKRollCommand sendStop];
}

次の y 衝突の出力があります。

2014-01-17 17:16:43.734 KeyDrive[16537:303] X Power: 15
2014-01-17 17:16:43.734 KeyDrive[16537:303] Y Power: 113
2014-01-17 17:16:47.360 KeyDrive[16537:303] X Power: 11
2014-01-17 17:16:47.360 KeyDrive[16537:303] Y Power: 130

および x 衝突の場合:

2014-01-17 17:17:36.921 KeyDrive[16542:303] X Power: 25
2014-01-17 17:17:36.922 KeyDrive[16542:303] Y Power: 130
2014-01-17 17:17:39.862 KeyDrive[16542:303] X Power: 18
2014-01-17 17:17:39.868 KeyDrive[16542:303] Y Power: 116

次に、現在すべてのしきい値を次のように設定しています。

uint8_t xThreshold = 100;
uint8_t yThreshold = 100;
uint8_t xSpeedThreshold = 100;
uint8_t ySpeedThreshold = 100;
float deadZone = 1.0f;

しかし、私はさまざまなバリエーションを使用して、ある種の一貫性を得ることができました。誰にもアドバイスはありますか?

編集:

そこで、新しいソリューションを試しました。私のテスト環境は、私の調査結果を固めるために低レベルになりました。球体を動かさずに固定し、さまざまな軸で打ちました。結果はもう少し希望に満ちていましたが、それでもまだ信頼性は高くありません. 以下の私の結果を参照してください。すべての軸で複数のストライクを行い、特に y 軸で結果が異なりました。私のy軸加速度計は不発かもしれませんか?

X+          
**Impact**  **Accel**   
X   Y   X           Y
34  8   0.88208     0.218262
55  3   1.381592    0.092529
33  1   0.861572    -0.046875
58  3   1.376953    0.035645
68  3   1.380371    0.094238

X-          
**Impact**  **Accel**   
X   Y   X           Y
57  3   -1.351074   0.026123
38  2   -0.91748    0.050781
57  0   -1.228271   0.025391
59  5   -1.395264   0.178711
40  2   -0.910156   0.005615

Y+          
**Impact**  **Accel**   
X   Y   X           Y
5   31  0.436523    0.638672
6   31  -0.13623    0.390869
18  40  0.39502     0.661621
26  35  0.647461    0.538818
14  46  0.154297    0.770508

Y-          
**Impact**  **Accel**   
X   Y   X           Y
6   32  0.549805    -0.579834
21  30  0.692383    -0.614014
5   31  0.149414    -0.508301
24  30  0.449463    -0.413574
9   31  0.68457     -0.682861
4

1 に答える 1

1

これらの数字が表示されている理由は、使用している例によるものだと思います。これらの結果を作成するために変更を加えて、キードライブの例を使用していると読みました。その問題は、キーを押すと、ボールが指定された方向に回転することです。したがって、ボールは、その加速度計に関して、常に同じ方向に打たれ、そのような結果を引き起こします。ここで、さまざまな軸を見たい場合は、テールライトがある場所に垂直なボールの側面に衝撃を与える方法を開発する必要があります。これは通常、ボールが動いているときに達成できるものではありません (運転中は横に)。

于 2014-01-24T18:31:58.473 に答える