PythonでTello動かす

213 Views

January 12, 26

スライド概要

2026/1/12 しゃち.py みーてぃんぐ 14th. 新年LT大会

profile-image

Engineer / AWS Community Builder / LINE API Expert / JAWS UG名古屋 運営 GIthub: http://github.com/Miura55 Blog: http://supernove.hatenadiary.jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

PythonでTello動かす Koki Miura(@k_miura_io)

2.

自己紹介 • 三浦 耕生(こうき) • バックエンドエンジニア • 鯱.py 運営 • JAWS UG名古屋&神戸 運営 • 俺の勉強会 運営 @k_miura_io koki.miura05

3.

Discordの参加お待ちしております! https://discord.gg/AJ99S4mp9T

4.

ちょうど5年前に衝動 買い

5.

Tello • メーカー:RYZE Tech(深セ ンのスタートアップ) • 重さ:80g → 日本では合法 で誰でも飛ばせる • DJIとIntelが技術提供 • 2024年12月にサポート終了 https://www.ryzerobotics.com/jp/tello

6.

Telloの良さ 合法 プログラマブル 軽量・丈夫

7.

Telloがプログラムで動かせる仕組み

8.

Pythonで動かしてみたい • 公式レポジトリのコードを使用(https://github.com/dji-sdk/Tello-Python) • TelloPyを使用(https://github.com/hanyazou/TelloPy) • DJITelloPyを使用(https://github.com/damiafuentes/DJITelloPy) • 標準ライブラリのsocketを使う

9.

Pythonで動かしてみたい • 公式レポジトリのコードを使用(https://github.com/dji-sdk/Tello-Python) o Python2系の動作を想定している o カメラ画像を取得するためにビルドが必要だけど失敗する • TelloPyを使用(https://github.com/hanyazou/TelloPy) o 最終メンテから5年以上経過 o PyAVの挙動でエラーが出る • DJITelloPyを使用(https://github.com/damiafuentes/DJITelloPy) o PyAVでエラーが出る サンプルコードが汚い… • 標準ライブラリのsocketを使う o FFmpegをセットアップしてシェルで実行する必要があるが、そっちのほうが確実 o 平文のコマンドを送信するだけなので自分でソケット書いたほうが確実そう

10.

FFmpegとは • 汎用的なマルチメディア用のフレームワーク • ありとあらゆる形式のエンコード、デコード、 フィルタリング、ストリーミングに対応している https://ffmpeg.org/

11.

PyAVとは • FFmpegのPythonバインディング • Python向けのライブラリなので、NumPyなどの ライブラリで扱いやすいフォーマットに変換で きる • OSや依存関係などによって動かないことがあ る(今回の検証はこれを理由に却下

12.

DEMO

13.

画像のストリーミング • Telloのカメラ画像はUDPを使ってFFmpegで取得 • コマンドの標準出力から整形をして、OpenCVで画面 表示をする

14.

画像がストリーミングされた

15.

キー入力でマニュアル操作 • OpenCVのGUIで対応しているキー入力に合わせた コマンドを送信する処理を足すだけでPython製のフラ イトコントローラーが簡単にできる • Telloの操作コマンドは平文で直感的でライブラリなくて も大丈夫

16.

まとめ • Telloを操作するためのPythonライブラリは豊富そうに見えてPython3 で動かせるPythonライブラリが意外と少ない • ストリーミング画像を取得するのにffmpegは便利 • そんなにインターフェースが複雑なわけでもないから1周回って標準ラ イブラリを使ってコマンド操作をするのが実装デバッグも分かり良い

17.

ソースコード https://github.com/Miura55/tello-tracker

18.

END