自作無人飛行機作り方ガイド(09-PID設定値調整とその他設定機能)

この段階では、APMの基本機能は全部紹介終了しました。あとはより細かい、まとまっていない補助機能です。本編はAPM設定方法についての最終編だと思いますが、そのシリーズの最終編ではありません。「空中撮影」の応用も紹介したいと思うので、次の文章からはジンバルシステムや無線映像伝送システムを紹介していこうと思います。
=PID設定値調整=
 APMのオートパイロット機能は一般的なオートパイロットシステムと同じように、機体が風のためにそれた時、逆方向へ飛ばせばいいという簡単なことではありません。システムの遅延時間と反応時間も考えに入れなければなりません。具体的に言えば、機体が風のために向きを変えた時をセンターが感知して、演算を行って校正信号を送って姿勢校正をし始めるまでは、かなりの時間がかかります。校正が始まった時、機体の姿勢がすでに変わりました。しかも校正信号がようやく届いた時、機体の重量や駆動力などによって、反応動作も違ってきます。校正終了後、コントローラーが今の位置を感知するのも時間がかかります……。
 その状況なので、システムがかなり複雑になります。
 頭のよい科学者はその複雑なシステムを「PID」という3つのパラメーターに簡単化しました。それぞれの意味はとても複雑なので、ここでは説明しません。
APM設定値の調整:
 PID設定値を変更する場合、まず3つのパラメーターを「ゼロ」に変更したほうがいいと思います。そして、「P」の数字を少しずつ調整して、反応が大きすぎたら、15%くらい減らしてみます。次は「I」の数字です。上記と同じように調整して、反応が大きすぎたら、15%くらい減らしてみます。最後は「D」の数字を調整します。
 調整に時間がかかるので、根気よくやり続けましょう。
 初心者の場合、その調整はちょっと無理です。機体を飛ばすこともできないので、調整オーバーかどうかの判断はもちろん無理です。
 経験者でも、飛行→着陸→パソコンにつながる→設定値調整→また飛行→……と何十回もやっても大変なことです。YoutubeでPID値調整のよい方法を探してみましょう。実は筆者も、その調整を完璧に終了したことがないです。
 初心者が設定値調整をする時、機体を吊り下げて、自由に移動可能なようにして、PID設定値をゆっくり調整するという方法も、ほかの文章で見たことがありますが、面倒くさそうで、やったことがありません。
 新バージョンのファームウェアが出た後、APMはオート調整機能を搭載するようになりました。ユーザーにとっては、もちろんいい話です。調整方法は下記のようになります。
APM設定値自動調整機能:
 その機能を使うのは、6チャンネル以上のプロポが必要となります。ここでFrsky X9Dを例として説明します。2つのオスコネクター付サーボコードを1本用意しましょう。まず、受信機のチャンネル6を、APMの7に接続します。(APMの6ではなくて、7ですよ!要注意!)
 次、プロポの「MIX」に入って、チャンネルを新規作成して、X9Dのメインメニューで「MENU」を1回押して、「PAGE」を5回押すと、「MIXER」に入ります。
 今はチャンネル1~5にだけ名称がありますが、その中のチャンネル5は「06-ソフト設定方法について編」ですでに紹介したものです。
 「-」を押して「CH6」を選択して、「ENT」を押すと、「INSERT MIX CH6」に入ります。
 すると、「Source S2」の「S2」が選択されるようになります。
 「ENT」を押して、「SF」が出るまで「-」を何回も押します。そして「EXIT」を押して、メインメニューに戻ります。
 設定終了の画面は下のようになります。
 「SF」(右手の2段スイッチ)で操作するように設定しました。新規作成のチャンネルなので、校正が必要です。ここで、APMをパソコンにつなげて、MP(Mission Planner)を開きます。「INITAL SETUP」→「Mandatory Hardware」→「Radio Calibration」に入って、プロポを再校正します。
プロポの校正について:
 チャンネルを新規作成した時や、新送信機・新受信機に交換した時、プロポを再校正する必要があります。
「INITAL SETUP」→「Mandatory Hardware」→「Radio Calibration」に入って校正します。校正方法は「06-ソフト設定方法について編」ですでに紹介したので、その部分の説明を参考してください。
下の画像のところで、CH5の1つのフライトモードを高度固定飛行モード(AltHold)に設定して、「SAVE MODE」をクリックします。
 「CONFIG/TUNING」→「Extended Turning」に入って、CH7のモードを「AUTO TURN」に変更して、「Write Params」をクリックします。
 APMのチャンネル6は自動調整機能に対応しないので、受信機の6をAPMの7につなげるわけです。
 準備終了後、下の動画(英語・中国語字幕付き)を参考に設定してください。
 設定終了後、設定値自動調整機能(CH7)をオフにしないでください。オンのままでは、機体を飛ばして着陸して、モーターを止めたら、設定値が自動的にセーブされます。モーターを止める前にオフにしてしまうと、設定値がセーブされません。要注意です。
 上記のように設定終了後、風のないもしくは風の弱い時に機体を飛ばせば、機体は最高の安定性を見せます。
 初心者だったらどうすればいいですか。MPが提供してくれる設定値を使って、まず飛行練習をしたほうがいいと思います。操作に慣れた後に設定値自動調整を行ったほうがやりやすいです。
 ここで、よく使われるほかの設定や機能を紹介します。
=振動状態の測定=
 一般的に、駆動力のある機械には振動が生じますが、オートパイロット装置にとって、振動がそのセンサーの正確度に大きく影響します。振動が大きすぎると、機体の本当の姿勢が感知できなくなるので、振動が大きいほど、安定性が低減するわけです。
 マルチコプターは、プロペラやモーターのアンバランス状態のせいで振動が生じることがあります。それが知らず、PID設定値の調整や重力加速度装置、電子コンパスの校正で問題解決を図る人もいますが、振動が大きすぎる場合、いくら校正をしても振動問題が解決できません。
 APMがデータ伝送機能を搭載していれば、飛行データをすべて記録されるので、下記のようにデータを読み込んで、モーターやプロペラをバランス状態にして、もしくは防振装置を取り付けて、振動を低減します。
 飛行が終了した後、「Mission Planner」と機体のつながりを切って、「FLIGHT DATA」の左下の「Telemetry Logs」を開きます。
 「Tlog > Kml or Graph」をクリックすると、「Mavlink Log Graph」のツールが出てきます。
 「Graph Log」を選択して、ファイルを選択します。飛行データは「C:Program Files (x86)Mission PlannerlogsQUADROTOR1」に、時間順で保存されます。
 一番新しいファイルを開きます。
 そうすると、「Graph This」が出てきます。「RAW_IMU」の下の「xacc」「yacc」「zacc」にチェックを入れます。
 すると、「Mavlink Log Graph」のところには、さっきチェックを入れた項目のデータが表示されるようになります。
 一部分のデータを拡大表示することが可能です。マウスの左ボタンを押したままでドラッグすればいいです。右下のボタンで全画面表示にすることや、マウスホイールで拡大/縮小することも可能です。
データの読み込みについて、APMサイト(http://copter.ardupilot.com/wiki/ac_measuringvibration/)ではAPMメモリーでデータを保存します。それは、筆者のやり方とちょっと違うので、出てくるデータもちょっと違いますが、「±3」の差だけだと思います。興味のある人はご自分で研究してみてください。
=オートリターンツーホームの設定値=
 オートリターンツーホームモードを使ったことがありますか。そのモードの下記の設定値を調整してみましょう。
関連設定値(「CONFIG/TUNING」→「Standard Params」)
RTL Altitude:リターンの時の高さ
1500(cm)
RTL Final Altitude:リターン最終の時の高さ
0(着陸)
RTL loiter time:地面に降りるまで、リターンポイントの空中で旋回する時間
50000(ms)
=フェイルセーフ=
 要注意なポイントです。この機能はプロポが提供するもので、受信機に電波が届かなくなった場合、APMは自動的にある設定値に切り替える機能です。
 無人機が目視出来ないところに行ってしまうことがよくあります。X9Dを使って、障害物のない空き地で飛ばして、5キロメートル以上の制御距離が実現する人もいますが、どんな状況でも、フェイルセーフ機能をちゃんと設定しておいたほうがいいです。
方法1:
 下の動画を参考に、X9Dの「failsafe」を「No pulese」に設定します。そうすると、受信機に電波が届かなくなった場合、信号を出力しなくなります。
「INITIAL SETUP」→「Mandatory Hardware」→「FailSafe」に入って、右の「FS Pwm」で975以下の数字に設定します。そうしたら、プロポをオフにすると、CH3の数字が「900」になります。それは、CH3が信号を出力しなくなることです。
関連設定値(「CONFIG/TUNING」→「Standard Params」):
Battery Failsafe Enable:電池残量が低すぎる時の動作。
Land(着陸)
GroundStationFailsafeEnable:地面からの電波が届かなくなった時の動作。
Disable(無反応)
GPS Failsafe Enable:GPS信号がなくなった時の動作。
Land(着陸)
ThrottleFailsafeEnable:スロットル信号がなくなった時の動作。(プロポからの信号が一切届かなくなった時)
Enable always RTL(リターンツーホーム)
Throttle Failsafe Value:スロットル信号がなくなった状況。
975以下の数字に設定します。
方法2:
 受信機に電波が届かなくなった時、スロットル50%、リターンツーホームモードに切り替えるように設定します。その方法はMissionPlannerを使う必要がないので、より便利かもしれません。
 下はX9DとX8Rのフェイルセーフ機能の設定方法案内動画です。セリフが英語ですが、画面の動作に従って設定すればいいです。CH5を「RTL(リターンツーホーム)」に設定すること、忘れないでください。