hogehoge, world.

米国カリフォルニアから日本に一時帰国中のソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

Google Homeでドローンを飛ばしてみた


Google Home Miniをゲットした。別にスマートスピーカーが欲しかったわけではないのだけれど、ビックカメラの半額祭りで3000円になっていたので、この値段ならまぁ触ってみるかとぽちったものである。

世のガジェット仲間たちは早速いろいろハックしているようなので、自分もとりあえず何かやらなければ、ということで OK, Google でドローンを飛ばしてみることにした。テッテッテー♪テッテッテテー♪

というわけで、これが完成品。"OK, Google, take off drone" や "OK, Google, take drone to the land" といった音声で、ドローンの離着陸・上昇下降・フリップといった操作ができる。ただ見ての通りドローンの音がうるさくスマートスピーカーには過酷な条件であり、コマンドを正しく認識させるのはそこそこ難儀である。

youtu.be

システム構成

システム構成はこんな感じである。非常によく似たことをやられていた先人がいたので大いに参考にさせていただいた。
IFTTTとBeebotteを使ってGoogleHomeからRaspberryPiを操作する - Qiita

Pythonからのドローンの制御にはpymamboというライブラリをベースとして使わせてもらった。ただ、最低限の動作はするが、Bluetooth接続が不安定でどうも困る。突然接続が切れて制御が効かなくなってドローンを手ではたき落とす*1羽目に何度も陥った。メインループのかたちを試行錯誤して少しはましになったが完全解決には至らず。そのうちちゃんと追求したい。

スマートスピーカーは危険だッ!

本記事冒頭のデモ動画の撮影中、スマートスピーカーの危険性を証明する事件が起こったことに言及せずにはいられまい。撮影した動画を確認のために再生したところ、Google Homeがその音を拾って反応してしまい、動画の中のドローンと一緒に現実のドローンも飛んでしまったのである!(笑)

下の動画がその再現実験だが、私は一切しゃべっていないし、Google Homeの声にエコーをかけているわけでもない。動画に現実のGoogle Homeが反応しているのである。

youtu.be

こういうの体験するとスマートスピーカーをONにしっぱなしとか怖くてできないなあ。テレビや周辺の音を拾って勝手なことをやられたらたまったものではない。これを逆手にとって何かおもしろいこともできるかもしれないけどね。

参考: MQTT subscribe & ドローン制御Pythonスクリプト

gist.github.com

 

*1:ドローンは衝撃を感じるとモーターが緊急停止するようにできているので文字通りはたいて止めるのである。