2015.07.15
- 人×技術
Parrotのミニドローンを公式アプリ以外で操作してみる
はじめまして。時折、夢の中で舞空術で空を飛んでいるイシイです。最近良くも悪くも色々なところで話題となっているドローンを使ったコンテンツ制作を、これから複数回にわたってエントリーしていきたいと思います。
様々な種類のドローン
比較的廉価なものからそれなりのお値段のものまで様々なドローンが購入できるようになってきましたが、今回は産業用のドローンまでは視野に入れず、市販でも購入できるものから選ぼうと思います。 やや中型のものだと、DJIのPhantomやTeam BlackSheepのTBS DISCOVERY、小型のものになるとParrotのrolling-spiderやhubsanなどがありますが、今回は比較的廉価でありながら飛行性能が高いと評判の、Parrot社のRolling Spiderを使ってみることにしました。
ドローンを使ってやってみたいこと
今回準備するドローンを使って、大きく分けて以下のことをゴールにして取り組んでいきたいと思っています。
- 自動操縦
- ドローンを使ったミニコンテンツの制作
ドローンの操作
Parrot社からは、FreeFlight3という操縦用のアプリケーションが提供されていますが、操作したいドローンと1対1でしかつながらず、このアプリケーションでしか操作ができません。
そのため、まずはこの操作用アプリケーションを用いずに、任意のイベントでドローンを操縦させる方法を探ってみました。
Node.jsを使ってキーイベントで操作してみる
まずは公式の操縦アプリケーション以外で分かりやすく操作する方法として、自分のPCからキーイベントで操作させる方法から試してみることにしました。調べてみたところ、npmにいくつかのパッケージがありましたので、一番更新頻度の高いrolling-spiderというパッケージを使ってみます。 npmでパッケージインストール後に
/node_modules/rolling-spider/eg/keyboard.js
というサンプルが入っているので、他に必要なパッケージをインストールすることで、わりとすんなりキーイベントで操作できるようになりました。
npmのパッケージの仕組みを見てみる
Parrotのもう少し高価なAR.Drone 2.0などではWi-Fiを搭載していたりしますが、Rolling SpiderにはWi-Fiは搭載されていません。公式アプリケーションでの操作も同様ですが、今回のnpmのパッケージではRolling Spiderとの接続にはBLEが使われていて、操作イベント発生毎にnode.jsからドローン側のBlueToothにバッファ書き込みを行い、アトリビュートの値を変えることで操作できるようにしているようです。
さらに別の操作方法を試してみる
自分のPCからキーイベントで操作できる方法を試してみましたが、キーイベント操作だとPCの前に張り付いて操作をしなければならないため、「PCの前に張り付」かず、任意のタイミングで操作コマンドを受け付ける方法として、今度はOSC(Open Sound Control)を使った方法を試してみることにします。
OSC受信用の準備
ドローンとの通信はnodeのモジュールをそのまま使用するため、node側にはOSCを受信する仕組みを、送信側には別途アプリケーションを準備します。npmにはnodeでOSCを取り扱うnode-oscというパッケージがあり、それを利用します。
OSC送信用の準備
OSC送信用アプリケーションを簡単に生成することができるTouchOSCを使ってみます。TouchOSCの送信用アプリケーションは有料のアプリケーションで、AppStoreでは$4.99(2015/07/15現在)で売っていて、TouchOSCの操作UIを作成するためのEditorは、TouchOSCの公式サイトでWin/Mac/Linux向けに無料で配布されています。これを使って、ドローンを操作する命令をOSCで送信するアプリケーションを作成しました。
Node.jsとTouchOSCを使って操作してみる
次のステップ
今回のエントリーで公式アプリ以外の方法でドローンを操作できるようになりましたので、次回からは目標としていた「自動操縦」「ドローンを使ったミニコンテンツの制作」に着手していきたいと思います。