#はじめに
このページは,
Tello-Pythonのサンプル「Tello_Video」を動かす
の補足ページです.
本来,Python2用に作られているTello_Pythonを,Python3で動かすためのアレコレです.
#概要
DJI公式のTello用Pythonサンプルプログラム「Tello-Python」のうち,
をPython3で動かす方法を記述します.
Python2のプログラムをPython3に対応させるには,主に以下の作業を行います.
- print文の修正
- responseをstr()でstr型と明示
- try except文のas
- pip系のインストールをpip3でやり直し
既に下記ページで「tello_state.py」「Single_Tello_Test」のやり方を解説してくれています.
参考URL:トイドローンTelloをPython3で制御する
次の課題は,**「Tello_Video」のH.264デコードライブラリlibh264decoder.so
をPython3用にビルドする**ことです.
ここが解決しないと,OpenCVで画像処理ができません(T_T)
本記事では,邪道な方法ですが既に問題解決された方のgitを利用して動かしてみます.
#Tello-PythonをPython3で動かしたい
Python3で動かしたいというニーズは多く,公式gitにもissueが上がっていました.
Tello_Video on Phyton3 is working now. #20
ここにあるように,f41ardu氏の派生版Tello-Pythonをcloneして動かしてみます.
基本的には
https://github.com/f41ardu/Tello-Python/tree/master/PY3_Tello_Videop/h264decoderpi3
に書かれた手順を和訳しただけになります.
#Python3用libh264decoder.soのビルド
筆者の記事を読んでいただいている方であれば,
ホームディレクトリには,既に公式Tello-Pythonがダウンロードされていると思います.
この場合,そのまま当該gitをcloneすると名前が被ってしまいます.
まずは,python3
ディレクトリを作り,その中で作業しましょう.
$ cd ~
$ mkdir python3
$ cd python3/
次に,f41ardu氏のTello-Pythonをgitでダウンロードします。
$ git clone https://github.com/f41ardu/Tello-Python/
$ cd Tello-Python/
$ ls
LICENSE.md Tello_Video
PY3_Tello_Videop Tello_Video_With_Pose_Recognition
README.md doc
Single_Tello_Test tello_state.py
TelloPython_FAQ(CH).txt tello_video_dll(ForWin64).zip
TelloPython_FAQ.txt
当該Tello-Pythonには,PY3_Tello_Videop
という新しいディレクトリがあるので,その中へ入ります.
$ cd PY3_Tello_Videop/
$ ls
LICENSE.md h264decoderpi3 main.py tello_control_ui.py
README.md libh264decoder.so tello.py
PY3_Tello_Video
ディレクトリには,h264decoderpi3
という,H.264デコーダをラズパイ3用に作るディレクトリがあります.
これをラズパイ用ではなく,通常のIntel系Linux用にビルドすることになります.
$ cd h264decoderpi3/
$ mkdir build
$ cd build/
$ cmake -DPython_ADDITIONAL_VERSIONS=3.5 -DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib/x86_64-linux-gnu/libboost_python-py35.so ..
$ make
$ cp libh264decoder.so ../../
$ cd ../../
これで,libh264decoder.so
がPY3_Tello_Video
の中にコピーされました.
インストールされているPython3のバージョンが3.7系の時は,
cmake ../CMakeList.txt -DPython_ADDITIONAL_VERSIONS=3.7 -DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib/usr/lib/arm-linux-gnueabihf/libboost_python37.so ../
この様に3.7
や37
と書き換えてcmakeしてください.
#PY3_Tello_Videoの実行
Python3としてmain.pyを実行します.
$ python3 main.py
後はいつも通りのTello_Videoです.
#おわりに
2019年10月にやり方を調べていながら,ずっと放置でした...やっと書けた〜!