ひーちーのつぶやき

Macいじり,3DCG,デジカメ,ドローンを楽しんでます。

Hobby マルチコプター

機体重量200g未満のドローンでやっとGPSアシスト飛行ができた

機体重量200g未満のドローンでやっとGPSアシスト飛行ができた延々と、モータ回転時に発生するノイズの電子コンパスへの影響を低減する対策を色々と
やってきたけど、なんとか外部電子コンパスでほぼ問題ないレベルまで改善できた。

なぜ、電子コンパスへのノイズ対策をしていたかというと
LibrePilot(OpenPilotも含む)のGPSアシスト飛行制御ではジャイロと加速度計と
電子コンパスのデータを元にGPS情報とつきあわせ機体姿勢認識をしているので電子コンパスの
出力がおかしくなると機体姿勢も誤認識され離陸さえ出来ない。

なので、今まで以下の対策を行ってきた。

  1. 大きな電流が流れる+とGNDケーブルをねじって発生するノイズ低減。
  2. フライトコントローラ裏面に銅テープを貼りGND接続しフライトコントローラへの
    ノイズの影響を低減。
  3. バッテリーからモータまでケーブル長を最適化し無駄な余長を無くしノイズ低減。
  4. 電子コンパスをフライトコントローラ内蔵からGPS受信機内蔵のものへ切り替えて
    ノイズ発生源から遠ざけて影響低減。

これらの対策を行う事でなんとか問題無いレベルまで電子コンパスがノイズで誤動作する事を
無くして機体姿勢の誤認識を起こさないようにした。

大きな電流が流れるケーブルの+とGND線をねじって発生するノイズ低減

たぶん、みなさんも右手の法則だっけ?電磁力を右手で表現するのを知っていると思うが
それと同じ事がバッテリーからモータまでのケーブルで起こっている。

その中の磁を小さくしないと電子コンパスが誤動作する。
電流を小さく出来ればいいけど150mmクラスのクワッドコプターでも10AのESCを
使っていて電流値低減はムリ。

そこで、ノイズ対策の王道でケーブルをネジネジしてノイズの低減をしてみた。
ホントはフェライトコアにケーブルをネジネジしたかったんだけど重量制限の関係で追加の
部品は取り付けられないからね。

_DSC4156

銅テープによりフライトコントローラへのノイズの影響低減

電子コンパスへの電磁ノイズの影響と共に気になっていたのがフライトコントローラの
CC3D Revolution miniの基板へノイズがのって電子コンパスの信号にノイズを上乗せして
さらに悪化させているかもしれない。

なので、CC3D Revolution miniを取り付けている樹脂ベースの裏面に銅テープを貼り付け
それをGNDまで接続する対策をした。

_DSC4157

バッテリーからモータまでの駆動系ケーブルの長さ最適化

バッテリーからBEC基板・BECからESC・ESCからモータへのケーブル長を最適化して
長さを最短にしノイズ低減。

元々、バッテリーからBEC基板までのケーブル長さは最適だった。
BECからESCまでのケーブルはネジネジすることで最適な長さにたまたまなってラッキー。
ESCからモーターは半田付けの都合で余長があったため必要最低限の余長をのこし
最適化した。

つまり、Eachine のBG1104 4000KV Motor + 10A ESC+3020プロペラセット
モーターとESC間をESCケーブルを外しモータケーブルをESCに直結するってこと。

モーターケーブルは芯線が単線で細いので直接負荷が加わると断線するので一定量の
余長を持たせることにした。

_DSC4148

電子コンパスをフライトコントローラ内蔵から外部電子コンパスへ変更

これが一番効果が大きな対策なんだけど
電子コンパスをノイズ発生源からなるべく遠ざける。
ノイズは距離の二乗で減衰するのでできる限りノイズ発生源から電子コンパスを遠ざけると
大きな効果が期待できる。

どうするかというと、フライトコントローラCC3D Revolution mini(Revo/Revo nano含む)
に搭載されている電子コンパスから別途用意した電子コンパスを使うって事。

なので、僕はGPS捕捉性能を確保するために搭載したGPS受信機(アンテナ)の
Beitian BN-880 Flight Control GPS Moduleに搭載している電子コンパスを外部電子コンパス
として使用することにした。

ただし、その為にはLibrePilotを開発中最新版にしないとダメなのでデベロッパマニュアル
参考に最新版をBuildする必要がある。

なので、LibrePilotGCS開発中最新版を用意してファームウェアも最新版に入れ換えた。

あとは、外部コンパスの接続だけ。

GPS信号はMain Portに接続し外部電子コンパスはI2CとしてFlex Portに接続。
設定もそれ用に変更して完了。
(詳細設定方法は外部コンパスの設定マニュアルを参照)

まぁ、マニュアル自体は中学生レベルの英語が理解できればほぼわかる。

_DSC4158

以上の対策の結果

以上4項目の対策を実施することにより外部コンパスを使えばモーターを最高回転で駆動
しても電子コンパス信号にほぼ影響がない状態まで改善できた。

Parallels DesktopScreenSnapz046

大きく出力が変化している方がCC3D Revolution miniに内蔵の電子コンパスで
出力がほぼ変化していないほうがBeitian BN-880 Flight Control GPS Moduleに内蔵の
外部コンパスの出力。

外部コンパスを使えば、ほぼモータ駆動によるノイズで出力変動はほぼおきない。

GPSアシスト飛行テスト

なぜか今日も春一番みたいな強風。
そのなか、電子コンパスキャリブレーションをやってGPSアシスト飛行テストをやった。

前回はモータ駆動と同時に機体姿勢を誤認識して離陸と共に左後方へ全速力で
飛行してしまったのだが・・・・

今回は、離陸前にモーターを回しても機体姿勢認識はおかしくない。
さすがにGPSアシスト+気圧計での高度維持はこわくて試していないけど強風の中でも
ある程度その場に踏ん張ろうって感じの飛行をしてくれた。
強風なのでその場でホバリングはムリでしたが・・・

今まで失敗続きで、ぎこちない指で飛ばし着陸は風に流され不時着して回転ってなった。
また、GPS受信機を固定している部材の強度アップと重量低減も必要。

まぁ、なんとかGPSアシスト飛行ができて一安心。

-Hobby, マルチコプター
-, , , ,