はじめまして、フライトコーチとArdupilotにハマっているgo3と申します。
「いつ飛行させたらいいの?」を解決する装置を作ったので紹介します。
FC側のソフトであるArdupilotにはGPSやコンパスなどの準備が整ったかをチェックする機能(ARMING_CHECK)が用意されていますが、
フライトコーチでは電源投入後の操作をしなくてもログが開始できるようにアーム操作不要(ARMING_REQUIRE=0)に設定されています。
この設定の場合はARMING_CHECKが働かず電源投入後数秒で強制アームとなりログ収集を開始し、その後GPSが衛星4個程度を受信すると3D-FIXとなりOrigin位置が記憶されます。
しかしこの段階では位置精度が十分ではなく記録されたOrigin位置が実際とずれていることが有ります。
フライトプロッタ―で表示させようとしたときに、"more than **m from the origin"となったり表示されたリボン図にセンターズレや高度ズレが生じるのはこのためだと思われます。
GPS、IMUなどの準備が整いEKFが動作開始(EKF3 active)した後にログを開始すればこの問題は解決するはずです。
ARMING_REQUIRE=1にしてARMING_CHECKを有効にすればよいのですが、以下のいずれかの方法でアーム指令を出す必要があります。
ジャンプ対策に苦労されているようですね。
ジャンプ現象を防止するのに待機時間2時間は異常と思います。
可能であれば使用機材をお教えいただけないでしょうか。
フライトコントローラ、GPS、飛行機名です。
ご質問の待機時間が2時間の件ですが、
Li-poバッテリ3セルを電源とした場合、消費電流は概ね多くても100mA弱流れます。
上記の場合には2時間では200mAh程度を消費します。
バッテリ容量が2200mAhを満充電値とすると、2時間後は上記消費量を差し引いた分の2000mAhのLi-po電源容量となります。一割程度の電池容量を消費します。
上記を踏まえて、外部電源にするか、ご使用になる電源を選択されてください。
ところで、2時間も掛けてGPSを待機するのは実用的ではありません。
時間を掛けて行うのは、GPS基板内にある位置データ保持用のバックアップ電源のキャパシタ電池を充電する際のみです。充電してあると一週間ぐらいは前回位置を記憶していますので再度電源を投入しても早ければ十秒程度から遅くても数十秒後に捕捉できるはずです。ただし、衛星電波状況が良い状態です。
上のdenkado様のコメントにもありますが、木陰等に隠れている場合、電波障害になり、その場合は上記の時間は当てはまりません。
GPSの衛星捕捉に要する時間はメーカーで規定されています。
一般的にコールド状態(位置記憶が無し)では2分、ホット状態では数十秒と記載されているはずです。
denkadoさん、moonさん
アドバイスありがとうございます。
当方、Pixhawk mini + 付属のM8N を使用しております。
機体はミュゼット、FCなどはキャノピー下に搭載しています。
周囲に木陰などはないのですが、あらためて周囲の状況を確認した上で試してみたいと思います。
ミュゼットならカーボンの影響は無いですね。
後は、飛行環境で、例えば飛行空域が水の上とか。
機材の情報ありがとうございます。
ジャンプは、気象状況等により電波捕捉が十分でない時にたまに発生することがあります。
電波障害等の外的要因がない場合、以下のことが考えられます。
自作した物であれば、次のことが考えられます。
機材の設定について、
1、 GPSのサンプリングの転送スピードとレート設定がされているか。
2、 コンパスの設定はGPS側のコンパスのみ使用する設定になっているか。
3、 コンパス等のキャリブレーションは実施されているか。
もし、上記設定と外的要因に問題ない場合は、
ミッションプランナのソフトを使用してある程度の解析が可能です。
ミッションプランナにてフライト・データの画面で左側中央部にある小さい→でデータ・フラッシュ・ログを選択します。Pix4 Bin File to Logを選択し、フライトしたBin Fileを指定します。自動的にLog Fileに変換されます。
その後、同画面のログのレビューを選択し、先程のLog Fileを指定します。
解析画面になります。
右側に各種項目がありますので、以下を選択します。
GPSのところで、下記にチェックを入れます。
衛星捕捉数(NSats)
XKF4のところで、下記にチェックを入れます。
下記閾値は0.6です。
位置エラー(XKF4_SP)
コンパスエラー(XKF4_SM)
速度エラー(XKF4_SV)
上記の解析結果がでたものを、このBBSにアップを頂ければと思います。
Denkadoさん、Moonさん
アドバイスありがとうございます。
月に1回程度の飛行なので、だいぶ返信が遅れてしまい申し訳ございません。
最新の結果としては、だいぶ改善されました。
飛行前に早めに電源を入れ、車などから離して待機していたところ、ジャンプの事象が発生しませんでした。
やはり、その時のコンディションに左右されるのですね。
プロッターで見ると楽しいですね。自宅に帰ってからの楽しみです。
勉強がてら、Moonさんの言われるログもチェックしてみたいと思います。
引き続きよろしくお願いいたします。
リボン図を見られる様になった事で一区切りとし、その先へ進まれない方が意外に多い様なので、是非次のステップへ進んでみてください。
ブログの方にも書きましたが、やり方はフライトコーチの始め方 / 34にあります。
はじめまして、フライトコーチとArdupilotにハマっているgo3と申します。
「いつ飛行させたらいいの?」を解決する装置を作ったので紹介します。
FC側のソフトであるArdupilotにはGPSやコンパスなどの準備が整ったかをチェックする機能(ARMING_CHECK)が用意されていますが、
フライトコーチでは電源投入後の操作をしなくてもログが開始できるようにアーム操作不要(ARMING_REQUIRE=0)に設定されています。
この設定の場合はARMING_CHECKが働かず電源投入後数秒で強制アームとなりログ収集を開始し、その後GPSが衛星4個程度を受信すると3D-FIXとなりOrigin位置が記憶されます。
しかしこの段階では位置精度が十分ではなく記録されたOrigin位置が実際とずれていることが有ります。
フライトプロッタ―で表示させようとしたときに、"more than **m from the origin"となったり表示されたリボン図にセンターズレや高度ズレが生じるのはこのためだと思われます。
GPS、IMUなどの準備が整いEKFが動作開始(EKF3 active)した後にログを開始すればこの問題は解決するはずです。
ARMING_REQUIRE=1にしてARMING_CHECKを有効にすればよいのですが、以下のいずれかの方法でアーム指令を出す必要があります。
⓵ 飛行機本体の受信機とFCをSBUSで接続し、15秒程度右ラダーを打つ。
(欠点:F3AなどFCとは完全に分離しておきたいが・・・)
⓶ LUAスクリプトを使う。
(欠点:Pixhawkなど2MB以上のFCに限定される)
⓷ MAVLINKを使う。
今回作った装置は⓷のMAVLINKを使ったものです。

電源投入後10秒おきにアーム指令を出し、FCがARMING_CHECKをPassしてアーム完了となれば飛行可能の状態となりLEDやブザーで知らせます。
興味のある方はPayPayフリマで入手できます。 "MT-MAV01" で検索してください。
お試しさせてください
これまで飛行開始のタイミングを図るために、①の方法でARMINGをFCに確認させて いい結果を得ています。
ただし、飛行機の受信機に接続しているわけではなくて電子工作試作品でシミュレート動作しています。
同時に、FCで小型EL表示をさせて エラー原因を確認しています。
私の環境では、2種類のエラーが発生していました。
ひとつは、車の影のGPS捕捉数不足。 もう一つは、磁気エラー。
磁気エラーの原因は、待機場所にあるワイヤー入りのゴムシートでした。
これが判ったので、それ以降は快適にLOGが取得できています。
FlashAir(WiFi)経由でLOGを抜き取りたいので、オプションのARMING 停止のボタンは追加して使いたいと思ってます。
お試し 快適です
ログ取得に必要な前提条件、GPSの補足数、ジャイロ、コンパス、磁気異常、IMUの初期設定、SDカードの未装着チェックまでできます。条件が揃うと ブザーでお知らせ、ログ取得が ●自動的にスタート●
私は、SDカードを抜くことなく ログを抜きたいので、MiniPixでは、セーフテイスイッチの条件を追加。
電源投入後、
ー セーフテイスイッチを押すまではログを抜きとりできる状態
ー セーフテイスイッチを押したら、ログ取得の条件が整ったら、ブザーでお知らせ 即飛行開始OK
設定には、トラブルがありました。 なぜかコンパスキャリブレーションができてないというエラーが発生。
何度コンパスキャリブレーションをしても、本エラーで自動スタートしませんでした。
FCのファームバージョンV4.0.5を V4.3.4(現状の最新版)に変更してトラブル回避に成功
MiniPixは、Radiolink社がV4.0.5を推奨していますので MiniPix使われている方はファームバージョンそのままですとダメのようです
go3さん、書き込みありがとうございます。
PayPayフリマで検索してみました。
https://paypayfleamarket.yahoo.co.jp/user/p6831727
フライトコーチ利用者の数がどんどん増えるといいですね。
色々な情報発信をお願いします。
「いつ飛行開始したらいいの?」以外の便利な使い方を紹介します。
⓵ ブザー
MinipixやOMNIBUS F4 PROなどはブザーに対応しています。
FCがアームすると2秒程度「ブー」とブザーが鳴ります。日中はLEDが見ずらいので自分はブザーに頼っています。
ARMING_REQUIRE=0だと電源投入後すぐにブザーが鳴りますがARMING_REQUIRE=1にしてARMING_CHECKを有効すればブザーだけで「いつ飛行開始したらいいの?」がわかります。
⓶ OLED

他の方も紹介されていますがFCのI2CバスにOLED付けることができます。
フィールドでFCの状態を知るには非常に便利なものですが、ARMING_REQUIRE=0にすると電源投入後すぐに自動アームとなるため添付左の写真の表示となり肝心の状態が表示されません。ARMING_REQUIRE=1 にするとアームの条件が整っていないときには写真右のような表示となりアームしない原因がわかります。
I2Cバスなので取り外し式にしておきアームしないときの原因究明の時だけ取り付けることもできます。
⓷ ログ吸い上げ
SDカードのログは 「00000001.BIN」 といったファイル名ですが、FCとパソコンをUSBで接続し、MissionPlannerを使ってログを吸い上げると「1 2023-03-11 14-32-01.bin」のように飛行時の日時付きのファイル名になります。
ただし、アーム中はログ吸い上げができないのでMissionPlannerからディスアーム指令を送るのですが、ここでもARMING_REQUIRE=0だとすぐに自動アームされるのでログ吸い上げができません。
⓸ 手動アーム・ディスアームスイッチ
MT-MAV01は、外部スイッチを追加して手動アーム・ディスアームできるPinをコネクタに用意しています。
コールドスタートでは衛星補足に結構時間がかかるので、事前に電源を入れておきます。1度ディスアームスイッチを押すとディスアーム指令を出すと共に10秒おきの自動アーム指令を終了します。飛行前に手動アームスイッチを押せばアーム指令を出しARMING_CHECKをPassすればログを開始します。
自分はここでブザー音を確認して飛行させています。
上記のように、ARMING_REQUIRE=0ではArudupilotが持つ優れた機能のいくつかが利用できないのでMT-MAV01を作りました。
今回MAVLINKを使用したのはこれが双方向通信であるためです。FCのアーム状態を確認しアーム後はアーム指令を出しません。このため手動アーム・ディスアームスイッチを付けなくてもMissionPlannerからディスアームすることができます。
やっちゃんこたろう さん
MT-MAV01のご利用ありがとうございます。

セーフティスイッチでアームをコントロールするアイデアは良いですね。Minipixだとコネクタを挿すだけでブザーも有効になるし一石二鳥ですね。
取説に記載のARMING_CHECKはセーフティスイッチが無いシステムでも使えるようにセーフティスイッチは無視する設定としています。
やっちゃんこたろうさんの様な使い方をする方は、以下のようにARMING_CHECKパラメータに追加してください。
「コンパスキャリブレーションができてないというエラー」は元々内在していた問題がARMING_CHECKが有効になったことで顕在化したものだと思います。
自分もMT-MAV01を取り付けてから、これまで気づかなかったエラーが沢山あったことに驚きました。これらのエラーを対策することでより精度の高いリボン図になると思います。
参考までに、最近ファームをV4.3.5にしたら"Baro: GPS alt error 5803m (see BARO_ALTERR_MA"というエラーが出るようになりました。使用している気圧計の種類によるものと思いますが、BARO_OPTIONS=1に設定したら解決しました。