見出し画像

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

はじめに

前回チューニングを行ったArduPilot Mini Copterの後継機となる、ArduCopter Mini V2を入手しました。
この機体では、HereFlowが付いているため、位置制御も可能となります。
前回の機体(V1)ではできなかった、手放しホバリングの精度検証や自動飛行を行いたいと思います。

今回使用するV2の機体はこちらです。

ArduCopter Mini V2

上部にGNSSも付いていますが、屋内使用のみなので無効にしています。

ArduPilot Mini Copter(V1)のチューニングした時の記事はこちらです。

V2機体でも前回同様にロール、ピッチ、ヨー、高度制御のチューニングを行いました。
HereFlowにもライダーが付いているので、V1とほとんど同じ構成で高度制御のチューニングをしています。

チューニング後の飛行

まずは結果を見たいという人のために、先にホバリング時と自動飛行をした時の動画を貼り付けます。

大満足・・・ではないのですが、許容範囲内に収まったので一先ずチューニング完了として動画に収めました。
安心してみていられる程度になったと思います。

考察

自動飛行の時の精度はかなりいいのではないでしょうか。一辺40cmの正方形のミッションを10回繰り返していたのですが、ほとんど同じ軌跡を辿っています。
HereFlowは機体の移動速度を算出し、EKFではその速度から位置推定を行います。GNSSのような絶対的な位置を特定するセンサーは使用していないため、誤差は蓄積されていきます。ただ、上記の動画ではミッションが終わった後も、開始位置とほとんど同じ位置に帰ってきているため、誤差がほとんど発生しなかったと思われます。

移動速度を上げたり、長距離のミッションを作成すれば、誤差は増えていきます。今回の動画では、カメラに収まるように小さいミッションを作りましたが、結果的にHereFlowに優しいミッションになっていました。
どんな場所でもこの精度で飛べるわけではないので、作成したミッション通りに飛べるかを検証する場合には注意が必要です。

また、最初に大満足ではないと記載しましたが、ビタ止まりのホバリングまで調整できなかったのが心残りの点です。
チューニングは苦戦して、かなり時間がかかりました。
動画を撮った後で気づいたのですが、床の特徴によってHereFlowの精度が異なるため、特徴を掴みやすいものを下に置けばよかったなと思います。
ふらつく時に、チューニングが悪いのか、HereFlowの精度が悪いのかを区別せずにチューニングしていたため、値を上げたり下げたり同じことを繰り返してしまいました。結果的に妥協点を探して、作業を終えました。

ログ確認

自動飛行した時のログから、水平精度と垂直精度(高度制御)に分けて精度を見ていきます。

水平精度

自動飛行した時の軌跡を確認します。

上から見た軌跡

10週した時の上から見た軌跡です。10週分を同時に表示しているので、何本も緑の線が表示されています。1辺が40cmの正方形で、白い点線がミッションと考えると、最大10cm近くずれている場所がありそうです。
また、左側のずれ方が同じように見えるので、その辺りはチューニングにより改善できるポイントと思われます。

実際に数字でも確認します。
位置精度をみるために、DesiredとActualの違いを確認します。
まずはEast方向です。

East方向の位置精度

移動して停止するときに揺らぎが発生しています。大きいところでは5cm程度揺らいでいます。どのタイミングでも同じように揺らいでいるので、チューニングで改善する余地がありそうです。

次にNorth方向です。

North方向の位置精度

こちらは最大10cm程度の誤差が発生しています。こちらも揺らぎ方が似ているため、まだまだ改善できそうです。

垂直精度(高度制御)

高度制御のログはV1の機体でもホバリング時の精度を確認しました。
今回は自動飛行中のログですが、1mの高さをキープするようにミッションを作っています。水平移動しているときにも高さをどの程度キープできているのか見てみましょう。

横から見た軌跡

横から見た軌跡では、視覚的に高度の誤差を確認できます。ほとんど同じラインを通っているため、誤差は小さそうです。
実際の下向きライダーの距離も確認します。

下向きライダーの値

目標高度1mに対して、1m~1m6cmの間で上下しています。3cmほど上側にオフセットしてしまっていますが、cm級の精度となっています。
動画を見ると分かるのですが、自動飛行ミッションを実施中の機体を横から見ても高度は安定しています。

終わりに

位置制御をチューニングした結果について、考察やログの確認を行いました。
高度は6cm程度の誤差に対して、水平方向は10cmほどの誤差がありました。水平方向に関しては、まだまだチューニングを詰めていける余地がありそうです。
ただ、精度が向上するほど、1cmの精度向上のためにかかる時間が増えていきます。できるところまでやり続けようとすると、際限が無く終わらなくなってしまうため、10cm程度の精度を妥協点として、チューニングはいったん終わろうと思います。

今回のV2機体を入手したことで、今後は自動飛行に関する機能の検証もやりやすくなりました。
V2はH7のFCを搭載しているため、Lua Scriptsもサクサク動きます。

今後は気になる機能が出てきたら、実機ですぐに検証できるので非常にワクワクしています!


この記事が気に入ったらサポートをしてみませんか?