7
2

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.

Tello eduで編隊飛行入門(Python)

Last updated at Posted at 2020-06-23

#はじめに
時代に乗り遅れた感ありますが、telloで編隊飛行やってみました。いろんな人がやっていますが、Pythonでやったのまとめてる人あんま見なかったんで、半分自分用でまとめときます。

#参考サイト
以下の記事/サイトに大変お世話になりました。
ありがとうございます。
Tello Eduを子機にしてwifiアクセスポイントに接続する【python】
DJI の教育用トイドローン TELLO EDU で編隊飛行に挑戦(2)

#Telloの設定
前項で提示したTello Eduを子機にしてwifiアクセスポイントに接続する【python】様を参考にさせていただきました。
皆さんもこちらをご覧ください。

#ipアドレスの確認
自分だけかもしれませんがipに対する理解が浅くここではまりました。自分は192.168.10.1にとりあえず命令投げ解けばいいだろとか思ってましたが違いました。

まず、telloの接続先を自分のPCのホットスポットにします。そうするとqiita.png
みたいな感じでIPアドレスが表示されるので、確認しておきましょう。winキー押してMobileHotspotで調べれば出てきます。

#実際のプログラム

import socket
import time

drone1 = '192.168.137.125'
drone2 = '192.168.137.17'

tello_port = 8889

#udpソケット
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
drone1_address = (drone1 , tello_port)
drone2_address = (drone2 , tello_port)

#コマンドモードに入る
socket.sendto('command'.encode('utf-8'),drone1_address)
socket.sendto('command'.encode('utf-8'),drone2_address)


time.sleep(3)

#離陸
socket.sendto('takeoff'.encode('utf-8'),drone1_address)
socket.sendto('takeoff'.encode('utf-8'),drone2_address)

time.sleep(0.1)

#着陸
socket.sendto('land'.encode('utf-8'),drone1_address)
socket.sendto('land'.encode('utf-8'),drone2_address)

非常にシンプルな形に落ち着きます。
これなら任意の数のドローンに対応することができます。
注意点として先ほども申し上げましたが、ドローンのipは皆さん異なると思うので(違ったらすみません)きちんとご自分でお調べください。お願いします。
課題として、ドローンの数が増えるとコードがきもくなってしまいます。今後の課題として、ブロードキャストでできたらかっこいいかな??なんて思っています。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?