1

この件に関するすべての投稿を読んだと思いますが、まだいくつかのことを理解できません。

Q1: グローバル座標で磁場ベクトルを取得するには、逆回転行列と磁場ベクトルを乗算する必要があります。なぜ回転行列を逆にする必要があるのですか?

Q2: デバイスがあり、getOrientation(...) メソッドを使用して Z 軸に沿った回転に基づいて方位角を計算できるとしましょう。電話の姿勢に関係なく、回転行列またはその他の方法を使用して、磁北への方位角を計算できますか? 携帯電話を回転させても、私と磁北の間の角度は変わらないのでしょうか?

Q3: 磁気ベクトル (4 番目の列はゼロ) を逆回転行列で乗算すると、x がゼロに非常に近いことがわかります。他の投稿からこれが問題ないことはわかっていますが、なぜ理解できませんか?

Q4: 理論的には、互いに 1 メートル離れた 2 つのデバイスがあるとします。2 つのデバイスの空間位置を、それらの磁場 (グローバル座標) のみに基づいて作成することは可能ですか?

ありがとうございます。

PS私はすでにこれらの投稿を読みました: グローバル座標で 磁場値を取得する、デバイスの回転に関係なく、磁場ベクトルを取得するにはどうすればよいですか?

磁場の X、Y、Z 値をデバイスからグローバル リファレンス フレームに変換する

4

2 に答える 2

4

デバイスからの磁場X、Y、Z値をグローバル参照フレームに変換するで私の答えを読んだ場合、あなたはまだそれを理解していません。

A1回転行列にデバイス座標系の磁場ベクトルの座標を乗算して、ワールド座標系 の磁場ベクトルの座標を取得します。

強調しておきますが、上記の回転行列であり、逆回転行列ではありません。

呼び出しによって得られる回転行列getRotationMatrix、基底行列をデバイス基底から世界基底に変更したものです。つまり、デバイス座標系の座標を持つ任意のベクトルvが与えられた場合、同じベクトルvのワールド座標系の座標は、回転行列にデバイスシステム座標の座標を 乗算することによって取得できます。

逆回転行列は、基底行列をワールド基底からデバイス基底に変更したものです。したがって、この行列に座標を乗算すると、行列にワールド座標系のベクトルの座標を乗算して、デバイス座標系の同じベクトルの座標を取得すると解釈されます。したがって、逆回転行列に、磁気センサーによって返される磁場ベクトルの座標を掛けると、次に、座標はワールド座標系のベクトルの座標として解釈されるため、磁場ベクトルを表さ、結果の積は世界座標系の磁場ベクトル。実際には、デバイス座標系のベクトルの座標です。

A2。 getOrientationデバイスがフラットの場合にのみ意味があります。私にとって、それは角度計算の束にすぎません。幾何学的に何をしようとしているのかを見てから、回転行列を使用して必要なものを計算します。たとえば、バックカメラが向いている方向を計算するために、-zの方向(画面に直交するベクトルの反対)と見なします。したがって、この方向を見つけるために、-zを世界の東北平面に投影し、この投影ベクトル北軸の間の角度を計算しました。このように考えると、デバイスを回転させても-zの方向は変わりません。したがって、投影ベクトルはデバイスを回転させたときと同じです。を使用する場合は、正しい結果を得るにはgetOrientation事前に電話する必要があります。 remapCoordinateSystem(inR, AXIS_X, AXIS_Z, outR)getOrientation

A3。は、地磁気パラメータが完全にNorth-Sky平面にあるベクトルの座標であるgetRotationMatrixと想定しています。この平面にあるベクトルは、x座標が0に等しい必要があります。これは単なる基本的な線形代数です。

A4。答えはいいえだ。空間位置を取得するには、固定座標系を基準にしてこれらのベクトルを表現する必要があります。デバイス座標系のこれらのベクトルの座標のみでは、デバイス基底からこの固定基底への基底行列の変化を計算できる固定基底を見つける方法はありません。基底変換を計算するには、上記のリンクに記載されている2つの条件が満たされている必要があります。

于 2013-03-21T19:52:18.143 に答える
1

A1. 回転行列は、ワールド座標での携帯電話の位置を示します。磁気ベクトルを電話座標から世界座標に変換する場合は、逆数を掛ける必要があります。

A2. 質問がよくわかりません、すみません。

A3. x座標は、磁極からのN極のずれなどに対応する磁力の横方向成分です。垂直成分であるz座標と同じように、かなり小さいはずです。

A4. 理論的にはこれでうまくいくかもしれませんが、Android デバイスに搭載されているセンサーの精度では、このアプローチはあまり実現可能ではないようです。

于 2013-03-21T13:28:43.350 に答える