はじめまして。時折、夢の中で舞空術で空を飛んでいるイシイです。最近良くも悪くも色々なところで話題となっているドローンを使ったコンテンツ制作を、これから複数回にわたってエントリーしていきたいと思います。

様々な種類のドローン

比較的廉価なものからそれなりのお値段のものまで様々なドローンが購入できるようになってきましたが、今回は産業用のドローンまでは視野に入れず、市販でも購入できるものから選ぼうと思います。 やや中型のものだと、DJIのPhantomやTeam BlackSheepのTBS DISCOVERY、小型のものになるとParrotのrolling-spiderhubsanなどがありますが、今回は比較的廉価でありながら飛行性能が高いと評判の、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を使って操作してみる

次のステップ

今回のエントリーで公式アプリ以外の方法でドローンを操作できるようになりましたので、次回からは目標としていた「自動操縦」「ドローンを使ったミニコンテンツの制作」に着手していきたいと思います。