5

私の質問はAndroid のセンサー座標系の変更に似ています

デバイスの向きに関係なく、ユーザーの動きを互いに比較できるようにしたい。そのため、ユーザーが携帯電話を縦向きに差し出して腕を曲げた場合、加速度の読み取り値は、携帯電話を横向きに差し出して腕を同じ方向に曲げた場合と同じになります。

これを私は「ユーザー」座標系と呼んでいます。ユーザーが向いている風向きは関係ないため、ワールド座標系とは異なります。ユーザーが自分のデバイスをどのように保持するかは問題ではないため、デバイス座標とは異なります。

私のアプリケーションでは、ベース/静止方向マトリックスを決定できるように、各移動の前にキャリブレーションステップを実行してもかまいません。おそらく、最初の楽章の行列に 2 番目の楽章の逆数を掛けるだけの問題でしょうか (そして、新しい値を掛けますか?)

言及された質問の答えはほぼ正しいようですが、より具体的な説明が必要です。実際のコード サンプルが理想的です。

注意 remapCoordinateSystem は十分ではなく、直角のみを受け入れます。デバイスは手首に固定されているため、腕と常に直角であるとは限らないため、わずかなずれで作業できる必要があります。

4

1 に答える 1

0

私は現在この問題に取り組んでおり、これが役立つと思います: デバイス座標系をワールド座標系に変換する

ほとんどの場合、人々は電話を立ったり、歩いたり、座ったりして使用していると想定できます。つまり、ユーザー座標系は同じ z 軸 (重力) を共有し、y 軸 (ユーザー座標) 間の一定の角度差を共有します。 、ユーザーの顔の正面) と y 軸 (世界座標、北方向)。程度の差はTYPE_MAGNETIC_FIELD sensorで取得できます。したがって、ワールド座標からユーザー座標に変換できます。

ベッドに横たわっている電話を使用しているユーザーについてはどうですか? そのような場合、どの方向がユーザーの顔の正面であるかを電話に伝える動きのように、ユーザー座標の y 軸を定義することによる事前キャリブレーションが必要だと思います。

于 2014-04-24T06:58:32.093 に答える