【Ardupilot】Compass less メモ 【GPS 2個】

Ardupilotの忘備録

スポンサーリンク
広告

コンパスレスの記事

Ardupilotのコンパスレスに関する記事を少しまとめておきます。日本語訳にしてます。

Compass-lessの設定方法

Compass-less Operation — Plane documentation

GPSでYawを取得する方法

GPS for Yaw (aka Moving Baseline) — Plane documentation

Forumの関係記事類

Compass-less Operation GSF
Hi! Im using the GSF filter for compassless flight, and works great! I have to fly where a compass doesnt work for all the electro magnetic fields over the pla...
Testing Compass-less copter (GSF): GPS Glitch + Yaw aligned using GPS
Did flying in Loiter, performing slow yaw turns. At some point got “GPS Glitch” message and “Yaw aligned using GPS” message next moment. Then after few seconds ...

Ardupilot Github内

GSFのCode検索

GSF

Search · GSF · ArduPilot/ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source. Contribute to ArduPilot/ardupilot development by creating an account on GitHub.

EK3_SRC1_YAW

Search · EK3_SRC1_YAW · ArduPilot/ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source. Contribute to ArduPilot/ardupilot development by creating an account on GitHub.
Dual GPS Heading support via AP_Periph and UAVCAN lib by bugobliterator · Pull Request #17983 · ArduPilot/ardupilot
After the implementation one will be able to use two CAN AP_Periph GPS modules as dual heading CAN and also be able to combine them with Serial Ublox Compasses ...

Dual GPS

AP_GPS: add support for dual GPS heading using Periph GPSes · ArduPilot/ardupilot@9fc57e4
ArduPlane, ArduCopter, ArduRover, ArduSub source. Contribute to ArduPilot/ardupilot development by creating an account on GitHub.
AP_HAL_ChibiOS: update config for dual gps heading in HerePro · ArduPilot/ardupilot@c7907bb
ArduPlane, ArduCopter, ArduRover, ArduSub source. Contribute to ArduPilot/ardupilot development by creating an account on GitHub.

コンパスレス操作

飛行機はコンパスなしでの運用が長い間可能でした。ただし、最近の代替ヨーソースの追加により、マルチコプター、クアッドプレーン、およびローバーのコンパスなしの操作の可能性が開かれました。使用可能なメカニズムは次のとおりです。

  • 離陸後にヨーをGPSに合わせる(飛行機のみ)
  • GSF(Gaussian Sum Filter)は、単一のGPSの出力をIMUの動きと比較することによって方位を推定します
  • GPS-for-Yawは、2つのUBloxF9GPSの位置を使用してヨーを計算します
  • Intel RealSense T265は、起動時のヨーに関連するヨーを提供できます

ヨーをGPSに合わせる(飛行機のみ)

飛行機では、離陸後に安定したGPS方位を使用して、ヨーの/姿勢/速度/位置/方位推定フィルター(EKF)を調整します。これは通常、コンパスのない飛行機で離陸してから数秒後に発生します。ただし、このアプローチはVTOLナビゲーションには使用できません。これは、GPS速度や方位入力がない場合、離陸直後に正確である必要があるためです。

GSF

ArduPilot 4.1(およびそれ以降)は、ヨーソース(コンパスなど)が利用できない場合、または異常な場合に、IMUおよびGPS入力を使用して推定方位を計算するガウス和フィルター(GSF)をサポートします。

ノート1

これまでのテストでは、精度はかなり許容範囲内ですが、これはまだ実験的であると考えられており、コミュニティによるより多くの経験とテスト飛行が必要です。また、現在、QuadPlane VTOLテールシッターでは、機首がVTOL飛行で垂直に向けられているため、うまく機能しません。テールシッターにはコンパスが引き続き推奨されます。

ノート2

GSFは、GPSからの良好な速度レポートに依存しています。古い世代のGPSを使用しないでください。少なくとも、UBloxM8または同等のパフォーマンスのGPSを使用してください。また、飛行中は空のGPSビューが遮られていないことを確認してください。そうしないと、方位の推定が不十分になります。

設定

単純に、COMPASS_ENABLE = 0に設定します。通常のデフォルト値がEKFパラメータに使用されている場合、GSFへのフォールバックは自動的に行われます。

常にGSFを使用するようにEKF3を構成するには、EK3_SRC1_YAW = 8(GSF)を設定します。

運用

現在、コンパス(またはALL)のARMING_CHECKが有効になっていて、コンパスが有効になっていない場合、プレーンのみが作動します。CopterとQuadPlaneは、事前準備の失敗を引き起こします。武装するための3つの可能な方法は次のとおりです。

  1. コンパスのARMING_CHECKを無効にします(他のものは保持します!)。
  2. 地上局からの武装を強制します。
  3. 武装する前、ただしGPSロックを取得し、EKF原点を設定して「GPSを使用」した後、車両を持ち上げて直径数メートルの円を歩き回ります。これにより、GSFがヨーアライメントを取得できるようになり、「EKFヨーアライメントが完了しました」というメッセージが地上局に送信されます。

警告

最初の2つの方法のいずれかを使用する場合、VTOL位置制御モードでの車両の最初の動きは、最初は間違った方向にある可能性がありますが、GSFのヨーアライメントが取得されるとすぐに停止するはずです。非位置コントローラーモード(STABILIZEやQHOVERなど)でビークルを少し飛ばすか、未知の初期移動方向に対してビークルに十分なクリアランスを与えます。

その後、飛行とナビゲーションは受け入れられるはずです。

ヨーのGPS(別名移動ベースライン)

2つのUBloxF9GPSモジュールを使用してヨーを推定できるため、地面や車両のモーターやESCからの磁気干渉に悩まされる可能性のあるコンパスが不要になります。これは、GPSにRTK修正がない場合でも機能します。

動作することが知られているArduPilotパートナーのGPSには次のものがあります。

ノート

この機能は、Copter 4.0.4(およびそれ以降)、Plane 4.0.6(およびそれ以降)、およびRover 4.1.0(およびそれ以降)で使用できます。Ublox F9pは、ファームウェアバージョン1.13以降を実行し、コンステレーションを構成する必要がありますU-BloxF9Pファームウェアアップデートを参照してください。

ハードウェアのセットアップ

  • 2つのUbloxF9GPSは、車両に少なくとも30cm離して配置する必要があります(水平方向)
  • 2番目のGPSは、オートパイロットのシリアル/テレムポートに接続する必要があります。これらの手順は、Serial4 / Telem4が使用されていることを前提としていますが、どのシリアルポートも機能するはずです。
  • シリアルGPSモジュールは、UART1コネクタを介してArduPilotに接続するか、CANを介してDroneCANモジュールに接続するか、製造元の指示に従って相互接続する必要があります。

構成

4.0を使用している場合

  • EK3_MAG_CAL = 5(「外部ヨーセンサーを使用する」)

4.1(またはそれ以降)を使用している場合

  • EK3_MAG_CALはこの機能には使用されないため、デフォルト値のままにしておくことができます(プレーンの場合は「0」、コプターの場合は「3」、ローバーの場合は「2」)。
  • EK3_SRC1_YAW = 2(「GPS」)または3(「コンパスフォールバック付きGPS」)

上記の構成は、2つのGPSモジュール間のRTCMv3データがフライトコントローラーボードを経由することを前提としています。代わりに、2つのGPSモジュールの2つのUART2コネクタの間にクロスオーバーUARTケーブルを取り付けることができます。これを行う場合は、 GPS_DRV_OPTIONS = 1に設定できます。これにより、u-blox GPSドライバーに、UART2を介してRTCMv2データを送信するように2つのGPSモジュールを構成するように指示します。

テスト

GPSの受信状態が良好な場所で、車両を少し離れたランドマークに向けてから、地上局の方向が一致していることを確認します。車両を回転させ、地上局の方位が正しく更新されることを確認します。

見出しが逆になっている場合は、GPS_POS_xxxパラメータが正しく設定されていない可能性があります。

2つのGPSモジュールがヨーが機能するのに十分な修正を取得するまでに時間がかかる場合があることに注意してください。ArduPilot GPSドライバーは、修正がいくつかの方法で十分であることを検証します。

  • ローバーGPSモジュールが修正タイプ6(固定RTK)であること
  • 報告された2つのモジュール間の距離は、GPS位置パラメーターによって指定された距離と20%以内で一致します。
  • 報告された2つのGPSモジュールの高さが車両の姿勢と一致していることは、2つのGPSモジュール間の距離の20%以内です。

コメントを残していただけるとありがたいです

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。