LoginSignup
9
8

More than 3 years have passed since last update.

(補足)Python3で「Tello_Video」を動かす

Last updated at Posted at 2020-03-06

はじめに

このページは,

Tello-Pythonのサンプル「Tello_Video」を動かす

の補足ページです.
本来,Python2用に作られているTello_Pythonを,Python3で動かすためのアレコレです.

概要

DJI公式のTello用Pythonサンプルプログラム「Tello-Python」のうち,

 Tello_Video

を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ディレクトリを作り,その中で作業しましょう.

Python3版のためのディレクトリを作る
$ cd ~
$ mkdir python3
$ cd python3/

次に,f41ardu氏のTello-Pythonをgitでダウンロードします。

f41ardu氏のTello-Pythonの導入
$ 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という新しいディレクトリがあるので,その中へ入ります.

Python3版「Tello_Video」へ移動
$ 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用にビルドすることになります.

H.264デコーダのビルドとコピー
$ 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.soPY3_Tello_Videoの中にコピーされました.

インストールされているPython3のバージョンが3.7系の時は,

Python3.7の場合
cmake ../CMakeList.txt -DPython_ADDITIONAL_VERSIONS=3.7 -DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib/usr/lib/arm-linux-gnueabihf/libboost_python37.so ../  

この様に3.737と書き換えてcmakeしてください.

PY3_Tello_Videoの実行

Python3としてmain.pyを実行します.

Python3でmain.pyを実行
$ python3 main.py

後はいつも通りのTello_Videoです.

おわりに

2019年10月にやり方を調べていながら,ずっと放置でした...やっと書けた〜!
 
 

9
8
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8