Alexa制御ARDrone 2.0デモ:Raspberry PiとHologram Novaで音声操作ドローン
Amazon Alexa、Raspberry Pi、Hologram Nova USBモデムを用いてARDrone 2.0を音声制御ドローンに変える実践ガイド。
ストーリー
動機
前プロジェクトでARDrone 2.0をマスターした後、Alexaの音声インターフェース統合で体験をさらに高めようとしました。Alexa & Arduinoスマートホームチャレンジに触発され、完全機能する音声駆動ドローンデモを構築しました。
以下にプロセスの簡潔なウォークスルーを示します。
Raspberry Piソフトウェアセットアップ、Alexaスキル設定、最終デプロイ手順をカバーします。
Piソフトウェアセットアップ
PiにFlask-AskライブラリをインストールしAlexa互換エンドポイントを公開:
$ sudo pip install flask-ask
次にARDrone Wi-Fi制御リポジトリをクローンし、同梱のinstall.shスクリプトを実行してPython経由のリモート制御を有効化。
Alexaスキルとアプリの設定
Pi上で動作するFlaskサーバーと通信するカスタムAlexaスキルを構築。NgrokでサーバーにAlexa必須の公開HTTPSエンドポイントを付与。
Flask-Askアプリケーションの最小例(app.pyとして保存):
#!/usr/bin/env python
from flask import Flask
from flask_ask import Ask, statement
import ardrone
import time
app = Flask(__name__)
ask = Ask(app, "/")
# ドローン初期化と短いリセット待機
drone = ardrone.ARDrone()
time.sleep(5)
drone.reset()
@app.route("/")
def home():
return "Ground Control to Major Tom"
@ask.intent("reset")
def reset():
drone.reset()
return statement("resetting")
サーバー起動:
python app.py
予約サブドメインでNgrok起動しHTTPS URLを安定化:
./ngrok http -subdomain=<your-subdomain-here> 5000
注意: PiはARDroneのWi-Fiネットワークに参加し、Hologram NovaがAlexaリクエスト用のセルラー接続を提供。
Novaで月間250MBプランを使用し、信頼性の高いパフォーマンスを確保。
Alexaスキル設定はAmazon Developer Console → Alexa Skills Kit → + Add a New Skillへ進み、画面ウィザードに従い全タブのステータスが緑になるまで完了。
- Interaction Model – Intent Schema:以下JSONをエディターにコピー。
{ "intents": [ {"intent": "reset"}, {"intent": "takeoff"}, {"intent": "land"}, {"intent": "hover"}, {"intent": "goForward"}, {"intent": "goBackward"}, {"intent": "goLeft"}, {"intent": "goRight"}, {"intent": "AMAZON.PreviousIntent"}, {"intent": "AMAZON.NextIntent"}, {"intent": "AMAZON.HelpIntent"}, {"intent": "AMAZON.ScrollUpIntent"}, {"intent": "AMAZON.ScrollLeftIntent"}, {"intent": "AMAZON.ScrollDownIntent"}, {"intent": "AMAZON.ScrollRightIntent"}, {"intent": "AMAZON.PageUpIntent"}, {"intent": "AMAZON.PageDownIntent"}, {"intent": "AMAZON.MoreIntent"}, {"intent": "AMAZON.NavigateSettingsIntent"}, {"intent": "AMAZON.StopIntent"} ] } - Sample Utterances – 「takeoff」「land」「go forward」等のフレーズを登録(元リスト参照)。
- Configuration – エンドポイントをHTTPSに設定しNgrok URLをDefaultフィールドに貼付。アカウントリンクは無効化。
- SSL Certificate – 真ん中のオプション:「開発エンドポイントはワイルドカード証明書を持つドメインのサブドメイン」を選択。
- Test – ビルトインシミュレーターで各インテント動作確認。
全タブで緑チェックマークが出たら、ベータテストリンク経由でEchoデバイスにスキル公開。
実行
フルシステム起動手順:
- ARDrone電源オンしPiをそのWi-Fiネットワークに接続。
- PiでHologram Novaセルラーネットワーク有効化:
$ sudo hologram network connect
NovaのLEDが青点灯でセルラーリンク確立。 - 予約サブドメインでNgrok起動(前述)。
- Flaskアプリケーション実行:
$ python app.py
- ドローンLED緑点灯後、Alexaでコマンド可能。反応しない場合は「アレクサ、メジャートムにリセットを依頼」と発言。
出典: MajorTom: Alexa Voice Controlled ARDrone 2.0
製造プロセス
- 温度制御ファンサーキット:メディア家具冷却用DIYリレーシステム
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- MATRIX Voice搭載Raspberry PiへのGoogle Assistantインストール:ステップバイステップガイド
- Raspberry PiとPythonでAmazon AlexaからChromecastを制御
- Raspberry Pi、PIRセンサー、MQTTで作るモーション制御AWS IoTボタン
- Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
- ラズベリーパイとNode-REDでAlexaからLEDを制御する - 簡単ステップバイステップガイド
- ビッグマウス・ビリーバスをAlexa対応に改造 - Arduino、L293Dシールド、LM386アンプで実現
- 古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
- 2017年が「音声インターフェース元年」になった理由
- 開発キットとリファレンスデザインでAlexa統合を加速