Edited at

ALEXAでTELLOを操作


はじめに

2018年のAlexaスキルアワードで音声によるTELLOドローンの操作( https://smarthacks.jp/mag/37640#16Tello_Controller )を間近に見て感激、またコードがgithubに公開されていることを知って、いつかやってみたいと思っていましたが、ついに実現しました。


仕組み

Alexaスキルでは、通常、コードはバックエンドにAWS Lambdaを使いデプロイするところですが、ドローンを飛ばすには自分のPCをバックエンドにして、発話からのコマンドを受ける必要があります。ドローンが発するwifiをPCで受信するので、PCのネット接続は別の手段で確保します(自分は有線LANで接続)。発話部分(フロント側)はAlexa スキルビルダーで作成し、自分のPCをエンドポイントにします。これを実現するのがngrokです。


方法

まず、https://github.com/miso-develop/tello-controller-alexa を自分のPCにクローンします(TMさん、公開ありがとうございます)。先に、npm, ngrokのインストールを済ませておきます。

npm install

npm install -g ngrok

最初、ngrokのインストールのところで、”write access to /usr/local/lib/node_modules” のメッセージが出てうまく行きませんでしたが、こちらを参考に解決しました。https://qiita.com/NaokiIshimura/items/cc07441939b226e779c6

準備が完了したら、ドローンを飛ばす時に、コードファイルを置いたフォルダ上で以下を実行します。

node index.js

別ターミナルを起動し、同フォルダで以下のコマンドを実行します。

ngrok http 3000

ngrokが起動できたら、Forwarding https のURLが表示されるのでそれをメモし、スキルビルダー上でENDPOINTに設定します。このURLは起動の度に変わります(継続有効時間は8時間)ので、操作前に設定する必要があります。


あとがき

TELLOとAmazon ECHOをお持ちの方はぜひお試しください。

Have a nice flight with Alexa!

【関連記事】

https://qiita.com/miso_develop/items/a482dc4d168ec0a33818