2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Mac OSXで「Tello_Video」の環境構築

Last updated at Posted at 2020-04-02

#はじめに
このページは,

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

の補足ページです.

※注意
筆者のMacは古い(High Sierra)ので,試したのはXcode 10です.
新しいMacでは別の問題が生じるかもしれません...

#概要
DJI公式のTello用Pythonサンプルプログラム「Tello-Python」のうち,
 Tello_Video
を試すためには、あらかじめ

  • 様々な依存ライブラリのインストール
  • H.264ビデオのデコードライブラリのビルド

を行う必要があります。

gitの Tello-Pythonのページ には,インストール方法として

・Mac

 i. Make sure you have the latest Xcode command line tools installed. If not, you might need to update your OS X and XCode to the latest version in order to compile the h264 decoder module
ii. Go to the "install\Mac" folder folder in command line, run

   chmod a+x ./mac_install.sh
   ./mac_install.sh

If you see no errors during installation, you are good to go!

と書いてあります.
すなわち,Macの開発環境であるXcodeのコマンドラインツールをインストールした後で,

フォルダ移動・ファイルの属性変更・シェルファイル実行
$ cd install/Mac/
$ chmod a+x ./mac_install.sh
$ ./mac_install.sh

とコマンドを打てよ,ということです.
**mac_install.sh**が,Mac用の環境構築を自動的に行ってくれるシェルスクリプトです.

Macに精通した方は「なんだ,shファイルがあるなら実行すればスグじゃん」と思うでしょう.
しかし,そのまま実行すると

  • matplotlibのインストール時にnoseとtornadoが無いと言われる.
  • OpenCVのバージョンが3.x系がインストールされない.(4.x系になる)
  • h264デコードライブラリのビルド前に,cmakeが通らない

という不具合が生じます.

というわけで,mac_install.shを書き換えます.

#参考にしたページ

Command Line Toolsのインストール方法  筆者はこちらでXcode10用を探してインストールした
MavericksでCommand Line Tools for Xcodeをインストールする  既にGUI版のXcodeがインストールされている人向け
Python:[pip install requests]実行時の[matplotlib 1.3.1 requires nose, which is not installed.]の対処方法
Tello_Video & Tello_Video_With_Pose_Recognition #41 #42

#前提条件
ホームフォルダ(~)にTello-Pythonがインストールされているという前提で話を進めます.

#ディレクトリの移動
まずはコンソール(端末)を開き,以下のコマンドを打って,Tello-Videoのフォルダへ移動します.

cd(change_directory)
$ cd ~/Tello-Python/Tello-Video

lsコマンドでTello_Videoディレクトリの中を見てみると,

Tello_Videoの中身
$ ls
LICENSE.md  README.md  h264decoder  img  install  main.py  tello.py  tello_control_ui.py

installというディレクトリがあることが分かります.
このディレクトリの中身は,

installディレクトリの中
$ ls install/
Linux  Mac  Windows

この様になっていて,Linux,Mac,Windowsそれぞれのディレクトリにインストール用のファイルが置いてあるのですが,どれも古くて使い物になりません

ですが,Macは多少の変更で対応できます.

#Mac_install.shの書き換え
Macの場合,mac_install.shの中身を少し書き換えれば,自動インストールできます.

※加えた変更
easy_installでnoseとtornadoをインストールするように追記しました.
OpenCVのバージョンははSHIFTの使える3.4.2.17にしました.
cmakeでboost_pythonが無いというトラブルは,issueの通りに書き換えました.
 

テキストエディタ(テキストエディット,miなど)を使って以下の様に mac_install.sh を書き換えてください.

mac_install.sh
#!/bin/sh



echo 'Compiling and Installing the Tello Video Stream module'

echo 'You might need to enter your password'

# go to /sample_code folder
cd ..
cd ..

# install Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew update



# install pip

#sudo easy_install pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

# install cmake

brew install cmake



# install dependencies

brew install boost

brew install boost-python

brew install ffmpeg

brew install tcl-tk

# added by hsgucci
sudo easy_install nose

# added by hsgucci
sudo easy_install tornado

sudo pip install numpy --ignore-installed

sudo pip install matplotlib --ignore-installed

sudo pip install pillow --ignore-installed

sudo pip install opencv-python==3.4.2.17 --ignore-installed



# pull and build h264 decoder library

cd h264decoder


mkdir build

cd build

# comment out by hsgucci
#cmake ..

# added by hsgucci
cmake -D Boost_NO_BOOST_CMAKE:BOOL=ON ..

make



# copy source .so file to tello.py directory

cp libh264decoder.so ../../



echo 'Compilation and Installation Done!'

#mac_install.shの実行
書き換えたら,シェルファイルのあるフォルダへ移動して,
chmodで実行権限を与え,実行します.

フォルダ移動・ファイルの属性変更・シェルファイル実行
$ cd ~/Tello-Python/Tello_Video/install/Mac/
$ chmod a+x mac_install.sh
$ ./mac_install.sh

以上で自動インストールされます.

インストールが完了したら,Tello-Videoのディレクトリに戻っておきましょう.

2つ上の階層へもどる
$ cd ../../

これで作業は完了です.

#注意点
mac_install.shでのインストールで注意すべき点は,
必ず~/Tello-Python/Tello_Video/install/Mac/へカレントディレクトリを移動させ,
そこでmac_install.shを実行すること
 です.

というのは,

mac_install.shの一部を抜粋
cd ..    # 1つ上のディレクトリへ移動
cd ..    # 1つ上のディレクトリへ移動
# Homebrew のインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update

()

# pull and build h264 decoder library
cd h264decoder    # h264decoderというフォルダへ入る
mkdir build
cd build          # buildというフォルダへ入る
cmake ..
make

# copy source .so file to tello.py directory
cp libh264decoder.so ../../      # 2階層上のフォルダへファイルをコピー

この様に,フォルダを2階層上がってaptやpipのインストールを行い,
h264decoderフォルダへ移動してライブラリのビルド&コピーを行っているからです.

もしも,Tello_Videoフォルダから以下の様に

このように直接ファイルを呼んではいけない
$ ./install/Mac/mac_install.sh

相対パス指定してシェルを実行するとどうなるでしょうか.
~/Tello-Python/Tello_Video/の2階層上,すなわちホームディレクトリ~/まで上がってh264decoderへ入ろうとしてしまいます.当然そんなフォルダはありませんから,ビルドできるわけがありません.

#おわりに
やっとLinux, Raspberry Pi,Windows,Macが全部終わった〜(喜
でも時代はPython3...
 

2
1
0

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?