Dropbox

SHEILD Portableに外部アンテナを取り付けた #BebopDrone

Parrot Bebopドローンは手持ちのスマートフォンやタブレットで操縦できる事が手軽でなところです。BebopとスマートフォンはWiFiで接続するわけですが、これにはやや問題があります。街の中には多くのWiFi電波が飛び交っていますし、携帯端末はWiFi電波を遠くまで飛ばすことはあまり考えられていません。少しでも高く、遠く安全に飛ばすために少しでもWiFi電波の飛びを良くしようと外部アンテナを試すことにしました。

WiFiAntenna

購入したのは、こんなアンテナと内部に接続するためのケーブルです。中国ではtaobao.comという有名通販サイトで、こういった部品を簡単に適正価格で購入することが出来ます。

SheildInside

SHEILD Portableの分解はガジェットオタクにはお馴染みのiFixitのサイトを参考にしました。このサイトには記述がありませんが、蓋をあけるために外すネジの数は合計で7本です。開けてみると3本のアンテナ用の同軸ケーブルが見つかります。テストしてみた結果、写真で下の方にあるのがWiFiアンテナでした。上の2つの左側(グレー)がBluetoothで右側(黒)はGPSのようでした。内部にはアンテナ用に新たなコネクターを埋める余裕はないので同軸ケーブルだけを引き出すことにしました。

AntennaClip

アンテナの取り付けは、ごくごく簡単にクリップでディスプレイ横に止めることにしました。ちょっとクリップの力が強いのですが、液晶にはかかっていないので大丈夫です。

SheildExtAntenna

全体像は、なんとなく様になっています。簡単に距離テストをマンションの庭で行いました。混み合っている2.4GHzではオリジナルとほとんど到達距離は変わらず100mにわずかに届かない感じ。5GHz帯は理論的には2.4GHzより距離が出ないはずですが、空いているためか良い結果になりました。外部アンテナなしのオリジナル状態で110m前後、外部アンテナ130m近くまで伸びました。まぁ、苦労した割にはたいしたことはありません。むしろ外部に細い同軸ケーブルを引き出している分、故障の危険性が増しています。オリジナルよりは良いので、しばらくはこの状態で使います。次はバッテリー駆動できるWiFi Extnederに挑戦したいです。

Parrotの公式サイトにもWiFiに関する詳細な情報がありますので参考になります。

Parrot Bebopの修理2 #BebopDrone

先日、柳の枝にぶつかりBebopドローンを墜落させてしまいました。上の画像はその時のものです。水辺で約10mの高さから墜落し、運良く橋の上に落ちましたが、プロペラが一枚は完全に破損。モーターのシャフトも曲がってしまいました。

BebopMotor1

シャフトの曲がり具合は目で見てはっきり分かるような状態です。

BebopMotor2

モーターはコイル部分と磁石+シャフト部分が分解できます。モーターまるごと交換するとかなりな金額になりますが、磁石+シャフトは手頃な値段です。全とっかえすることにします。小さなクリップが外しにくく無くしやすいのですが、昔取った杵柄で無事に外しました。数十年前は仕事でよくこんなことしていました。

BebopMotor3

一番ひどいモーターはマウント用のアルミの足も少し曲がっています。ノギスで図ると0.3mmほど歪んでいます。とりあえず回りさえすれば何とかなると踏んで、このまま使ってみます。

BebopMotorShaft

Parrot中国ではパーツの直販はまだ行っていないようですが、ネット販売を行っている業者は複数みつかりました。適当なところに注文したところ3日ほどで到着。荷物はパロット中国からが届きました。どうもパロットへ注文を仲介しているだけのようです。

パーツを取り付けて、室内でテストしてみました。飛ばせるようにはなりましたが今ひとつ安定しません。一か所に留まろうとしているけど、少しフラフラしている感じです。

後ろ側2つのモーターを手で回すと、やや軽さにかける感じがします。野外飛行でも調子が悪いようならモーターの交換も検討しないといけないようです。

追記)
その後、屋外でテスト飛行を行うとビデオ画像が波打ったような状態になりました。海外のユーザーの間ではjello effectと呼ばれるものです。一応、飛行は可能ですが今ひとつ安定性にかけるのと同一の原因であると想像されますが、根本原因はよく分かりません。私の場合、結局モーターを全交換を行い、Bebopのフルリセットをかけて良くなりました。まだ、修復後あまり飛ばせていないので完全修復したのかどうかは良く分かりません。

VIRBTest

Parrot Bebopの飛行データをビデオクリップに合成する方法を教えてもらいました。日本語と英語でまとめてみます。あくまでも私の環境に基づいた方法です。

I am going to explain my method to overlay Bebop’s flight data onto video file. This is the procedure for my equipments. There are some other variations to do this.

[ New Tool! ] (2015/04/05 update)

PUDファイルをGPXに変換する新しいツールが公表されました。We have new PUD to GPX converter tool.

Parrot Bebopの新しいフライトデータ変換ツール #BebopDrone New PUD converter tool

[ 参考サイト / Reference web site ]

PUDファイルをGPXファイルに変換する/Convert PUD file to GPXファイル
Geek Mag – Garmin Virb Edit: un logiciel de montage vidéo gratuit

BePadExp 変換プログラム/PUD converter

Garmin VIRB Editの紹介/Introduction to Garmin VIRB Edit
Geek Mag – Garmin Virb Edit: un logiciel de montage vidéo gratuit

[ 概要 / Overview ]

  • BebopはParrot Drone Academyに送信するためのフライトデータ(PUDファイル)を記録しています。
  • それを取り出してGPXというファイル形式に変更します。
  • Garmin VIRB Editというアプリケーションで動画とGPXファイルのデータを重ね合わせます。
  • Bebop records flight log file (PUD file) for Parrot Drone Academy.
  • We can pull it out from Bebop and convert it to GPX file.
  • Using Garmin VIRB Edit application to overlay GPX file data onto video file.

[ フライトログの取り出し – Pull out flight log data ]

フライトログファイルは拡張子pudが付いたファイルでBebop本体で記録され、FreeFlight3アプリケーションを経てParrotのDroneAcademyのサーバーにアップロードされます。アップロードされるとBebop本体とFreeFlight3からpudファイルは消されてしまいます。消される前にBebop本体からファイルを取り出す必要があります。FreeFlight3からのファイルの取り出しはroot化されたAndroid端末以外では不可能です。

Flight log file, extension .pud, is recorded by the Bebop and transmit to Parrot Drone Academy server via FreeFlight3 application. PUD file will be deleted from the Bebop and FreeFlight3 after uploading. We need to steal PUD file from the Bebop before the Bebop deletes it. We can not pul out PUD file from FreeFlight3 except rooted Android terminals.

BebopからのPUDファイルの取り出しにはFTPを使います。FTPの情報は以下の通りです。

We can use FTP to get PUD files from the Bebop.  The FTP information is as follows.

  • IP Address: 192.168.42.1
  • User: Anonymous (no password)
  • PUD file location: /internal_000/Bebop_Drone/academy/*

PCからBebopに接続してFTPクライアントを使いPUDファイルを取り出すことも出来ます。PUDファイルが消されるタイミングが良くわかっていないので、フライトの終了毎にAndroid端末からFTPを行いPUDファイルをコピーすることにしました。FolderSync Liteを使用しすると便利です。

蛇足ですがAndroid端末からMac OS XへのファイルコピーはAndroid File Transferが便利です。注) 私の環境の問題かも知れませんがFolderSyncで転送されたファイルがAndroid File Transferで見えなかったりします。その場合、Android上でrenameを行うと見えるようになります。

We can connect WiFi from PC to the Bebop and FTP get for PUD files. However we do not know when PUD files are erased on the Bebop. Therefore I decided to copy PUD files from the Bebop to Android device at the end of each flight. I am using Android application FolderSync Lite to do this.

This is just for your information. I use Mac OS X application Android File Transfer to copy files from Android device to Mac OS X. Note) Sometimes, I can not see files copied by Folder Sync on Android File Transfer. Renaming file names on Android, then file names become visible on Android File Transfer.

[ PUDファイルからGPXファイルへの変換 – Convert PUD file to GPX file ]

PUDフィルは拡張子が.pudもしくは.pud.tempです。最後にtempが付いているファイルはBebopがまだ記録中のファイルですが、それでも構いません。

変換にはBePadExpというWindowsアプリケーションを使用します。私はMac OS Xを使用していますが、これだけは仕方が無いのでParallels下のWindows 10 Technical Previewを使用してBePadExpを走らせています。使用法歩は極めて簡単です。PUDファイル(.pud.tempは.pudにリネームしておきます)を選択しExport GPXにチェックをした後、Exportボタンを押すだけです。

PUD files have extension .pud or .pud.temp. PUD file which has .temp means the Bebop was still recording on this file, but it does not matter. We can use .pud.temp files also.

I use BePadExp Windows application to convert PUD files to GPX files. I am using Mac OS X, so no way, I run BePadExp on Windows 10 Technical Preview under Parallels.  This is very easy to use. Just select PUD file (.pud.temp file needs to be renamed to .pud) and put check mark on Export GPX, then hit Export button. That’s all.

Mac OS X版のPUDファイル・コンバーターBebop PU Readerの作者も私へのメッセージでGPXファイルの変換も将来的にサポートしたいと言っていました。これが実現すれば全ての操作がMac OS Xで完結します。

Author of Mac OS X version of PUD file converter Bebop PU Reader told me, he wants to implement GPX converter on his program in the future. If it is implemented, all operations can be done on Mac OS X.

[ Garmin VIRB Editで動画とGPXデータを合成する / Overlay video file and GPX data using Garmin VIRB Edit ]

Reference: Garmin VIRB Editの紹介/Introduction to Garmin VIRB Edit
Geek Mag – Garmin Virb Edit: un logiciel de montage vidéo gratuit

上のリンクに実際の画面が多数ありますので参考にしてください。

There are many screen shots of VIRB Edit on above link, please refer them.

 

Garmin VIRB Editというフリーで公開されているツールを使用します。Windows版とMac OS X版の両方が公開されています。わたしはMac OS X版を使用しました。少し慣れが必要ですが処理の流れさえ掴めば難しくはありません。

  • Bebopで作成された動画ファイルをインポートする
  • 新規ビデオ作成を行う
  • インポートした動画ファイルを作成したビデオのワークエリアにドロップして追加
  • GPSの追加ボタンを押し、手動で選択、参照でGPXファイルを読み込みます
    動画ファイルとGPXファイルのファイル名にはタイムスタンプが含まれています、それが一致したものを使用します
  • GPSデータの内容を確認してGPSの追加ボタンを押します
  • 最下行の一番右のメーターアイコンをクリックしオーバーレイのテンプレートを選択します
  • 最下行の左から二番目のハサミアイコンをクリックしGPS同期ボタンを押します
  • 高度の変化などを頼りに動画とGPSデータを同期し、完了ボタンを押します
  • エクスポートボタンで動画を出力したら完成です

I use Garmin VIRB Edit to overlay GPX data to video file. Both Windows and Mac OS X versions are available and free for use. I am using Mac OS X version. It may take time to use this tool, but if you understand work flow of Garmin VIRB Edit, operation would not be difficult.

  • Import video file of the Bebop
  • Do ‘Create Video’
  • Drag and drop imported video file to your project
  • Press ‘Add GPS…’ button and ‘Manual Selection’, then load GPX file
    Both video file and GPX file have time stamp in their file name, you should use same time stamp in file name of video and GPX file
  • Confirm GPS data contents and press ‘Add GPS..’ button
  • Press ‘meter’ icon at bottom of the window and select overlay template
  • Press ‘scissors’ icon at bottom of the window and press  ‘GPS Sync…’
  • Synchronize video and GPS data
  • Press ‘Export’ button to export video

MotorStall

Parrot Bebop Droneを離陸させようとしたら、一度は全てのモーターが回転するもののエラーが表示されて停止してしまいす。電源入れた時も自己診断しているようですし、こういったエラー表示もなかなかちゃんとしていて技術フリークには堪らないものがあります。

時々、元気に回りだして飛ばせるのですが何時落ちるのかわかりません。また何度もテストしているうちにエラーの頻度も高くなってきました。

わたしのBebopはアメリカで購入したものなので中国で修理できるのかどうかParrot社の中国のサポートにメールで問い合わせをしました。アメリカで購入したものでも問題なく修理してくれるとの返事が数時間後に来ました。これで一安心です。

同時にネタとしてFaceBookのParrot Bebop Owners Groupにエラー画面とともに故障状況をレポートしたところ、沢山のアドバイスをもらいました。いくつかの経験事例を教えてもらい、コネクターの緩みを調べることを決断。Parrotのサポートにも分解してコネクターを調べるのは問題ないことを確認。ただし分解による新たな故障が発生した場合は保証外であるとのこと。

分解手順はYouTubeに上がっているので確認しておきます。前方のモーターのコネクターを調べるだけならさほど時間もかかりませんでした。Parrotの公式サイトにRepair Tutorialなんてページもあります。

2つのトルクススクリューを外します。
BebopScrew

フロント・キャノピーは両面テープで貼り付けられている(この事実も他のユーザーが教えてくれた)だけなので、平らなものでこじ開けます。
BebopScraper

無理せずゆっくりとこじ開けていると、そのうちぱっかりとキャノピーが外れます。
BebopNose

コネクター自体は緩んでいる様子はありません。とりあえずコネクターを外してみようとしたらグリーンのワイヤーが簡単に引き抜けてしまいました。
BebopBrokenGreenWire

ワイヤーの先端を見ても、ピンをコネクターから外して観察しても、接触があったのが不思議なくらいの状態です。まるでワイヤーの被覆を剥かずにカシメられていたような感じがします。
BebopBrokenWire BebopBrokenPin

ワイヤーの被覆を向いてピンにハンダ付けを行いました。修理のクオリティーについては、やや心配かも。一応、室内でのテストフライトは問題なく終了しました。
BebopConnectorFixed

Parrotのサポートにもお礼とともに写真を送付しておきました。

Parrot #BebopDrone の画像ファイルをPCから直接取得する

Bebopで撮影した画像ファイルはUSBケーブルを接続してPCに取り込むか、あるいはWiFiでAndroidもしくはiOS端末にFreeFlight3アプリケーションを使用して取り込みます。USBケーブルを使用するのも面倒ですし、端末に取り込んだファイルをPCに転送するのも手間がかかります。そこでPCからWiFiを使用してBebop本体の画像ファイルを直接取り込む方法を紹介します。

[ How to get mp4 and jpg files of Bebop by PC directly ]
– Power up Bebop
– Connect WiFi from PC to Bebop
– FTP to 192.168.42.1 as anonymous user (no password required)
– Get mp4 and jpg files under /internal_000/Bebop_Drone/media/
If you want to delete mp4 and jpg files, you should delete files under /internal_000/Bebop_Drone/thumb/ also.

– Bebopの電源を入れる
– PCからBebopにWiFi接続する
– FTPで192.168.42.1にAnonymousログインをする、パスワードは必要ない
– /internal_000/Bebop_Drone/media/ 下のmp4とjpgファイルをgetします

もしmp4とjpgファイルを削除する場合、/internal_000/Bebop_Drone/thumb/ 下のファイルも削除します。

Parrot Bebop Drone Academy PUDファイルの解析ツール #BebopDrone

PUDReader

以前、紹介したDrone Academyですが、そこに送信するデータはParrot Bebop Drone内に保管されています(どの時点で消えるとかは、まだ未検証->どうも FreeFlight3で「内蔵メモリー」というメニューを起動した時にアプリケーション側に取り込まれファイルが消されるようです)。それを取り出して解析する手法がWindows, Mac OS Xのブログラムとともにとあるブログで紹介されていました。フランス語ですが、何となくは分かります。

PUDファイルは飛行データがJSONで記述されているらしく、それを解析あるいはCSVで保管してくれるということです。

わたしはMac OS X版のBebop PUD Readerというプログラムを試してみました。

[ PUDファイルの取得 ]
Parrot Bebop Droneを起動しPCからWiFi接続しftpで192.168.42.1にAnonymousでログインします。/internal_000/Bebop_Drone/Academy/ の下に拡張子pudのファイルが見つかるのでPCにコピーします。

Androidに送信された(おそらく、Drone Academy未送信)PUDファイルは/data/data/com.parrot.freeflight3/files/academy/以下に存在しますがアクセスするにはルート権限が必要です。

[ PUDファイルのCSV変換 ]
先のBebop PUD Readerを起動してpudファイルを読み込むと最高高度と最高速度が表示されます。そのデータをCSVで保管すると上のキャプチャの様に飛行高度をグラフ化することも簡単に出来ます。GPS座標やスピード(三軸別々に数値化されている)など様々にデータが入っていますので今後のBebop PUD Readerの進化を見守りたいです。

PS. まだ最初のリリースから10数時間しか経過していないBebop PUD ReaderですがKMLファイルの出力がサポートされました。これでGoogle Earthなどに飛行経路をプロット出来るようになりました。

Parrot Bebopの操作アプリケーションであるFreeFlight3にDrone Academyへのアクセス機能があります。Parrotの過去のDroneと共通のユーザーコミュニティです。フライト情報をシェアし合うことに特に意味は感じませんでしたが、とりあえず登録しておきました。

自分のフライト情報が記録されるのが大きな利点であることに気づきました。これは是非とも登録しておくべきです。残念ながらフライト情報が送られるのはiOS版のFreeFlight3だけのようです。Android版も対応することを希望します。

DroneAcademy2 DroneAcademy1

GPSを掴んでいれば地図上に飛行ルートがプロットされます。高度や速度のグラフが残るので、ずいぶん高く飛ばした気がするけど実際には15mか、などと後から振り返ることが出来ます。データとしては本体もしくはFreeFlight3に記録されているはずですが、見るすべがありません。Drone Academyの中でのみ、これらの画面が確認できます。

追加情報

Academyに送信するデータはBebop本体内に当然存在します。それを取り出して飛行データをcsv化するツールが発表されました。フランス語のブログですが、何となくは分かります。実データで検証できたら記事にしたいと思います。

Parrot BebopのSHIELD Portableによる操縦感

Bebop_Shield

SHIELD Portableでガンガン飛ばしてみました。上の写真はコントローラーを手にしているところをカメラを下向きに調整して自撮りしてみたものです。本当はトリガーでjpg写真が撮れるはずだったのですが、何故かうまく行かず動画からの切り取り画像を載せました。スティックのセンターリングの問題があり、手を離せば何時も空中で止められるわけではありませんが、軽くスティックで当て舵操作をしていると、そのうちに止まるような気がします。

最初はスティック操作がモード2準拠(まとめの「コントローラーのモード」参照)であることを忘れて低空飛行で接地させてしまいました。それも直ぐに慣れてビュンビュンと飛び回らせることが出来ました。下の動画は低高度を高速で飛ばしていて、勢い余って木の枝にぶつかってしまったものです。

後から気づいたのですが設定画面にて機体の回転速度(ラダー操作)がかなりゆっくりになっていました。急激な旋回はラダーとピッチで行うので、それが回避動作の遅れにつながったと思われます。ヘリコプター的に進行方向をいきなり変更すれば良いのですが、高速飛行している時は頭が完全に飛行機を飛ばしているモードになっています。

旋回時にはエルロンとラダーを併用して、ややバンクをとって旋回させると見た目が格好が良いです。ところが撮影した画像はスタビライザーが働いて、まったくバンクしていることが分かりません。これはこれで、ちょっと残念な気もします。

SHIELD PortableとiPod touchの両方で飛ばしていますが、やはりiPod touchの傾きで機体を操作するのにはなかなか慣れません。かといってタッチパネルでのジョイスティック風操作(端末の傾きによらず、画面上に描画されたジョイスティックを操作する)はもっと難しいです。上海に戻ったらiPad miniも試してみたいと思います。

Parrot Bebop Drone撮影編

Bebop_and_oldBridgeBebop_Bottom
Bebop_Flying

ハドソン川沿いにある小さな公園に出かけてParrot Bebopの撮影をしてみました。風も穏やかで安定した飛行が出来ました。当日はiPod Touchでの操縦でした。適当な高度でホバリングさせておくとほとんど位置が変わりません。iPod Touchを地面に置いたまま長時間といっても電池が切れるまでの8分間ほどカメラで色々な角度から撮影できました。自律飛行が出来る機種だからこその一人撮影会です。

上の写真撮影の最後に思い立って、動画も撮りました。かなり大型のズームレンズを使用していたので移動しながらの撮影がブレブレになってしまいました。ちょうどタイミング良く画面を引いたところで電池切れによる自動着陸します。撮影開始からは最後まで操縦することなく安全に着陸しました。素晴らしいです。

せっかく景色の良い所で飛ばしたのでBebop搭載カメラの画像も載せておきます。欲張って長い間飛ばし過ぎたので動画としては冗長になってしまいました。

私にとってiPod touchでBebopを操作するのは、とにかく浮かせて置いて必要な分だけ少しづつ動かしていくようなイメージです。慣れてくるとそれなりに動かせるのですが、とっさの動作みたいなことが出来ません。やはりダイナミックな飛行を楽しむためには物理的なスティックが欲しいところです。Bebopのスティック操作をめぐる事情の説明と私の得た解答について説明します。

[ Skycontroller ]
Parrotの純正ソリューションです。単体では販売していないようです。最初からBebopとセットで購入する必要があります。大きなWiFiアンテナを備えているので電波の到達距離が伸びたり、ゴーグルを装着出来たりします。少し大きいことと値段が高いのが問題。また、未だアメリカでも販売されていないようです。 いつの間にかアメリカでも中国でも正式に販売され始めました。

[ iOSデバイス用ゲームコントローラー ]
iOS7からゲームコントローラーの規格が標準になりました。これでBebopが操縦できると良いのですが、今のところ実現はしていないです。Parrotの古い機種に対してはDrone Controlというアプリケーションで操作可能なようです。これがBebopに対応することを期待したいです。

ParrotはDroneを操作するためのSDKを公開しているので、こういったサードパーティ作成のアプリケーションも出てきます。ここのところは評価したいところですが、標準の操作アプリケーションであるFree Flight3がゲームコントローラーに対応してくれていても良いのにと思います。

[ NVIDIA SHIELD PORTABLE ]
これが唯一見つかったBebopで実績のある方法です。SHIELD TABと専用コントローラーでも大丈夫かも知れませんがSHIELD PORTABLEというのがコントローラーと小型Android端末が組み合わされておりソリューションとして完璧です。

ShieldPortable

どこにも詳細は書いてありませんが、Parrot純正のアプリケーションFree Flight3で何もしなくてもコントローラーが接続されていることを認識し左右のスティックで操縦出来るようになります。アプリケーションとしてコントローラーの存在を意識しているのは間違いなく、設定画面がコントローラーの有無で変わっています。

各キーとスクリーン上のタップを割り当てる機能があるので、使いやすいようにカスタマイズも可能です。Parrot ForumのNvidia Shield Flyingというスレッドにマップファイルも貼り付けられています。わたしはそのマップファイルを貰い、少しだけ修正を加えて使用しています。

電波の到達距離もiPhoneより遠くまで届くという報告もあがっています。

タブレットだけで操作する場合、手を離せば機体は一定の場所で静止します。スティックを利用する場合、この手を離すに相当する状態がないのでスティックが中央にあっても微妙にどちらかに動いていきます。物理的にスティックのセンターリングが完璧には出ないですし、トリムのような仕組みもないので仕方ないかもしれません。ソフトウェア的にスティックが中央で動いていないことを検知するような事は可能だとは思いますのでビタっと止まるように工夫して欲しいものです。自分でアプリケーションを作るならば、そこのところを工夫するでしょう。

スティック操作とタッチパネルによる飛行と、それぞれ利点があるように思います。しばらくは両方を試してみます。

SHEILD PORTABLEは出荷時にAndroid 4.2.xが搭載されていましたがシステムの更新により、4.4.2になりました。奇しくも私の初めてのKitKatデバイスとなりました。必要性はあまり無いですが日本語ロケールも完璧です。

Androidにもゲームコントローラーの標準があったと思いますが、他のAndroidデバイスとゲームコントローラーの組み合わせで同様にFree Flight3が使用できるのかどうかは良く分かりません。

追記) IPGEA、Moga Pro, PS3コントローラーとAndroidの組み合わせでBebopを操縦している例が見つかりました。セットアップに関しては詳しくは分かりませんが、ルート化が必要な記述が見受けられます。