Ryze TelloをMacで操作してみた
年末に購入したトイドローンのTelloだが
操作を行うのはスマホだけでなくpythonを使ったSDKを使ってPCでも操作が可能ということで、Macでも可能かどうか試してみた。
事前準備
python
macOSにはpythonが標準で用意されており、バージョンは古いがSDKが使用可能なバージョンなので、特に用意する必要はない。強いて言えば基本はコマンドラインでの操作となるので、ターミナルを使い慣れておくといいだろう。
SDKダウンロード
ターミナルを開き下記コマンドでgithubよりダウンロードする、
$ git clone https://github.com/dji-sdk/Tello-Python.git
ダウンロードすると新規にディレクトリが作成されているので、そちらへ移動する
$ cd Tello-Python
移動すると下記のファイルとディレクトリがある
$ ls LICENSE.md TelloPython_FAQ(CH).txt doc README.md TelloPython_FAQ.txt tello_state.py Single_Tello_Test Tello_Video tello_video_dll(ForWin64).zip Tello_Video_With_Pose_Recognition
LICENSE.mdとREADME.mdについてはソースのライセンス表示とgithubのreadmeファイルで後は
TelloPython_FAQ(CH).txt :SDKのFAQ中国語版
doc : コマンド動作マニュアルが入っているディレクトリ
TelloPython_FAQ.txt:SDKのFAQ英語版
tello_video_dll(ForWin64).zip:Tello_videoのWindow用DLLが入っている圧縮ファイル(だと思う)
Tello_Video_With_Pose_Recognition:Telloのカメラを使用したジェスチャー操作用pythonスクリプトの入っているディレクトリ
となるらしい、今回はSingle_Tello_Test とTello_Videoを試してみた。
Telloへ接続
これはスマホの時と同様で、Telloを起動後にMacの無線LANアクセスポイント一覧にTelloの名前のアクセスポイントが出てくるのでそこに接続する
操作
ステータス表示
下記コマンドで動作する
$ python tello_state.py
動作すると現在のTelloのステータスが表示される。
Single_Tello_Test
Single_Tello_Testのディレクトリに移動して中身を見ると下記のファイルがある
$ ls README.md command.txt stats.py tello.py tello_test.py
Telloにつないだ状態で下記のコマンドを実行する
$ python tello_test.py command.txt
ちょっと待つとTelloが離陸し、しばらくするとそのまま着陸する。 tello_test.py はcommand.txtを読み込んで動作するスクリプトでcommand.txtの中身を見てみると
$ cat command.txt command takeoff delay 5 land
となっており、動作としては「離陸→5秒待ち→着陸」といった動作をするようになっているのが分かる、ということでtakeoffとlandの間にコマンドを追加し、再びスクリプトを起動すると「離陸→追加したコマンドによる動作→着陸」という動作を行う、動作コマンドについてはdoc内のドキュメントに詳細があるので見てみるといいかと思う。
Tello_Video
Single_Tello_Testでpythonでも動かせることが確認できたので次はTello_Videoに挑戦。「これは何?」と思って調べてみたところ、Telloに付いているカメラの画像を接続しているPCに送って静止画撮影&動画録画をしつつ、PCのマウスとキーボードでTelloの操作が行えるスクリプトとのこと。
しかし実行するためにはH264をエンコードするライブラリをビルドする必要があるらしくビルド用のスクリプトが用意されているのだが、更に今のMacで使う場合にはビルド用のスクリプトを修正する必要があるようでここを参照してライブラリをビルドした。
ひとつ注意点として、ビルドスクリプトがMacのパッケージ配布システムであるhomebrewを使っており、それ以外のパッケージ配布システムを使っている場合、パッケージ配布システム同士の競合に注意する必要がある。
ビルド後、下記のコマンドを実行
$ python main.py
実行に成功すると、下記のウインドウが表示される。
ウインドウの[Open Command Panel]ボタンをクリックすると操作用のパネルが表示されマウスとキーボードでTelloが操作できるようになる。
操作性については、キーボードを押してTelloが反応するのに若干のタイムラグがあり操作に少し慣れが必要かなという印象、しかしスマホアプリでの操作に比べると、自分の思った操作はできている感覚で取っつき易さでいうとこちらかなと感じた。ただこの印象は自分がキーボードのほうが馴染んでいるという部分が大きいかもしれない。
とはいえ、スマホだとアプリで操作するだけだったのがpythonスクリプトを手直しすれば色々なことができるようになるので、やりようによっては色々遊べるのではないかと思われる。