CC3D revoでGPSアシスト飛行が出来る機体重量200g未満のドローンを作る際の注意点のまとめ。

Hobby



2台目の自作クワッドがGPSアシスト飛行可能な機体重量200g未満のクワッド。
そんな、ほぼ自作ドローン初心者に近い僕が作ってみて思った注意点をまとめる。
今後も色々注意点がでると思うので追記するかも。

なので、この記事は250や450サイズのクワッドやヘキサを作る方には何も意味がない内容
かもしれないのでそんな方は読まなくてよいかも。



ってことで、フライトコントローラはGPSアシスト飛行機能が必要なのでCC3D revolution
を使う事になる。(たまたま僕がCC3Dを選んだだけだけど)
だが、ここで機体重量の制限=200g未満って事を思い出さないといけない。
必然的に機体サイズは150サイズ前後を選択するしかないんだけどフルサイズの大きさの
CC3D revolutionを搭載すると重量も大きくなるが場所もとってジャマ!!

なので、僕はCC3D Revolution miniを選択した。
CC3D Revolution miniはフル機能のCC3D revolutionからOPLink機能を外し小型軽量化
されているのでケース付きで5g程度と軽い。

なので、好きな方を選択すればよいかも。

※LibrePilotのフォーラムで指摘されているけど、オリジナルはRevolutionとよばれ
 中国メーカーのクローン品(オープンハードウェアなのでパクリではない)は
 CC3D Revolutionと商品名をつけているらしい。
 でもオリジナル品ってほぼ手に入らないし高価なので皆さんクローンを使ってるみたい。
 もちろん僕もだけど。

組み立てでの注意点

やはり重量に気をつかう必要がある。
中継コネクターはムダに重量増加する原因なのでハンダ付けしてケーブルを接続する。
また、ケーブルの重量もバカにならないので可能な限り短くする。
(これは後述するがノイズ対策にもなる。)

DSCN1685

ナイロン結束バンドも細くて軽いものを使用する。
またはテープで固定する。

FPV用カメラや受信機、AVトランスミッターなど

これも重量最優先。
あとで1g以下の減量で苦しんでしまう。

僕の失敗は、FPVカメラを250クラス用のものを選択し大きすぎて搭載できなかった事と
受信機が重くてGPSアンテナの種類などを重量制限で簡単に変えられなかったこと。

結局今は、
FPVカメラ:Eachine 700TVL 1/3 CMOS 2.6mm Lens 148 Degree Mini Camera
受信機:HITEC MINIMA互換5CHパークフライト用小型受信機
を搭載している。

バッテリーも重量に大きく影響するけど飛行時間をなるべく長くしたいので
Compact Zippy 3S 11.1V 850mAh 25C-35Cを載せている。

とうぜん、500mAhのものや7.2Vを選択すれば重量で成約されていた他の部品の選択肢が
広がるので飛行時間と相談してきめるといいかも。

_DSC4161

組立完了してセンサー調整での注意点

そうそう、CC3DをつかってるんだけどOpenPilotGCSをつかわない。
僕はLibrePilotGCSをつかっている。
なぜかというと、後述するけどLibrePilotはどんどん開発が進められていて将来性がありそう
ていうのと外部電子コンパス対応だから。

そして、GPSアシスト飛行を小さな機体で実現するには外部電子コンパスを接続しないと
ほぼムリなので最新版のLibrePilotGCSをここのページを読みながら入れる。
日頃つかわないCUIな操作だけど簡単なので開発中の最新版を入れなきゃダメ。

今現在リリース版がバージョン15.09だけど、このバージョンでは外部コンパスが使えない。


 

そして調整だけど重要な項目は3つかな

  • Home Locationの設定
  • 気圧計の温度キャリブレーション
  • 電子コンパスのキャリブレーション

これ以外は、ここのページを見ながら作業すれば問題なく出来る。


 

まず、Home Locationですが
これは飛行場所がいいのかもしれないけど自宅で問題ない。
GoogleMapで自宅を探し緯度経度を入力する。
入力する場所はSytemタブにある。

SafariScreenSnapz002
そして、目玉アイコンをクリックしてこんな感じでチェックを入れる。

Parallels DesktopScreenSnapz014

そして、Settingの中のHomeLocationを開き緯度経度を数値(角度で入れる)

Parallels DesktopScreenSnapz015

そしてAltitude(高度)なんだけど、これは海抜じゃない。ここのページを参考にして
ここで自宅の緯度経度を入力しメートル値の結果を入力する。

そして忘れずに赤矢印アイコンをクリックして保存する。


 

気圧計の温度キャリブレーションは、普通にUSBケーブルをつないだりバッテリーを
つないで実施しても途中で温度上昇の傾斜が規定値以下になりエラーで終了する。

なので、機体をビニール袋に入れて冷蔵庫で20〜30分程度冷やして部屋にもどして
USBを接続して実施するとうまくいく。バッテリーもつなぐと完璧。

バッテリーもつなぐと高温状態までキャリブレーションできるので高度維持飛行時の
安定性もよくなる。

_DSC4178

数十分でキャリブレーションは終わるので終了後にsaveする。


 

コンパスキャリブレーションの前に外部コンパスの方向が正しいのか確認する。
人間は地表に法線方向にたっているので感覚的には地球の接線方向で方位を考える。

でも、電子コンパスは磁束密度によって素直に数値をはき出すので人間の感覚と違う。
つまり、人間が北だと思っている方向は宇宙の方向を向いていて電子コンパスの示す
北とは異なる。

ってことで、こんな感じかな。

veiw

赤い2点鎖線が人間が思っている北の方向。
実線の矢印がホントの北の方向。

なので、電子コンパスの出力を機体を傾けてピークになるかを確認必要ですって
マニュアルにも書いてあるんですね。


 

難関の電子コンパスキャブレーション。

これは、たぶんCC3D revolutionに搭載されている電子コンパスをつかうと正常に完了
しなくて苦しむと思う。
GPSアシストモードでは電子コンパス情報もつかって機体姿勢を判断しているので
ギリギリ正常状態の場合はこんな感じでグダグダに機体姿勢を誤検知する。
(GPS補足状態と電子コンパスの状態でおかしくなる)

結論から言うと、CC3D revolutionに搭載されている電子コンパスは使えない。
理由は、機体サイズが小さいためバッテリーからモータまでの種々のケーブルから距離を
とれないために通電しているとノイズが乗ってしまい正常な出力にならない。

仮にモータが回っていないときに正常であってもモーターが回るとダメになる。

Parallels DesktopScreenSnapz046

上のグラフのようにCC3D revolutionに搭載されている電子コンパス(Mag Sensor)は
モータが回転すると大きく出力が変化し異常な状態になる。
しかし、外部コンパス(Aux Mag Sensor)は微少な変化はするがほぼ変化していない。
つまり、このような状態でCC3D revolutionに搭載されている電子コンパスをつかい
GPSアシスト飛行を行うと離陸のためにモータを回転した途端機体姿勢を誤判断して
後や横など予想外の方向に機体が飛んでしまう。(僕の実体験。ムッチャ焦った!!)

なので、250クラスの機体でもCC3D revolutionに搭載の電子コンパスをがんばって
つかっていると飛行中にモータ回転数を上げた途端に機体が傾いて予想外の方向に飛び
当て舵でなんとか姿勢を保つような状態になると思われる。

なので、外部電子コンパスを接続する事がお薦めと判断。

外部電子コンパスの接続方法もLibrePilotのサイトにあるのでここのページを見て
接続すると簡単。

僕はこんな感じで接続している。

cc3drevominin-cable3

あ、僕はGPS受信機としてBN-880を載せていて搭載している電子コンパスを
外部電子コンパスとして接続してます。
理由は、重量が軽く小さくて電子コンパス搭載のN8MなGPS受信機だからです。
(大きな機体だったら、他にも沢山選択肢があるのでこだわる必要はない)
DJI方式のGPS受信機接続も可能になっているから、そちらでもいいかも。

また、モータ回転時のノイズ低減のためにケーブルをツイストすることとなるべく短くする
ことも同時に行っています。
また、CC3D Revolution miniの裏面に銅テープを貼り付けGNDに接続して基板への
ノイズの影響を少なくしています。

_DSC4157

当然、BN-880は高い位置に持ち上げてバッテリーケーブルからのノイズ対策もしている。
そのための部品は3Dプリンターで造形。

プロペラを外しモータを全速で回してもMAGが緑色のままであればキャリブレーション
も実際の飛行時もOKって事になる。

_DSC4159

詳細は、ここのページを読むと手順や考え方がわかる。
記載されているように自宅のパソコンのそばや家具などのそばでキャリブレーションしても
ムダで、飛行場所で再度キャリブレーションすることになる。

だって、パソコンの近くは磁場あるし家具には磁性体の金属が締結部品でついてるしね
それらに影響されてまともなキャリブレーションできないもんね。

広くて金属が近所にない場所(つまりは飛行場所かな)でキャリブレーションすべき。
キャブレーションが正常にできていないと機体姿勢を誤認識して意味がわからない方向に
機体が向かっちゃいます。


 

ってことで、小さな機体でGPSアシスト飛行をしないならば組み立て調整飛行は簡単。
GPSアシスト飛行をしようとすると、モータ駆動時のノイズで電子コンパスが誤動作するので
外部電子コンパス接続しないとダメってことですね。
あ、もちろん法律上はおもちゃとして取り扱われる200g未満の機体重量にすることも
大事ですね。

その為にはLibrePilotGCSも開発中の最新版にしOSDもソースコード修正が必要です。

ホント、200g未満が250g未満でもいいので甘くして欲しいっす。

コメント

  1. John Smyth より:

    素晴らしい記事です。今後の参考にさせていただきます。
    私も開発版を導入に挑戦しましたが、あえなく撃沈しました。

    今のところTarot280とRobocat270のフレームを使いなんとかコンパスのエラーは回避出来ていますが、ひーちーさんが仰る通り外部コンパスの使用は必須と思います。

    John Smyth

    • ひーちー より:

      Johnさん、はじめまして。

      Johnさんの機体と正反対な小さくて軽い機体をつかい
      機能は同じものを載せようとしているので悪戦苦闘中です。

      コンパイルは難しいですよね。
      僕も、フォーラムを読みまくってマニュアルを読みながらなんとかって感じです。
      LibrePilotのフォーラムで日本人の方ってあまり見かけないですよね。
      日本人のソフトに詳しい方がメンバーでいらっしゃればいいんですけど。

      johnさんの記事を読んで250よりもサイズが大きいとコンパスエラー回避
      できる事をあらためて知り、ノイズ対策は発生源から距離を離すことが
      一番の対策なんだなって思いました。

      今後もよろしくお願いします。

      • John Smyth より:

        ひーちーさん、

        MAGには本当に泣かされました。
        今はなんとか回避出来てフライトを楽しんでいます。

        コンパイル、成功しました。
        失敗の原因はアカウントユーザー名にスペースが入っていることでした。
        これで私もBN-880使って外部コンパスを使えます。

        OSDのソース修正もしたいのですが、ひーちーさんの記事を読んでも???なので諦めます。

        • ひーちー より:

          コンパイル成功おめでとうございます。
          数日おきに要望やバグフィックスがマージされ
          変更されているのでOSDの書き換えを追従するのは
          厳しいです。
          私のOSDのソース書き換えはフォーラムにも
          情報がないので勝手に解釈して修正しているので
          本来の方法じゃないかもしれません。

          外部コンパス仲間が増えて嬉しいです。

          追記)OSD書き換えの記事に誤記があったので
             修正しました。

タイトルとURLをコピーしました