100g未満FPVドローン製作 – パラメータ設定(チューニング(2))

 前回は100g未満ドローンを安定に飛行できるように姿勢制御パラメータのチューニングを行いました。今回は、屋内でも飛行できるようにオプティカルフローのチューニングを行います。また、できるだけ飛行時間を延ばすため、「初期設定」におけるフェールセーフ発動の「電池電圧降下」パラメータについて実際のバッテリーの電圧降下状況を確認しながら再調整します。

オプティカルフローのチューニング

 オプティカルフローのチューニングは、姿勢制御のキーである拡張カルマンフィルター(EKF)の入力信号をGPSとオプティカルフローに切り替えて行います。詳細は以下のサイトを参照してください。

Optical Flow Sensor Testing and Setup — Copter documentation

チューニングの手順は以下の通りです。

  1. EKFの入力信号を切り返すRCチャネルを決め、Mission Plannerの「設定/調整」画面のフルパラメータリストより「RC7_Option」の値を158 (Optflow Calibration) に設定する。(今回の使用するチャネルは7で、送信機のBスイッチを使う)
  2. EKFの入力信号切り替えをチャネル8(送信機のEスイッチ)とし、パラメータ「RC8_Option」を90(上:GPS、中央:オプティカルフロー、下:設定無し)に設定する。
  3. 次に、GPSをEKFの入力信号とするためフルパラメータリストより以下の設定を行う。
    • EK3_SRC1_POSXY = 3 (GPS)
    • EK3_SRC1_POSZ = 1 (Baro)
    • EK3_SRC1_VELXY = 3 (GPS)
    • EK3_SRC1_VELZ = 3 (GPS)
    • EK3_SRC1_YAW = 1 (Compass)
    • EK3_SRC2_POSXY = 0 (None)
    • EK3_SRC2_VELXY = 5 (Optical Flow)
    • EK3_SRC2_POSZ = 1 (Baro)
    • EK3_SRC2_YAW = 1 (Compass)
    • EK3_SRC2_VELZ = 0 (None)
    • EK3_SRC_OPTIONS = 0 (Disable FuseAllVelocities)
  4. ドローンをキャリブレーション開始場所に持っていき、バッテリーを装着した後GPSがフィックス(FPV画面に表示される受信衛星個数が5個以上、あるいはMission Plannerの「フライト・データ画面」右下のGPS FIX表示)するまで待つ。
  5. GPSがフィックスしたら、ドローンをロイターモード(送信機のCスイッチを中央、Dスイッチを下にする)で上昇させ、Lidar(RangeFinder1)の検出高さ以下(今回は2m以下)でホバリングさせる。
  6. Bスイッチを下(High)にしてGPSモードでキャリブレーションを開始する。
  7. RC送信機の右スティックでドローンを前後、左右に揺さぶる。
  8. Mission Plannerのメッセージタブに以下のようなメッセージ表示されたらBスイッチを上に戻す。
    • FlowCal: Started FlowCal: x:0% y:0%
    • FlowCal: x:66% y:6% FlowCal: x:100% y:74%
    • FlowCal: samples collected
    • FlowCal: scalarx:0.976 fit: 0.10 <– lower “fit" values are better FlowCal: scalary:0.858 fit: 0.04
    • FlowCal: FLOW_FXSCALER=30.00000, FLOW_FYSCALER=171.0000
  9. FLOW_FXSCALERとFLOW_FYSCALERが±200以下であればキャリブレーションは完了であり、ドローンを着陸させてパラメータを書き込む。±200を超えるのであれば、着陸させて再度5~8を繰り返す。
  10. キャリブレーションが完了したら、スイッチEを中央(オプティカルフロー)にしてドローンを上昇させ、ホバリングや左右・前後の送信機の右スティックへの応答を確認する。正常に応答ができなければ、4~9を繰り返す。

「電池電圧降下」パラメータのチューニング

 「初期設定」おいて「フェールセーフ」の「電池電圧降下」BATT_LOW_VOLTの値は、「Initial Tune Parameters」により自動的に設定された値Viniにしていました。しかしながら、バッテリーには内部抵抗があり、飛行中にモータに流れる数Aの電流によりフライトコントローラで検出される電圧値は内部抵抗による電圧降下分が含まれます。ちなみにバッテリー充電器で内部抵抗をモニターしたところ、2セル550mAh 100Cのバッテリーでは1セル当たり約20mΩの内部抵抗がありました。2セルでは約40mΩの内部抵抗となります。バッテリーを選択する際に飛行中の電流を5Aと想定しましたが、この電流値では飛行中の内部抵抗による電圧ドロップが0.2Vとなり、バッテリーにとってはフェールセーフのBATT_LOW_VOLTのViniには0.2Vのマージンがあるということになります。チューニングでは、この電圧余裕を確認してBATT_LOW_VOLTパラメータを再設定します。以下にチューニング方法を示します。

  1. バッテリーを装着し、GPSがロックしたらイターモード(送信機のCスイッチを中央、Dスイッチを下にする)で上昇させ適当な高さ(3m程度)でホバリングさせる。
  2. FPV受信画面の電源電圧値またはMission Plannerの「フライト・データ」の左下バッテリー電圧値(Bat)でホバリング時の電圧Vhを読み取る。
  3. バッテリーフェールセーフが発動するまでドローンを飛行させ、フェールセーフが発動してドローンが着陸したらFPV受信画面の電源電圧値またはMission PlannerのBat値Vlを読み取る。その後バッテリーをドローンから取り外す。
  4. VhとVlの差分(Vl-Vh=Vdiff)を算出し、Mission PlannerでBATT_LOW_VOLTを現状の設定値Viniから(Vdiff-0.1)低い値Vsetに設定し直す。(Vdiff-0.1)が負の値であれば、設定を現状のままとする。
  5. Vset≦BATT_CAT_VOLT(クリティカルバッテリフェールセーフトリガー電圧)となる場合は、BATT_CAT_VOLT=Vset-0.1とし、Mission Plannerの「フルパラメータリスト」で設定変更する。ただし、BATT_CAT_VOLT<6.9となる場合には、BATT_LOW_VOLTを含めて設定を現状のままとする。

 本100g未満ドローンではVset=7.1Vとなり、初期設定値Viniより0.1V低い値となりました。0.1V下げることにより飛行時間が数十秒延びるようです。次回は、実際にドローンを飛行させ、本ドローン製作の第2の目標とした飛行時間5分以上の検証を行います。

100g-drone

Posted by dronedroid-masa