電流がコンパスに与える影響の確認方法
背景
ドローンを作って初めて飛ばすときに、出てくる問題の一つとして、電流によるコンパスのエラーがあります
基本的にモーターに流れていく高電流のケーブルはコンパスから離す必要がありますが、最初はケーブルがきちんと束ねられていなかったり、配線の仕方が悪く、コンパスに悪影響を及ぼしてしまい、Loiterモードで位置制御が困難になることがあります
まさにトイレットボウル現象と呼ばれる挙動です
今回機体開発しているなかで、トイレットボウル現象が現れたので、どのように確認したかを説明します
確認する方法は色々ありますが、今回は磁場の大きさを確認してみました
原理
コンパスではx, y, z方向のそれぞれの磁場の強さをモニタリングしながら、そのベクトルの向きをから自分が向いている方位を計算しています
機体が離陸すると向きが変わるので、x, y, zの値のみを確認するだけではなんとも判断することができません
もし、飛行中にコンパスに外乱の影響が全くない場合、機体の向きが変わって、x, y, zそれぞれの磁場の強さが変わったとしても、ベクトルの長さ、つまり、磁場の全体の強さに変化はないはずです
磁場全体の強さをモニタリングして、コンパスに電流などの外乱の影響が入っているかどうかを確認します
ログの確認
UAV Log Viewerをつかってログを読み込みます
このLog Viewerの便利な機能として、plotに式を入れることができます
今回は以下のような式を入れました
sqrt(MAG.MagX**2+MAG.MagY**2+MAG.MagZ**2)
これでプロットした結果を電流の値と比較して見てみます
離陸してからこの磁場の強さが変化していることがわかります
これによりコンパスが狂っていることがわかります
解決策
解決策は下記の通りです
- ハードウェアの修正
- ケーブルのプラスとマイナスをできるだけ近づけて配線する
- ケーブルをコンパスから遠ざける
- シールドする
- ソフトウェアによる補正
- Compass/motor calibration
エアロネクストでは今までの経験では、ハードウェアの修正で対応してきました
高電流が流れるケーブルとコンパスの距離は、流れる電流の大きさにもよりますが、10cmくらい離した方がよいです
もちろん数センチの距離になってしまった機体もありますが、その場合はできるだけケーブルのプラスとマイナスを近づけて配線することにより、コンパスに悪影響を及ぼすことはありませんでした
シールドについてはあまり使ったことがありません
試したことはありますが、あまり効果を感じませんでした(ちゃんと計算してシールドを選定していないからかもしれません)
Compass/motor calibrationはまだちゃんと試したことはありませんが、配線や配置の都合上、どうしてもハードウェア側の対応が難しい状況になったら、検証してみようと思います
修正後
今回も今までと同様にハードウェア的に修正して検証してみました
このように、飛行中にほとんど磁場の強さはは変化しなくなりました
これでLoiterでも問題なく飛行させることができました
Discussion