デバイスの向きのクォータニオン ベクター アルゴリズム
この記事では、Windows Hardware Lab Kit (Windows HLK) により、高度な方位センサー テストにおける 9 軸データ精度に対して得られたベクトルと期待されるベクトルの差分を決定するために使用されるアルゴリズムについて説明します。 このテストでは、センサー融合が適切に統合され、センサー融合に必要なすべてのセンサーが適切に統合およびインストールされていることを検証します。
Note
場合によっては、センサー診断ツールを使用して、3D 傾斜計とテスト中の集計されたデバイス方位センサーを調べることができます。
四元数ベクトル アルゴリズム
アルゴリズムでは、2 つのベクトルの 4 次元ドット積のアークコサインを 2 つのベクトルの大きさの積で割り、それを 2 で割った値を使用します。 このアルゴリズムを図 1 Quaternion ベクター アルゴリズム式に示します。
回転行列の値は、精度の検証のために四元数の値に変換されます。 計算された四元数ベクトルは、期待される四元数ベクトルからの逸脱が +/- 5 度を超えることはできません (四元数ベクトル間に形成された角度と比較した許容範囲) (**見出しの軸の方向では +/- 10 度の精度が許容されます)。 Windows HLK テストでは、Øₜ デルタを最大 15 度に設定できます。
受け取った四元数ベクトルと期待される四元数ベクトルの間のデルタ角度を計算する方法
このセクションでは、Windows HLK の高度な方位テストで得られた四元数ベクトルと期待される四元数ベクトルの間に形成されるデルタ角度の計算について説明します。
次の 2 つのデータ値は、集計されたデバイス方位センサーのデータ レポートで重要です。
四元数ベクトル
回転行列
テストは、次の 2 つの検証で構成されています。
センサー データ レポートで受け取った四元数ベクトルの検証。 四元数ベクトルの形式は (xi + yj + zk + w) です。
w の値は常に正である必要があります。
四元数ベクトルは正規化され、0 以外である必要があります。 たとえば、ベクトルの大きさは 1.0 に近い必要があります。 大きさの計算で丸め誤差の余裕は 1% (1%) です。
デルタ角度は、ddelta = 2 * Acos( ( Exp . Rec ) / ( | Exp | * | Rec | ) ) で計算されます。ここで、
\* はスカラー乗算を示します
. ドット積を示します
Exp は期待される四元数ベクトルです
Rec は受け取った四元数ベクトルです
| Q | は四元数ベクトルの大きさを示します
delta は角度 (度) です
デルタが 360 度を超える場合、デルタは delta = delta - 360 として再計算されます。
この時点で、delta はエラー許容値以下である必要があります。たとえば、10 度です。
受信した回転行列の検証。 回転行列は 3x3 行列である必要があります。
回転行列の各列および行ベクトルは、正規化され、0 以外である必要があります。 大きさの計算で丸め誤差の余裕は 1% (1%) です。
受け取った回転行列は、四元数ベクトルに変換されます。
検証 (1) の <a> ~ <e> のすべての手順を再び使用します。