メインコンテンツ

Simulink を使用した IMU センサー フュージョン

この例では、Simulink® を使用して IMU センサー データを生成および融合する方法を説明します。加速度計、ジャイロスコープ、および磁力計の動作を正確にモデル化し、それらの出力を融合して向きを計算できます。

慣性計測ユニット

慣性計測ユニット (IMU) は、加速度を測定する加速度計と角速度を測定するジャイロスコープで構成されるセンサーのグループです。地球の磁場を測定する磁力計も含まれていることがよくあります。これら 3 つの各センサーで 3 軸の測定値が生成され、これら 3 つの測定値は 9 軸の測定値を構成します。

姿勢方位基準装置

姿勢方位基準装置 (AHRS) は、9 軸のセンサー読み取り値を受け取り、デバイスの向きを計算します。この向きは NED 座標系を基準に与えられます。ここで、N は磁北方向です。Simulink の AHRS ブロックは、間接的なカルマン フィルター構造を使用してこれを行います。

Simulink システム

IMU センサー データを融合する Simulink モデルを開きます。

open_system('IMUFusionSimulinkModel');

入力とコンフィギュレーション

IMU ブロックへの入力は、デバイスの線形加速度、角速度、およびナビゲーション座標系を基準とした向きです。向きの形式は、四元数 (Simulink では 4 行 1 列のベクトル) またはナビゲーション座標系の数量をボディ座標系に対して回転する回転行列 (Simulink では 3 行 3 列の行列) です。このモデルでは、向きの入力を作成するために角速度が単に積分されています。角速度の単位は rad/s で、線形加速度の単位は m/s^2 です。AHRS の並進に関連する入力は 1 つのみであるため (加速度計の入力)、重力と線形加速度を区別できません。したがって、AHRS アルゴリズムでは、線形加速度は緩やかに変化するホワイト ノイズ過程であると仮定されます。これは 9 軸のフュージョン アルゴリズムでは一般的な仮定です。

真北と磁北

IMU ブロックのダイアログ ボックスの磁場パラメーターはローカルの磁場値に設定できます。磁場値は NOAA の Web サイトで確認するか、Aerospace Toolbox の wrldmagm 関数を使用して確認できます。IMU ブロックのダイアログ ボックスの磁場値は、真北を向いている完全な磁力計の読み取り値に対応します。そのため、IMU ブロックへの向きの入力は NED 座標系を基準とします。ここで、N は真北方向です。ただし、AHRS フィルターは磁北に向かってナビゲートします。これはこのタイプのフィルターでは一般的です。したがって、IMU への向きの入力と AHRS の出力で推定される向きは、真北と磁北の間の偏角だけ異なります。

このシミュレーションは、緯度を $0^\circ$、経度を $0^\circ$ として設定されています。この位置の磁場は、IMU ブロックでは [27.5550, -2.4169, -16.0849] マイクロテスラとして設定されています。この位置の偏角は約 $4.7^\circ$ です。

シミュレーション

モデルのシミュレーションを実行します。IMU の入力の向きと AHRS の出力で推定される向きが四元数距離を使用して比較されます。これは、オイラー角の特異点を考慮すると、同等のオイラー角の差異計算と比較して推奨されます。

sim('IMUFusionSimulinkModel');

推定される向き

推定される向きと実際の向きの差はほぼ $4.7^\circ$ となります。これは、この緯度と経度における偏角です。

ジャイロスコープのバイアス

AHRS フィルターの 2 番目の出力は、バイアスを補正したジャイロスコープの読み取り値です。IMU ブロックでは、ジャイロスコープに 0.0545 rad/s または 3.125 deg/s のバイアスが与えられています。これは Gyroscope Bias Scope ブロックの定常状態値と一致する必要があります。

追加の演習

IMU のパラメーターを変化させると、AHRS の出力で向きが対応して変化することがわかります。実際の IMU データシートに合わせて IMU ブロックのパラメーターを設定し、要件を満たすように AHRS パラメーターを調整できます。