#はじめに
このページは,
の1ページです.
全体を見たい場合は上記ページへお戻りください.
#概要
DJI公式のTello用Pythonサンプルプログラム「Tello-Python」のうち,
を試す方法を記述します.
#前提条件
ホームフォルダにTello-Pythonがインストールされているという前提で話を進めます.
Linuxマシンであれば /home/(ユーザー名)/
に,Tello-Python
というフォルダがあることになります.
詳しくは Tello-Pythonのダウンロード を御覧ください.
#ディレクトリの移動
まずはコンソール(端末)を開き,以下のコマンドを打って,フォルダを移動します.
$ cd Tello-Python
lsコマンドでフォルダの中にあるファイルを見てみると,
$ ls
LICENSE.md Tello_Video
README.md Tello_Video_With_Pose_Recognition
Single_Tello_Test doc
TelloPython_FAQ(CH).txt tello_state.py
TelloPython_FAQ.txt tello_video_dll(ForWin64).zip
Tello_Video というディレクトリがあることがわかります.
更にディレクトリ移動しましょう.
$ cd Tello_Video
lsコマンドでTello_Videoの中を見てみると,
$ ls
LICENSE.md README.md h264decoder img install main.py tello.py tello_control_ui.py
main.py というファイルがあることがわかります.
その他にtello.pyとtello_control_ui.pyというファイルもありますが,これらはmain.pyが呼び出すファイルなので,ユーザーが実行する必要はありません.
また,**installとh264decoder**というディレクトリもあることも明記しておきます.
これらのディレクトリが,Telloのカメラ映像のストリーミングに関係しています.
システム構成のうち,tello.py
にあるTelloクラス
が最も重要だと思います.
このTelloクラスを転用することで,Telloの映像を取ったり,コマンドを送信したりといった様々な発展が可能になります.
Tello-Pythonをダウンロードしただけでは,libh264decoder.soはありません.
この後の環境構築で,ビルドして作ります.
#Tello_Videoのための環境構築
ページが長くなったので,別ページに分離しました.
- Ubuntuで「Tello_Video」の環境構築
- Raspbianで「Tello_Video」の環境構築
- Windowsで「Tello_Video」の環境構築
- Mac OSXで「Tello_Video」の環境構築
#main.pyの実行
それでは,Telloの電源を入れて,WiFi接続を確認したら,
main.pyを実行してみましょう.
$ python main.py
#実行結果
Telloとうまく接続できていれば,下の写真のような画面が表示されます.
「TELLO Controller」というタイトルの新しいウィンドウが作成され,そこにTelloのビデオ映像が表示されます.映像の下にはボタンが3つ並んでいます.
コマンドを打ち込んだ端末画面は,h.264ビデオのデコードに関するメッセージと,送信したSDKコマンドが表示されます.
実際にウィンドウを表示させてみると分かりますが,TelloはHD画質なので720pの映像が表示されます.
ちょっとウィンドウが大きすぎる,という感想を持ちました.
TELLO Controllerウィンドウのサイズを変更しても,サイズに合わせて映像もストレッチして表示されるのではなく,右側の映像が欠けるだけです(笑
映像サイズの調整などの改造は,別途記事を執筆しようと思います.
##GUIの操作方法
TELLO Controllerのウィンドウには,
- Open Command Panel
- Pause
- Snapshot
の3つのボタンがあります.
それぞれの役割を解説します.
###Open Command Panel
Open Command Panelボタンは,クリックするとCommand Panelという新しいウィンドウが開きます.
※Raspberry Piでは,このボタンを押さないと受信映像が表示されないことがあります.
このウィンドウをアクティブにした状態で,
- キーボードの'w','s','a','d'および矢印キーで,前後左右上下移動や旋回ができます.
- Flip,Takeoff,Landボタンで宙返り,離着陸ができます.
- スライダーを動かすと移動と旋回の移動量を変えることができます.デフォルトは20cmと30度.
要はこのウィンドウを使うと,簡易的にtakeoff
とかleft 20
とかのコマンドを送信できるので,スマートフォンのTelloアプリの様に遠隔操縦することができる,ということです.
###Pause
Pauseボタンは,クリックするとTelloの映像をポーズして,望みの画像を表示し続けるボタンです.
再度クリックすればリアルタイムの映像に戻ります.
ポイントとしては,
「映像受信のUDPサーバを止めてパケットの受信を中止する」とか
「H.264のデコードを中止してCPU負荷を下げる」とか
などの工夫はまったくされていません(爆
停止時の画像でウィンドウを再描画し続けていますし,裏でTelloからの映像受信とデコードは続いているので,負荷軽減にはまったく寄与しません...
###Snapshot
Snapshotボタンは,クリックした時のビデオ画像を(年月日_時分秒).jpg
という名前でimg
ディレクトリの中に保存します.
#おわりに
今回は「Tello_Video」の環境構築,使用法を解説しました.
Tello_Videoは,以降様々な画像処理プログラムを作る上で重要なサンプルなので,プログラム解説は別途 記事を執筆する予定です.