Multiwii PROにBluetoothで接続する

MultiwiiのPIDのチューニングとかGPSちゃんと拾えてるかとか、PCを接続しないとわからないのはとても不便。

Multiwii にはそのためにBluetoothで接続するポートがアサインされている。

Multiwii PROだとシリアルで接続できる。

まず、Hobbykingでこれを買う。

42845

 

 

そんだら、こんなかんじで接続する。

 

IMG_8748

 

あとは、AndroidでMultiwii EZ-GUIで接続すればOK。PASSCodeは1234だよ。

なかなか便利。donateしてあげて。

マルチコプターの制御をiPhoneでやることにした

RedparkのiPhoneのDockをシリアルに変換できるボードを買った。

Redpark – Console Cable – L2-RJ45V

この製品を発見したので、windows機を飛ばそうと思ってたのだけど、iPhoneを飛ばすことにした。

ArduinoのMultiwiiボードをモーターの制御だけに使うことにする。

iPhoneのジャイロと加速度センサーと電子コンパスとGPSで姿勢制御させる。そんでモーターの情報だけArduinoにシリアルで送信してモーターを回す。

PIDのコードはそんなにむつかしくないので、CoreMotionから姿勢をとって、目標の姿勢に向かう制御を適当に書いてみた。

その結果がこれ。

 

これ別に自分で振り回してるわけじゃないんだ。かってに振り回されちゃうわけ。

プロペラの推力の応答性が悪いから発振してしまう。

これはあかん。ジャイロをみて、角速度も制御しないといけないぽい

 

 

チッコイMultiwiiも買った

ちっこいとなんか取り回しやすいかなーとおもって、小さいMultiwiiボードも買った。

 

multiwii

MWC MultiWii SE V3.0 フライトコントロールボード ミニ飛行機用標準タイプ

 

  • ATMEGA328P
  • MPU6050デジタル3軸ジャイロスコープと3軸加速度センサー
  • BMP085デジタル気圧センサー
  • HMC5883L三軸磁気センサー
  • デュアル·チャネル·パワー·レギュレータ、3.3V/5V 最大電流150mA/500mA
  • デュアル·チャネル·パワーインジケータLED、3.3V red/5V緑
  • 高輝度ステータスインジケータ青色LED
  • 特別I2CレベルはICへ。
  • FTDIインタフェース、ダイオード保護と500mAの電流制限ヒューズ

 

だそうです。

こいつでも飛ばせそうよ。

iPhoneをフライトコントローラーにするのはこいつでやる予定。

よりイカしたコードでマルチコプターを飛ばすには

僕のスキルでやる場合

1.Multiwiiのソースを読んで、そこに位置推定を組み込む

2.Multiwiiはモータの制御とRCデータのリードだけ、データを全部Androidに送ってすべての制御をAndroidでやる

の2つの方法がある気がします。

これはAndroidフラグなのでは無いかと思う。JAVAがいやだ。

NAZAの位置推定について

MultiwiiとNAZAを比較するとやはりNAZAは別次元で安定している。

これは以前述べたとおりで、GPSだけで位置を推定しているとは思えない動きをする。

そんなわけで、少し加速度とかジャイロから位置を推定するアルゴリズムについて調べてた。

加速度センサによる移動体の自己位置検出に関する研究

やはりある。AR.Drone2.0もカルマンフィルタを用いた位置推定をしてる

 

僕がMultiwiiのソースをちらりと読む感じ位置の推定は行っていないように思う。(チラリとしかみてないから自信ないよ!)

もしそうならカルマンフィルタなりを実装するとNAZAバリに安定した飛行ができるかもしれない。

それやりたいやりたい。もっと小さいマルチコプターにもきっと応用できる。半導体パワーとソフトウェアのエンジニアリングが必要

プロペラとBECを購入

MultiWii用にカーボンのプロペラとBECを買った。

カーボンのプロペラは別に必要無いんだけど、かっこいいかなーと。

つけてみて回してみた。カーボンの破壊力がすごくて、とても恐ろしい。相当安定した機体じゃないとこんなもん怖くて飛ばせない。

そんなわけで、ビビってお蔵入り

 10×3.8E Multistar Carbon Fiber Propellers L/H and R/H Rotation with DJI Fitting (1 pair)

45039

 

 

BECは今まではMultiwiiの電源にeneloopモバイルブースターを使っていて、そいつを一緒に飛ばしてた。重いからBECがほしい所。BECはただ単に12Vを5Vに変圧するスイッチング電源。歴史的な経緯からBEC(バッテリーを一個いらなくする回路)と呼ばれているらしい。

このBECは入力が5.5v〜23vで出力はジャンパで5vか6vを選べる。

出力側にはいい感じのコネクタが付いているからそのままMultiwiiに挿せるよ。

 

TURNIGY 3A UBEC w/ Noise Reduction

TR-UBEC-3A

 

 

MultiWii PROの安定性がちょいちょい上がってきた

先週から引き続き、Multiwii PROのボードの設定を頑張ってる。

2.3に変更してからちゃんとキャリブレーションして、少しコントロールのゲインを落としたらわりと飛ぶようになってきた

でも、WinGUIを接続してGPSの精度を確認していると相当フラフラしている。これでは多分GPS HOLDとか無理っぽい。

その状態のマウントはこんな感じ。

IMG_8595

 

NAZAとか他の人をみても、モーターから離した位置にGPSをおいてる。

離した所にGPSを置くのが良いのかもしれない仮説から、レゴで適当にジグを作る。

IMG_8619

かなり精度は向上した。GPS HOLDでもそこそこ飛ぶ感じ。まだ全然NAZAのようには飛ばないけど、良くなった。

GPSは上に付けるの意味ある!

なんとか飛ばせそう。

NAZAの性能

Multiwii PROのMultiwiiのバージョンを2.3にあげてみた。

このへんの記事を参考にするといいかもしれない

 

最初GPSが発動しなかったけど、

Once your MTK GPS is configured, you can uncomment the INIT GPS line and just define the NMEA GPS line. People report gps not working if the INIT_MTK line is left enabled.

とあるように、INIT GPSをコメントアウトしてNMEA GPSをdefineしたら動いたっぽい。WinGUI上ではLatLonとれてる。

でも、Multiwiiの青いLEDが2-3秒に一回ブリンクしている。これはACCとかMAGがキャリブレーションできてないと光るっぽいのだけど、キャリブレーションしても点灯にならない。もう少し調べる必要があるかもしれない。

このイマイチコンフィグが決まってないMultiwiiとNAZAの比較動画。Multiwiiは結構集中してコントロールしないとどっか言っちゃうし、上手く飛ばせない。

それに対してNAZAは手放しで大丈夫。位置も完璧にキープする。NAZAはマジ凄い。どういう制御をしているのだろう。機器の装備的には大差無いはずだから、ソフトウェアが上手く動けばNAZAの用に安定すると思うのだけど。

Multiwiiがちゃんとコンフィグされているか調査!

 

Multiwii2.2のフライトモード

Multiwiiのドキュメントからオレオレ解釈。あっているかどうかしらん

  • ACRO  Multiwiiのデフォルトのモード。ジャイロのみで制御する。運動性は高いけど、不安定なモード。アクロバット用
  • ANGLE  PIDやトリム、ジャイロ等がちゃんと調整されていれば安定するモード
  • HORIZON ACROモードとANGLEモードのミックス。スティック動作がなければANGLEモードの挙動。大きくスティック入力があればACROモードのようになる。

 

  • BARO  気圧計を使った高度維持モード。スティック入力がなければ高度を維持しようとする
  • MAG  ヘリの向きをロックするモード。向きを維持しようとする。
  • HEADFREE  ヘリの向きがどうなっても、プロポの操作は変わらないモード。NAZAでいうIOCモード
  • HEADADJ  HEADFREEの時の向きを決めるアクション

 

  • GPS  GPSモードではMAGモードは無視される
  • GPS HOME  コンパスとGPSを使ってARMされた場所へ帰る
  • GPS HOLD  可能ならGPSを使って現在の位置を保持しようとする

 

以上のモードからするとNAZAのGPSモードのような適当にGPSが補正してくれるようなモードはないような気がする。

NAZAとMultiwiiを比べるとNAZAが圧倒的に安定感がある。今のところMultiwiiは手放しは無理。Multiwiiはナノスパイダー ととても良く似た動きをする。