見出し画像

[ArduPilot] 位置制御チューニングした結果2

はじめに

「位置制御チューニングした結果」の記事の続編です。

前回の記事では、HereFlowを使用した機体で位置チューニングを行い、水平精度と垂直精度がどの程度になったのかを考察を交えて記載しました。
ただ、満足のいくチューニング結果は得られず、妥協して終わったのが心残りでした。
ただ、その中でも以下の反省点を記載していることを思い出しました。

床の特徴によってHereFlowの精度が異なるため、特徴を掴みやすいものを下に置けばよかったなと思います。
ふらつく時に、チューニングが悪いのか、HereFlowの精度が悪いのかを区別せずにチューニングしていたため、値を上げたり下げたり同じことを繰り返してしまいました。

場所を変えてチューニングならすぐに実行できるので、上記が的を射た考察なのかを含めて再チューニングを実施しました。

チューニング後の飛行

色々記載する前にチューニング後の飛行を見たいという方のために、先に動画を貼り付けておきます。
ホバリングと自動飛行をそれぞれ用意しました。

ホバリング検証

自動飛行検証

自動飛行検証の方は、動画の字幕機能も付けて閲覧ください。

ホバリング、自動飛行ともに、前回よりふらつきが減り、だいぶ精度が向上しました。

ログ確認

前回の記事をチューニング前として、チューニング前と後の変化をログから確認します。
ログと動画を見比べると、より理解が進みますのでお試しください。

ホバリング時水平精度

ホバリング時のログです。

East方向の位置精度(チューニング前)
East方向の位置精度(チューニング後)

それぞれ、2分強のホバリングで、縦軸のスケールを合わせました。
チューニング前は8cmほどのふらつきに対し、
チューニング後は2cmほどのふらつきに減少しました。
ふらつき方は、チューニング前が目標(赤線)に対して実際の位置(緑線)はオーバーシュートを繰り返しておりかなり不安定なのに対して、チューニング後は移動量が少なく安定しています。
North方向もありますが、同じようなデータを見てもつまらないと思いますので割愛します。

自動飛行時水平精度

自動飛行の時の上から見た軌跡です。

どちらも4角形のミッションを10週したときの軌跡を表示しています。チューニング前は各週にずれがありますが、チューニングの軌跡はほぼ重なっていることが分かります。
チューニング前のミッションは一辺40cmの正方形(4点目のみディレイ1秒あり)、チューニング後のミッションは一辺60cmの正方形のミッションを使用しました。スケールを変えて同じぐらいの大きさに見えるようにしてしまっているのですが、それでもチューニング後の方がスムーズに移動しているのが分かります。

次に、ホバリング時同様に位置精度も確認します。

East方向チューニング

East方向の位置精度(チューニング前)
East方向の位置精度(チューニング後)

チューニング前のミッションでは4点目にディレイ(グラフの上部分)を入れていました。ぱっと見たときに、チューニング前のグラフでは上部分の揺らぎがあることに目が行きますが、ディレイがあることによるものなのでそこは比較から省きます。判りづらくなっており申し訳ありません。
グラフの下側の部分だけで比較しても、目標(赤線)に対する実際の位置(緑線)はチューニング後の方がより良い結果であることが分かります。

North方向チューニング

North方向の位置精度(チューニング前)
North方向の位置精度(チューニング後)

North方向はより顕著に違いを確認できます。チューニング前では最大10cm程度の誤差がありましたが、チューニング後では1cm未満まで減少しています。ほぼ目標通りに位置を制御できています。

垂直精度(高度制御)

垂直精度は前回の時点で6cmと精度がよかったため、ほとんど変わりませんが、一応見ておきます。

ホバリング時の高度

下向きライダーの値(チューニング前)
下向きライダーの値(チューニング後)

チューニング前は、0.96m~1.02mの間で飛行したため、6cmのぶれ。
チューニング後は、0.9m~0.95mの間で飛行したため、5cmのぶれ。
ほとんど変わりません。
ただ、見た目上はチューニング後の方が安定感があります。その理由としては、チューニング前は上下動を何度も繰り返しているのに対し、チューニング後はほとんど同じような値(高度)で飛行しています。
同じ5cm程度のぶれでも見た目上の安心感は全然違いますね。

自動飛行した時の横から見た軌跡も掲載します。

少しチューニング後の方がすっきりしたでしょうか?ただ、どちらも精度はよさそうです。

考察

チューニングした結果、位置精度はかなり向上しました。
最初にチューニングした時は、「ふらつく時に、チューニングが悪いのか、HereFlowの精度が悪いのかを区別せずにチューニングしていた」ため、それによってチューニングがうまく進みませんでした。
フローリングの上で飛行させていたのですが、光の反射によってかなり精度が落ちていたようです。
光を反射しにくい場所でチューニングすると、チューニングの値の良し悪しを判断できるようになり、今回のチューニングまでたどり着くことができました。

今回のチューニングでは、数値上の精度がよくなりましたが、それ以上に飛行時の見た目の安心感が増しました。それはオーバーシュートすることが少なくなり、ピタッと止まっている状態により近づいたためです。

終わりに

位置制御チューニングした結果」の記事の続編として、再度チューニングをした結果と、前回のチューニング結果との比較をしました。

前回は妥協してこの辺でチューニングは終わろうという形で締めくくってしまいましたが、今回はリベンジを果たして、安心感のある飛行ができるようになりました。

前半には動画を貼り付けていますし、後半にはログから数値データを紹介しました。それぞれを見比べてみるとより理解が深まると思います。
片方だけを見ても真実にはたどり着けないことがあります。例えば、ログの数値データは、機体の各種センサーから取得したものになります。もしセンサーの値自体に誤差が含まれている場合、ログデータ上では精度が良く見えていたとしても、実際の飛行ではふらついていたり、横に流れている可能性もあります。
複数の面から観察することで、精度の高い考察ができるように心がけていきたいと思います。

今回は条件のいい場所に限定して精度を高めるように調整してきました。
今後は、少しずつ場所を変えて検証することで、どういう場所では精度よく飛行できて、どういう場所では不安定になり危険なのか、を確認したり、飛行が難しくなった場合のフェイルセーフなどを検討していきたいと思います。

いいなと思ったら応援しよう!