Python でドローンプログラミング Tello-Console チュートリアルその1(導入について)

Tello-Console チュートリアル(その1)

 こんにちは。こちらは Tello-Consoleチュートリアル記事(その1)となります。これから初めて Tello-Console を利用する方、Python を初めて扱う方はぜひお読みください。
 このチュートリアルは、Tello-Console のダウンロード方法 と、Tello-Console をダウンロードするにあたり必要な環境構築の方法 をまとめています。

Tello-Console とは?

 Tello-Console とは、DJI 製教育用ドローン Tello シリーズを Python でプログラムできるようにするパッケージ です。このパッケージは 筆者が独自で開発したもので公式によって開発されたものではありません。 そのため一部課題点はありますが、始めてドローンをプログラムする人に向けて最適化された、シンプルなコーディングを提供するパッケージとなっております。
 Tello-Console は LinuxmacOS での動作を前提に開発されましたが、Windows での動作も対応しております。

Tello とは?

 Tello とは、大手ドローンメーカ DJI と大手半導体メーカーの Intelインテル)が共同開発したコンシューマー向け、教育機関向けの小型ドローンです。
 Tello にはいくつか種類があり、現在日本で発売されている Tello は2種類あります。

本パッケージ(Tello-Console)が最も快適に動作するドローンは Tello EDU です。また Tello EDU はプログラム開発に最も特化している機体なので、ドローンプログラミングを始める方は Tello EDU の購入を強くお勧めします。

Python とは?

 Python とは プログラム言語の一種 です。他のプログラム言語より構文が見やすく、誰でも簡単に始めることができるシンプルなプログラム言語です。この言語では人工知能の開発に特化しており、近年はロボット、ドローンの開発言語としても採用されています。Tello-Console は、この Python をベースに機能します。

Python をインストールする

 早速 Python をインストールしてみましょう。その前に お使いのパソコンのOS を知る必要があります。OS とは、WindowsmacOS などのことを指します。OS によって Python を導入する手順が異なりますので、お使いの OS に該当するセクションを読んで作業を進めてください。

WindowsPython をインストールする

注意! Windows 環境では現在ドローンからのカメラビューに遅延が発生する問題を抱えています。そのため LinuxmacOS での使用を推奨しております。問題が解決次第更新いたします。

 Windows には、標準で Python がインストールされていません。 そのため、以下の手順に沿って Python をインストールします。

python

次にエンターキーを押してエンターします。もし、お使いのパソコンに Python がインストールされていなければ、勝手に microsoft store が立ち上がります。

"入手" をクリックして Python をインストールします。

  • Python を実行してみる インストールが完了したら、コマンドプロンンプトに戻りましょう。ここで知っているかもしれませんが、便利なショートカットを教えます。それは ALT + Tab です。キーボードの ALT キーを押した後に Tab キーを押すと、現在開いているウィンドウを行き来することができます。

  • コマンドプロンプトに以下のコマンドを入力してください。

python

するとコマンドプロンプトの表示がこのようになります。(パソコンによって若干表示内容が異なりますが、一番下の2行が以下のように表示されていたら成功です。)

Python 3.9.12 (main, Apr  5 2022, 01:53:17) 
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

このように、末尾に ">>>" が表示されている状態が、Python を記述、実行できる環境に移行したことを表しています。

macOSPython をインストールする

macOS には、標準で Python がインストールされています。 そのため Python のインストールは基本的に不要です。Python を実行するためには、ターミナルを開きます。

  • Command キー + Space キーで Spotlight 検索を開きます。
  • 検索欄に "ターミナル" と入力します。
  • 候補に "ターミナル app" 表示されるので、これをクリックしてターミナルを起動します。
  • 白黒のウィンドウ(ダークモード、ライトモードで表示内容が異なる)が表示されたら、ターミナルの使用の準備が整いました。
  • ターミナルには、以下のような文が一番下に記述されています。
user_name@pc_name:~$ 

これは使用している環境によって表示内容が異なりますが、以下の意味を持っています。

ユーザーネーム@パソコンの名前:ファイルパス$

ファイルパスはデフォルトで " ~ " です。これの意味については後ほど学びます。
- " $ " マークの右側空欄に " python " と入力してエンターキーを押してください。すると、以下のような表示に変わります。(パソコンによって若干表示内容が異なりますが、一番下の2行が以下のように表示されていたら成功です。)

Python 3.9.12 (main, Apr  5 2022, 01:53:17) 
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

このように、末尾に ">>>" が表示されている状態が、Python を記述、実行できる環境に移行したことを表しています。

LinuxPython をインストールする

Linux には、標準で Python がインストールされています。 そのため Python のインストールは基本的に不要です。Python を実行するためには、ターミナルを開きます。

  • Control キー + Alt キー + T キーで " 端末(ターミナル) " 検索を開きます。
  • ターミナルには、以下のような文が一番下に記述されています。
user_name@pc_name:~$ 

これは使用している環境によって表示内容が異なりますが、以下の意味を持っています。

ユーザーネーム@パソコンの名前:ファイルパス$

ファイルパスはデフォルトで " ~ " です。これの意味については後ほど学びます。
- " $ " マークの右側空欄に " python " と入力してエンターキーを押してください。すると、以下のような表示に変わります。(パソコンによって若干表示内容が異なりますが、一番下の2行が以下のように表示されていたら成功です。)

Python 3.9.12 (main, Apr  5 2022, 01:53:17) 
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

このように、末尾に ">>>" が表示されている状態が、Python を記述、実行できる環境に移行したことを表しています。
これで Python の環境は整いました。

Python を使ってみよう

試しに、Pythonスクリプトを記述、実行してみましょう。まずは基本的な四則演算です。四則演算とは、足し算、引き算、掛け算、割り算のことです。">>>" の横に以下のように記述してみてください。

1+1

そしてエンターを押しましょう。すると、以下のように入力した計算の下に計算結果が表示されます。

>>> 1+1
2
>>> 

続けて、引き算もやってみましょう。

1-1

上記を入力したらエンターキーを押してみましょう。すると先ほどと同じように計算結果が出力されます。

>>> 1-1
0
>>> 

続けて掛け算、割り算を行なってみましょう。Pythom では、掛け算の演算子" * (アスタリスク)" を使用します。

2*5

割り算の場合、Python では、" / (スラッシュ)" を使用します。

4/2

次に print 関数 を使用してみましょう。print関数とはprint関数内に記述した数字や文字をターミナル又はコマンドプロンプト上に出力してくれる関数です。以下のプログラムを書いてみましょう。

print("Hallo World")

入力したらエンターキーを押してみましょう。すると下に print関数内に記述した文章が表示されます。

>>> print("Hallo World")
Hallo World
>>> 

Python 入力モードを止めるには、以下のプログラムを入力してください。

quit()

すると、表示がそれぞれ元のプロンプト表記になります。
- Windows の場合

>>> quit()
C:¥User>
>>> quit()
user_name@pc_name:~$

OpenCV をインストールする

 Python のインストールが完了したら、次は OpenCV をインストールします。OpenCV は、Python で画像処理をするために使用するライブラリのです。Tello-Console では、OpenCV を使用してドローンからのカメラビューを取得しますので、このライブラリがインストールされていないと Tello-Console を使用することはできません。
 OpenCV のインストール方法は、OS によって異なります。

WindowsOpenCV をインストール

 OpenCV などの Python に追加のライブラリをインストールするには、pip というコマンド を使用します。先ほど WindowsPython をインストールしたときに pip も一緒にインストールされているため、pip 事態のインストールを行う必要はありません。

pip3 install opencv-python

これでインストールは完了です。

macOSOpenCV をインストール

 OpenCV などの Python に追加のライブラリをインストールするには、pip というコマンドを使用します。

  • ターミナルを開いてください。
  • macOS には pip は標準でインストールされていないため、以下のコマンドを使用して pip をインストールします。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

上記のコマンドを実行すると、" get-pip.py " という Python 実行ファイルがダウンロードされます。 - get-pip.py を実行します。

python3 get-pip.py
  • 実行が完了したら、以下のコマンドで OpenCV をインストールします。
pip3 install opencv-python

これでインストールは完了です。

LinuxOpenCV をインストール

 OpenCV などの Python に追加のライブラリをインストールするには、pip というコマンドを使用します。 - ターミナルを開いてください。 - Linux には標準で pip はインストールされていないため、以下のコマンドで pip をインストールします。 入力が面倒な場合、以下のコマンドをコピーペーストしてください。ですが、気を付けていただきたいのが、ターミナル上でコピペのショートカットキー(Ctrl + C と Ctrl + V)は使用できません。 コマンドプロンプト上でテキストをコピーするときは Ctrl + Shift + C、 コマンドプロンプト上でテキストをペーストするときは Ctrl + Shift + V を使用します。

sudo apt install -y python3-pip
  • 上記のコマンドをエンターキーで実行すると、パスワード入力を求められるため、ログイン時のパスワードを入力してエンターキーを押してください。ターミナル上には入力テキストは表示されませんが、正常に認識しています。
  • 次に OpenCV をインストールします。以下のコマンドで OpenCV をインストールします。
pip3 install opencv-python

これでインストールは完了です。

確認

 OpenCV の無事にインストールできたがどうかを確認するには、前述の Python 入力モードにすると同じように WindowsmacOSLinux 共有で、各プロンプト上に以下のコマンドを入力してください。

python

 次に、以下のプログラムを入力してください。このプログラムは、OpenCV を持ってくるよ。という意味です。

import cv2

この時何も表示されずに次の入力欄が表示されたら OpenCV のインストールは成功です。

>>> import cv2
>>>

もし、以下のような表記(エラー)が表示されたら、正常に OpenCV がインストールされていないことを表しています。もう一度 OpenCV をインストールするセクションを参考に実行してください。

>>> import cv2
ModuleNotFoundError: No module named 'cv2'

GitHub から Tello-Console をダウンロードする

GitHub とは?

 GitHub とは、簡単に言えばプログラムを共有できる場所です。個人が リポジトリ と呼ばれる作業スペースに自身が作ったプログラムを共有し、皆がそれをダウンロード、アクセスできる場所のことです。Tello-Console も、この GitHub にてソースコードを公開しています。GitHub からソースコードをダウンロードするには、使用しているパソコンに Git をインストールする必要があります。

Git をインストールする

Windows に Git をインストールする

 Windows には、標準で Git はインストールされていません。そのため以下の手順で Git のインストールを行う必要があります。

  • 以下のリンクをクリックして、Git for Windows をダウンロードしてください。 https://gitforwindows.org
  • ダウンロードが完了したら、ダウンロードファイルを実行してください。
  • いろいろ書かれt内容のウィンドウが表示されますが、全て "Next" をクリックしてください。
  • 最後のインストール完了画面で、"Finish" をクリックしてください。
  • 検索バーで "git" と入力してください
  • 候補として出てきた "Git Bash" をクリックして、Git Bashを起動します。
  • 以下のようなウィンドウが表示されたらインストール完了です。以降の説明ではこの Git Bashを使用します。このウィンドウは、Widnows で Git 関連の作業ができるものです。また、使用するコマンドが LinuxmacOS と共通となります。
  • 以下のコマンドを実行してホームディレクトリの確認を行います。ディレクトリとは、フォルダのことです。ホームディレクトリとは、Git Bashを開いた時のデフォルトの作業フォルダのことを言います。簡単に言えばスマホのホーム画面のフォルダバージョンと思ってもらえればいいです。
echo ~ 

そしたら、以下のような文字列が表示されます。

echo ~
/c/Users/<ログインしているユーザー名>
  • 上記のコマンドで、ユーザーネームが表示されていたら無事インストール作業は完了です。

macOS で Git を使用する

 macOS には標準で Git がインストールされています。しかし、個人の環境によっては Git をインストールする必要があります。

  • ターミナルをひらいて、以下のコマンドを実行してください。
$ git --version

入力が完了したらエンターキーを押してください。この時、下のような git のバージョンが表示されたら、あなたの環境にはすでに Git がインストールされているため、以降の作業を行う必要はありません。

$ git --version
qit version 2.30.1 (Apple Git-130)
  • もし、上記のコマンドで git のバージョンが表示されなかった場合、以下のようなウィンドウが表示されます。そしたらインストールをクリックして、使用許諾契約に承認してください。
  • インストールが完了したら、1, の手順をもう一度行ってください。バージョンが表示されればインストールは完了です。

    Linux で Git をインストールする

     Linux には標準で git はインストールされていません。そのため、以下の手順で git をインストールする必要があります。

  • ターミナルを開き、以下のコマンドを実行してください。
$ sudo apt install -y git
  • インストールが完了したら、以下のコマンドを入力して実行し、 git のバージョンが表示されたらインストールは完了です。
$ dpkg -l git

Tello-Console をダウンロードする

 Tello-Console のインストールが可能な状態になりました。以下のコマンドを実行して、Tello-Console をダウンロードします。ダウンロード先はホームディレクトリとします。ディレクトリとは、フォルダのことです。ホームディレクトリとは、Git Bashを開いた時のデフォルトの作業フォルダのことを言います。簡単に言えばスマホのホーム画面のフォルダバージョンと思ってもらえればいいです。
 以下のコマンドでホームディレクトリへ移動します。

cd 

 以下のコマンドで Tello-Console をダウンロードします。

git clone https://github.com/GAI-313/Tello-Console.git

これでダウンロードが完了しました。以下のコマンドで tello-Console ディレクトリへ移動してみましょう。

cd Tello-Console

コマンド入力欄の左側がこの状態

user_name@pc_name:~$ 

が、以下のような状態

user_name@pc_name:~/Tello-Console$ 

になり、Tello-Console ディレクトリへの移動が完了していればダウンロードは完了です。

VScode をインストールする

 VSCode とは、Microsoftが提供するプログラムを編集できるテキストエディタです。。こちらではこのソフトを推奨しています。以下のリンクからお使いのパソコンの環境に該当するソフトデータをダウンロードして実行してください。

VScode の環境を設定する

 VScode をインストールしたら、日本語設定と Python拡張機能をインストールします。

  • VScode を開きます
  • 左にあるタブの、上から5番目の 四角いアイコン をクリックします。
  • 検索バーに "Japanese" と入力し、候補として出てきた 地球儀アイコンの Japanese Langage Pack for Visual Studio 拡張機能をインストールします。
  • 上記の拡張機能がインストール出来たら、続けて python と入力し、 python 拡張機能 をインストールします。 これで拡張機能のインストールは完了です。ほかにも拡張機能には様々なツールがあるので、自分で探して VScode を最適化してみるとよいでしょう。

Tllo-Console を実行してみる

 早速 Tello-Console を実行してみましょう。Tello ドローンを用意する必要はありません!

cd %HOMEPATH%
cd Tello-Console
cd ~/Tello-Cnsole
  • 以下のコマンドで sample_boot.py を実行します。
python sample_boot.py

正常に実行できた場合、以下のようなテキストが表示されます。

WELCOME CONSOLE ! TELLO-CONSOLE VX.X.X                                                                                タイムアウト!                                                                                                           send cmd >>> command recv >>> None response                                                                             エラー!ドローンとの通信に失敗しました!                                                                                Tips:ドローンとPCとのWi-Fi接続を確認してください! 

これが実行されれば正常に Tello-Console がインストールでき、Tello を使ったプログラミング学習が可能になります!

Windows を使っている方へ。出力されたテキストの左右に謎の文字列が表示されている場合の対処法

 このセクションは Windows ユーザーに向けての対処法となります。Tello-Console では、本プログラム内で発生したエラーを色で強調表示して画面に出力します。例としてはこんな感じです。

これは ANSI エスケープシーケンス という方法でテキストカラーを表示させています。しかし、WindowsコマンドプロンプトはデフォルトでこのANSI エスケープシーケンスに対応していません。実際ANSI エスケープシーケンスが対応していない環境下では、先ほどのテキストは以下の様に表示されているはずです。

上のテキストのほうが 何が警告で何がヒントなのか、どんなステータスを送っているのか が一目でわかりますよね。Tello-Console ではこのような問題に対応しています。以下を順番に行ってください。

cd Tello-Console\modules
  • code コマンドで現在いるフォルダを指定して VScode を立ち上げます。
code .
  • VScode が立ち上がったら、信頼 をクリックします。
  • VScode 左側にファイル一覧が表示されます。その中の tello.py をクックして、エディタに表示させます。
  • すると tello.py の中身が表示されます。このプログラムが Tello-Console の中心であり本体です。このファイル内の13行目から26行目までの以下のようなファイルを編集します。
# Windows ユーザーの方は以下のプログラム上下にある """ を削除してください
"""
import ctypes

ENABLE_PROCESSED_OUTPUT = 0x0001
ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002
ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004
MODE = ENABLE_PROCESSED_OUTPUT + ENABLE_WRAP_AT_EOL_OUTPUT + ENABLE_VIRTUAL_TERMINAL_PROCESSING

kernel32 = ctypes.windll.kernel32
handle = kernel32.GetStdHandle(-11)
kernel32.SetConsoleMode(handle, MODE)
"""
# Windows ユーザーの方はこのテキストの上のプログラム上下にある """ を削除してください

7- #から書かれているテキストはコメント文です。コメント文に書かれている内容の通り、14行目と25行目の """ を削除してください。 すると """ でくくられていたプログラムの色が変化します。そしたら Ctrl + S でファイルを保存してください。 - コマンドプロンプトに戻り、以下のコマンドを入力してひとつ前の階層フォルダに移動します。

cd ..
  • 続いて sample_boot.py を実行するプログラムを入力して実行してください。このとき出力されたテキストに色がついたら成功です。
python sample_boot.py



これで Tello-Console のセットアップは完了です。次の記事では、Tello-Console でドローンを離陸させる方法 について記述します。