共用方式為


裝置方向四元數向量演算法

本文說明 Windows 硬體實驗室套件 (Windows HLK) 所使用的演算法,以判斷進階方向感應器測試中 9 軸資料精確度的接收向量與預期向量之間的差異。 測試會驗證感應器融合是否已正確整合,以及感應器融合所需的所有感應器都已正確整合並安裝。

注意

在某些情況下,您可以使用感應器診斷工具來檢查受測的 3D 傾角計和匯總裝置方向感應器。

四元數向量演算法

演算法會使用兩個向量之 4 維點乘積的弧形餘數,除以兩個向量的大小乘積,並除以 2。 此演算法顯示在圖 1 四元數向量演算法公式中:

四元數向量演算法公式

旋轉矩陣值會轉換成四元數值,以進行精確度驗證。 計算的四元數向量應該不會超過預期四元數向量的 +/- 5 度, (容錯,相較于四元數向量之間形成的角度,) (**+/- 在標題軸方向上允許的 10 度精確度) 。 Windows HLK 測試可讓 Øt 差異高達 15 度。

如何計算接收和預期的四元數向量之間的差異角度

本節描述計算 Windows HLK 中進階方向測試中接收和預期的四元數向量之間的差異角度。

下列兩個數據值對匯總裝置方向感應器的資料包表感興趣:

  • 四元數向量

  • 旋轉矩陣

測試包含下列兩個驗證:

  1. 驗證感應器資料包告中收到的四元數向量。 四元數向量 (的格式為 xi + yj + zk + w) 。

    1. w的值一律為正數。

    2. 四元數向量必須是正規化和非零。 例如,向量的大小必須接近 1.0。 提供百分比 (1%) 路,以進位計算大小時捨棄錯誤。

    3. 差異角度是使用 delta = 2 * Acos ( ( Exp 來計算。Rec ) / ( |Exp |* |Rec |) ) ,其中:

      \* 表示純量乘法

      . 表示點產品

      Exp 是預期的 Quternion 向量

      Rec 是收到的四元數向量

      |Q |表示量子向量的大小

      差異 是以度為單位的角度

    4. 如果 delta 大於 360 度,差異會重新計算為 delta = delta - 360

    5. 此時,差異應小於或等於錯誤容錯;例如,10 度。

  2. 驗證收到的旋轉矩陣。 旋轉矩陣必須是 3x3 矩陣。

    1. 旋轉矩陣的每個資料行和資料列向量都必須正規化和非零。 (1 個) 的百分比會提供 ,以進位計算大小時捨棄錯誤。

    2. 接收的旋轉矩陣會轉換成四元數向量。

    3. 重新使用從 < 到 >< e > 的驗證 (1) 的所有步驟。

使用感應器診斷工具測試感應器功能

整合動作與方向感應器