#はじめに
時代に乗り遅れた感ありますが、telloで編隊飛行やってみました。いろんな人がやっていますが、Pythonでやったのまとめてる人あんま見なかったんで、半分自分用でまとめときます。
#参考サイト
以下の記事/サイトに大変お世話になりました。
ありがとうございます。
Tello Eduを子機にしてwifiアクセスポイントに接続する【python】
DJI の教育用トイドローン TELLO EDU で編隊飛行に挑戦(2)
#Telloの設定
前項で提示したTello Eduを子機にしてwifiアクセスポイントに接続する【python】様を参考にさせていただきました。
皆さんもこちらをご覧ください。
#ipアドレスの確認
自分だけかもしれませんがipに対する理解が浅くここではまりました。自分は192.168.10.1にとりあえず命令投げ解けばいいだろとか思ってましたが違いました。
まず、telloの接続先を自分のPCのホットスポットにします。そうすると
みたいな感じで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は皆さん異なると思うので(違ったらすみません)きちんとご自分でお調べください。お願いします。
課題として、ドローンの数が増えるとコードがきもくなってしまいます。今後の課題として、ブロードキャストでできたらかっこいいかな??なんて思っています。