Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yhotta240/tello-python
PythonでTelloドローンを操作する基本的なプログラム
https://github.com/yhotta240/tello-python
python tello tellodrone
Last synced: about 1 month ago
JSON representation
PythonでTelloドローンを操作する基本的なプログラム
- Host: GitHub
- URL: https://github.com/yhotta240/tello-python
- Owner: yhotta240
- Created: 2024-06-26T09:07:48.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-06-26T09:13:03.000Z (6 months ago)
- Last Synced: 2024-06-26T10:30:07.421Z (6 months ago)
- Topics: python, tello, tellodrone
- Language: Python
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PythonでTelloドローンを操作する
## はじめに
Telloドローンは、その手軽さと高度な機能から、多くのドローン愛好者や開発者に人気です。本記事では、Pythonを使ってTelloドローンを操作する方法について説明します。今回は、ライブラリを極力使わずに、UDPソケットを用いて直接Telloにコマンドを送信するシンプルな方法を紹介します。
## 必要なもの
- Telloドローン
- Python 3.x
- Wi-Fi接続できるPC## Tello SDKの基本
Telloドローンは、SDK(Software Development Kit)を通じてコマンドを受け取ります。これらのコマンドは、UDPプロトコルを使用して送信されます。以下は、基本的なコマンドの例です:
- `command`:SDKモードを開始
- `takeoff`:離陸
- `land`:着陸
- `forward x`:前進(xはセンチメートル)
- `back x`:後退(xはセンチメートル)
- `cw x`:時計回りに旋回(xは度)## サンプルコード
### 1. ソケットの作成
まず、UDPソケットを作成します。このソケットは、Telloドローンにコマンドを送信するために使用されます。
```python
import socket# TelloのIPアドレスとポート
TELLO_IP = '192.168.10.1'
TELLO_PORT = 8889# コマンドを送信するためのソケットを作成
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = (TELLO_IP, TELLO_PORT)
```### 2. コマンド送信
次に、Telloドローンにコマンドを送信するための関数を定義します。
```python
def send_command(command):
"""
Telloにコマンドを送信する関数
"""
try:
sock.sendto(command.encode('utf-8'), tello_address)
print(f"Sending command: {command}")
except Exception as e:
print(f"Error sending command: {e}")
```### 3. レスポンス受信
Telloドローンからのレスポンスを受信するための関数も定義します。
```python
def receive_response():
"""
Telloからのレスポンスを受信する関数
"""
try:
response, _ = sock.recvfrom(1024)
print(f"Received response: {response.decode('utf-8')}")
except Exception as e:
print(f"Error receiving response: {e}")
```### 4. メイン関数の定義
最後に、ドローンの基本的な操作(離陸、前進、後退、旋回、着陸)を行うメイン関数を定義します。
```python
def main():
# コマンドモードを開始
send_command("command")
time.sleep(2)
receive_response()# 離陸
send_command("takeoff")
time.sleep(5)
receive_response()# 前進(100cm)
send_command("forward 100")
time.sleep(5)
receive_response()# 後進(100cm)
send_command("back 100")
time.sleep(5)
receive_response()# 旋回(時計回りに90度)
send_command("cw 90")
time.sleep(5)
receive_response()# 着陸
send_command("land")
time.sleep(5)
receive_response()# ソケットを閉じる
sock.close()if __name__ == "__main__":
main()
```## 実行手順
1. Telloドローンの電源を入れ、Wi-Fiに接続します。
2. 上記のPythonコードを実行します。このサンプルコードでは、Telloドローンが離陸し、前進、後退、旋回、そして着陸する一連の動作を行います。各コマンドの後にレスポンスを受信しているため、コマンドが正常に送信されたかどうかを確認できます。
## まとめ
今回は、Pythonを使用してTelloドローンを操作するシンプルな方法を紹介しました。ライブラリを使用せずに直接コマンドを送信することで、Telloドローンの基本的な操作を理解することができます。この方法を基に、さらに高度な操作や自動化を実装することも可能です。ぜひ試してみてください。
## 参考
Tello SDK 2.0 User Guide
https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf