センサーからの線形データと角度データを融合する方法
私のチームと私は、エンコーダー、商用グレードのIMU、GPSセンサーを備えた屋外ロボットをセットアップしています。ロボットは基本的なタンク駆動を備えているため、エンコーダーは左右の車輪から十分にティックを供給します。IMUは、ロール、ピッチ、ヨー、およびx、y、zの線形加速度を与えます。後で冗長性を与える他のIMUを追加できますが、ロール、ピッチ、ヨーの角速度も追加で提供できます。GPSは、グローバルなx、y、およびz座標を公開します。 ロボットのxy位置と方向を知ることは、ロボットがその環境をローカライズおよびマップしてナビゲートするのに役立ちます。ロボットの速度は、スムーズな動きの決定にも役立ちます。地上のロボットなので、z軸についてはあまり気にしません。ロボットにはLIDARセンサーとカメラもあります。したがって、ロールとピッチはLIDARとカメラのデータを変換して向きを変えるのに役立ちます。 すべてのセンサーの精度を最適に活用する方法で、これらすべての数値を融合する方法を見つけようとしています。現在、カルマンフィルターを使用[x, x-vel, x-accel, y, y-vel, y-accel]して、単純な遷移行列の推定値を生成しています。 [[1, dt, .5*dt*dt, 0, 0, 0], [0, 1, dt, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, dt, .5*dt*dt], [0, 0, 0, 0, 1, dt], [0, 0, 0, 0, 0, 1]] フィルタは、IMUによって提供される加速度にのみ基づいて状態を推定します。(IMUは最高の品質ではありません。約30秒以内に、ロボットが(静止状態で)初期位置から20メートルほどドリフトするのが表示されます。)ロール、ピッチ、ヨーの使用方法を知りたいIMU、および潜在的にロール、ピッチ、およびヨーレート、車輪からのエンコーダデータ、および状態推定を改善するためのGPSデータ。 少しの数学を使用して、2つのエンコーダーを使用して、ロボットのx、y、およびヘッディング情報、および線速度と角速度を生成できます。エンコーダーは非常に正確ですが、屋外のフィールドで滑りやすくなります。 ここには、融合するのが難しい2つの別個のデータセットがあるように思えます。 x、x-vel、x-accel、y、y-vel、y-accelの推定 ロール、ピッチ、ヨーの推定値、およびロール、ピッチ、ヨーの速度 これら2つのセットの間にはクロスオーバーがありますが、それらをどのように組み合わせるかについて推論するのに苦労しています。たとえば、ロボットが一定の速度で移動している場合、x-velおよびy-velによって決定されるロボットの方向は、ヨーと同じになります。ただし、ロボットが停止している場合、ヨーはxおよびyの速度によって正確に決定できません。また、角速度に変換されたエンコーダーによって提供されるデータは、ヨーレートの更新になる可能性があります... …