はじめに
公式のドキュメントを参考に、サンプルを動かし、動作確認を行う所までです。
動作環境
- OS:macOS High Sierra (10.13.3)
- Python 3.6.3
- ryzerobotics Tello
セットアップ
- 公式サンプルをダウンロードし、適当な場所に配置。
- Telloの電源を入れ、PCからTelloのWifiアクセスポイントへ繋ぐ。(SSIDは[TELLO-XXXX])
- TelloのIPは192.168.10.1なのでpingで接続確認を行う。
$ ping 192.168.10.1
4.サンプルをコマンドラインから実行。以下の様に表示されれば準備完了
$ python Tello3.py
Tello Python3 Demo.
Tello: command takeoff land flip forward back left right
up down cw ccw speed speed?
end -- quit demo.
Telloの制御
- セットアップが完了している状態で、コマンド受付状態にするために
command
と入力しOK
と表示されればTelloとの通信ができている。 - Telloが離陸しても大丈夫な場所に置いてある事を確認し、離陸コマンド
takeoff
を入力、OK
と表示されたあと、Telloが離陸すれば成功。 - 他のコマンドを続けて入力する事で反応を見る事が出来る。着陸するときは
land
を入力。その場に着陸する。 - サンプルを終了させる場合は、
end
を入力
サンプルの中身
サンプルの中身を見てみる、Telloとの通信はUDP通信。IPは192.168.10.1。ポートは8889を利用。
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = ('192.168.10.1', 8889)
入力されたコマンドを送信している箇所
# Send data
msg = msg.encode(encoding="utf-8")
sent = sock.sendto(msg, tello_address)
受け取った返信をデコードして表示。
def recv():
count = 0
while True:
try:
data, server = sock.recvfrom(1518)
print(data.decode(encoding="utf-8"))
except Exception:
print ('\nExit . . .\n')
break
さいごに
- とりあえずTelloをPythonで動かす事ができた、お手軽。
- ドキュメントをみると、取得できるデータは速度、バッテリー残量、飛行時間のみ。。。今後増えるのか不明。