2013年6月28日金曜日

クアッドコプターの驚異的な運動能力

スイス連邦工科大学 ETHのフライングマシーンアリーナで知られるRaffaello D'Andrea氏のTEDでの講演のビデオが公開されていました。

クアッドコプターで室内でボールを打ち合ったり、クアッドコプターの上に棒を立ててバランスをとったりしているビデオがYoutubeで公開されていますが、そのグループをまとめていらっしゃる方です。フライングマシーンアリーナのビデオはこちらにまとまっています。
http://www.flyingmachinearena.org/videos/

室内でクアッドコプターの位置の検出し制御するために、カメラとマーカーを使ったモーションキャプチャーシステムを使っています。この講演のためにTED会場にアリーナを設置しています。

今まで見たことあるもの、見たことがないものまで見事にデモされていらっしゃいます。編集されて15分強のビデオですがあっという間に見終えてしました。


2013年6月14日金曜日

HobbyKing Pocket Quad 続き

USBからの書き込みができなくなっていたHobbyKing Pocket Quad。Windowsドライバを削除、再インストールなどしてもスケッチのアップロードができない状態。USBASPからの書き込み、Bootloader書き込みまでもできたのですが、USB COMポートが認識されない、MultiWii GUIと通信できない状態になっていました。

追加の在庫が入荷して発注した2機目が届きました。今度のはいきなりUSBからスケッチがアップロードできない。MultiWii GUIとは正しく通信できているのですが、アップロードがなにやらタイムアウトになります。

RCGroupsのスレッドに似たような症状の人がいて参考になりました。結局Leonard用のWindowsドライバがうまく動いていない。Arduino IDEからアップロードする際リセットがかけられUSB COMポートが再認識されるのに時間がかかりすぎてタイムアウトしている。仮想PCのWindowsでクリーンインストールして書き込むという情けない方法で解決。手持ちのVMWare上のWindowsイメージから書き込めました。ついでに最初のやつのほうも問題なく書き込めました。32U4 Arduino面倒ですね。

私はFrSkyの4ch受信機を使っていますが、USB接続する際は受信機をはずしておかないと給電が足りないのかうまく書き込み、シリアル通信ができません。

Cesco氏が修正された8kHz版のv2.2を書き込み。今度は電源ONではモーターは回らずうまく飛びました。今度はモーターは平輪ゴムを短く切ったものをはさんで固定。ひとつのモーターが過熱するので一号機からのものと交換。


しばらく飛ばしてみなしたがどうにも振動が多い。音がガラガラとにごっているしACC/ANGLEモードも飛ばすたびにずれます。ジグを作ってプロペラのバランス取り。全部のペラの重い側をしっかりサンディングした結果やっと静かに飛ぶようになりました。
ANGLEモードでもきれいに安定し、室内であれば手放しで2-30秒近くで浮遊させられます。


1フライト5分強程度。結果電池は4組手持ちになったので居間でソファーに座ってしつこく飛ばせます。ぶつけまくっていますがまだペラは折っていません。このペラはGEMFAN製のようで、代えも見つけて発注しましたが無駄になりそう。LadyBirdのモーターのほうがよいというのでそれも注文済み。

2013年5月20日月曜日

HobbyKing Pocket Quad

HobbyKingから出てきたPocket Quadを購入。ブラシモーター 1SのMultiWiiキットです。

基板がそのままフレームになっているマイクロクアッドはTaobaoにもいくつか出ていました。HobbyKingからのは32U4 MPUとMPU6050が載った基板にDSM2互換シリアル受信機、モーター、ペラ、1S 250mAh電池2個とUSB充電器がセットになっています。

重量はほぼ記載どおり、全備重量30gほどになります。



基板には通常の受信機相当の端子が出ています。CRIUSの基板のようにTHR、VCC、GNDから並んでいます。FrskyのV8R4受信機の不要なピンをはずして直接配線。モーターは弾性接着剤で固定して、すぐに組み立てられます。ペラは楽にシャフトに差し込める。モーターのシャフト径は0.8mmほどのようで他のトイ系クアッドのものとは違うため、スペアのペラが手に入れにくい。

モーターはESC無しでFETを直接駆動するようになっています。実はMultiWiiではその設定もサポートしていたようです。(LadyBirdに積んだ人がいるらしい。)

スケッチは通常のクアッドでFrsky CPPMを使用する設定以外に、センサーはMPU6050のブレイクアウトボードで向きも合っていました。
#define GY_521

あとこれを生かしておきます。
#define EXT_MOTOR_RANGE


で、書き込めば大丈夫。Arduno Leonardなのでドライバが違うため、WindowsにUSBで接続後、Arduinoディレクトリを指定してドライバを更新します。部屋の中で飛ばしてみましたが、デフォルトのPIDのままでやや敏感ながら普通に飛んでしまいました。パワーは十分。数分飛ばしてもモーターは熱を持っていません。



この設定では電池接続後にすぐにモーターが回り始めてしまいます。ちょっとスケッチの変更がいるようなのですが、その後書き換えがうまくいかず、リセットをかけようとしてさらにおかしくなりUSBでは認識しなくなったので終了。ISPからの書き込み方を調べています。
MultiWiiの設定がわかる人ならすぐに飛ばせると思います。USB要らないから普通のATmega 328を積んでいたほうが私にはよかったです。



2013年5月11日土曜日

MultiWii GPS チューニングメモ (仮)

どうもちゃんとわかっていないMultiWiiのGPSパラメータのチューニングをまとめてみます。



MultiWiiのGPSまわりはArduCopterから移植されたようですが、資料が貧弱。r33-documentation.pdfが唯一といっていい文書です。何回読んでもPIDパラメータの役割がよくわかりません。

項目は以下のとおり。

Position hold PI contoller
POSHOLD_P
POSHOLD_I

PID Poshold rate control
POSHOLD_RATE_P
POSHOLD_RATE_I
POSHOLD_RATE_D

RTH and Navigation
NAV_P
NAV_I
NAV_D

この文書の最後にJason Short氏作のArduCopterのPIDチューニングシミュレータが参考になるよとあります。リンク先のDYIDroneサイトのBlogはすでにリンクが切れていてうまく動作していません。このシミュレータは今ではArduCopterの様々な機能を試せる大規模なものになっています。(私のPCの画面に収まりません。。。)
元のBlogで紹介されている開発中のものと思われるものがArduCopterのプロジェクトページにありました。ダウンロードして動かしてみます。(うまくリンクできないのでこちらにコピーさせてもらいました。Flashがインストールされている環境ならブラウザ内で起動するかな?)



このシミュレータの中のLoiterはPOSHOLDと読み替えるとポジションホールドのPOSHOLD_PとPOSHOLD_RATEのP、I、Dを変更し、風とマルチコプター水平方向の移動速度を変化させながらその収束、発散の様子を画面で確認できるというわけです。
これで試した値をそのまま機体に使用できるわけではないですが、なんとなくその影響が理解できます。これは言葉で説明しにくい、文章を書くと読んでもわかりにくい。



今日は久しぶりに広い飛行場でグライダーを飛ばせました。強風ながら強いサーマルはあり。脚の遅い機体なのでやや突っ込ませぎみに飛ばしましたが、午後3時過ぎなのに350mほどまで上げたら500m以上までうまくあがる。あとは上昇するところを探しながら10-20分遊べました。


2013年5月9日木曜日

ヤングブラッドの3D CP クアッド

しばらく前から開発されているらしいヤングブラッドの3D コレクティブピッチ クアッドコプターの新しいビデオが公開されていました。CPのマルチコプターとしては最初の製品になるのでしょうか。
H型のフレームで、こちらのページのスペックによるとシャフトとシャフトの間隔が490mm。(前後左右という意味か?) 4S 2600バッテリを使用。
ビデオではメトロノーム、ピルエットなど何種類かの3D演技が見られます。ちょっと重そうな感じ。
キャプチャーした画面をよく見るとH型フレームにヘリのテールロータのようなペラが4つをそれぞれサーボでピッチ操作しています。モーターは尾部に置きベルトをひねって左右のロータを回しているように見えます。おそらく前のロータも延長シャフトで前部にもプーリを置いて同じように駆動しているのではないかと想像されます。つまりペラはすべて同期している。重心を合わせるためバッテリは前部に搭載されています。
制御基板は何を使っているのか記載はないですが、MultiWiiにもブランチがあったと思いますのでがんばればできるか?



2013年5月3日金曜日

EZ GUIでクアッドと散歩

Bluetoothが100m届くようになったのでEZ GUIで遊び始めています。一定の条件を備えたMultiWiiではEZ GUIのマップ上をタップしてホーム位置、ポジションホールド位置を設定できます。MultiWii 2.2 config.hの#define USE_MSP_WPを有効にすることでこの機能が使用できます。

この機能は直接シリアルでGPSを接続していないと使えません。I2C接続のGPSではGPS 接続用のサブArduino内にWPを持っているようで、これを更新する方法がまだ実現されていません。328pベースのArduinoではきついので2560ベースのCRIUS AIO 1.1に積み替えて設定。

EZ GUIのマップ画面はこんな感じ。自分(端末のGPS)の位置、Hとしてホーム位置、Pがポジションホールドの位置。機体の向き、位置、軌跡が表示されています。


地図上を長押しするとメニューが出るのでホームかポジションホールドをその場に設定します。たとえばポジションホールドの状態でその位置を変えると機体はそちらに向かいます。機体が遠くに行ってBluetooth通信が途切れてもホーム位置は近くなのでGTHをオンにすれば帰ってきます。


このメニューのFollow meチェックボックスを選択すると自分(端末)の位置をホームとポジションホールドの位置として定期的に設定されます。結果、機体は自分のところに戻ってくる。つまり自分が歩き回ると機体はそのまま付いてくるわけです。

EZ GUIはシリアル回りの拡張をした際にFrskyテレメトリでの接続が壊れていたようなので作者にお願いして修正してもらえました。ありがたや。お礼にDonateしようとしたのですが、PayPalは日本国外への対価のない送金は受け付けられなくなっています。作者のPayPalアドレス宛に直接送金しました。

2013年4月14日日曜日

Bluetooth モジュール

MultiWiiをAndroidに接続するのに便利なBluetoothアダプタのちょっとまとめ。到達距離は3-5mといったところです。回路パターンになっているアンテナをカットして別につけると改善できます。

この手のアダプタは3.3Vデバイスで、5Vのレギュレータが載ったアダプタに載せられて販売されていることが多いです。シリアルポートに接続して使います。Bluetoothにはスレーブ、マスターモードで動作する違いがあり、シリアル側のスピードも設定できます。

MultiWiiで使うためには115200bpsにあわせて使いたいですが、チップの違いがあるようで設定方法は何種類かあるようです。スレーブモード用のものを購入しても、シリアル側の通信速度の工場出荷値は9600bpsや38400bpsとなっており、設定変更が面倒です。MultiWiiですぐに使えるようにシリアル側が115200bpsに設定されたものがRCTimerで$8ほどで販売されています。が、これはドキュメントが無い。DEALEXTREMEで$8程度で販売されているものはマニュアルがリンクされています。

PCから設定するにはFTDIアダプタなどUSBシリアルアダプタに接続してATコマンドで行います。よくあるのは、PIO11ピンをHIGHにして電源を入れるとATコマンドモードには入れるものです。PIO11と3.3Vを抵抗をはさんでつなぐわけです。

たとえば、シリアル側の通信速度の変更するためにはPIO11ピンをHIGHにしてPCにUSBシリアルで接続します。PC側のターミナルソフトで9600bpsか38400bpsに設定してAT[Enter]をタイプしてOKが帰ってくれば、現在の設定されている通信速度で接続しており、設定モードに入れているわけです。マニュアルにしたがって通信速度の設定コマンド(例:AT+UART=115200,0,0[Enter])をタイプします。これでOKが帰ってくるのでそれでおしまいです。プルアップをはずして電源を入れなおすと通常の通信モードになります。

動作確認するにはAndroidのBluetermとかBluetooth側の通信ソフトがあると便利。Android側でこのBluetoothアダプタをバインドし、Bluetermでこのアダプタを選択します。お互いにタイプしたものが相手側に届けば正しく設定されているわけです。

MultiWiiに接続するには制御基板のシリアルと電源に接続するだけ。ソフトウェアの設定は不要。FTDIでのシリアル接続の替わりに使えます。ATmega 328のMultiWii制御基板でUSBポートが付いているタイプのはそのFTDIなどをとめないと使えないものもあります。シリアルポートがひとつしかないわけですから。

AndroidのMultiWii設定プログラム、EZ GUIやAndroid MultiWii Configurationで使えます。PCと接続して使うには、WinGUIがよいです。東芝のBluetoothスタックでないとProcessing, JavaベースのGUIは安定してつながらないようです。
ちなみにAndroidも機種によってはBluetoothがだめです。手持ちの中ではHuawei Ascend P1(=EMOBILE GS03)がどうにも不安定。Pocket WiFi S II (S41HW)とかは大丈夫だったのですが。

通常のBluetoothの到達距離は3-5mといったところです。Bluetoothアダプタのアンテナに手を加えると改善できます。回路パターンのアンテナをカットして、代わりに長さが波長の1/4(λ/4)、3cmほどのワイヤを半田付けするだけです。Galaxy Nexusで試したところ100mは十分届いてしまいます。クワッドならあまり遠くまで飛ばさないのでこれでテレメトリは十分。EZ GUIのマップ上で自分と機体の位置もずっと確認できます。GPSやらBAROなんかのPID設定もつなぎっぱなしなのでとても楽にできました。