操作系统:Ubuntu 16.04
我正在尝试创建一个可以控制多个Ryze Tello无人机的Python程序。这些是非常简单的无人机,可以通过Wi-Fi UDP端口连接计算机并通过文本命令发送来控制。
例如,这是一个简单的程序,在连接到无人机的Wi-Fi网络时,它只会向无人机发送命令“起飞”。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto('command', 0, ('192.168.10.1', 8889))
sock.sendto('takeoff', 0, ('192.168.10.1', 8889))
现在,我的目标是能够立即向多个这样的无人机发送命令(例如,让他们执行计划的“舞蹈”例程)。我有多个Wi-Fi加密狗连接到我的计算机,每个加密狗连接到一个单独的无人机。然而,问题是每个无人机都有固定的IP和端口,如上所示。我试图通过SSH连接到无人机来改变其IP,但没有运气,支持热线也不确定是否可以使用Tello。但是,由于在我的计算机上仍然可以清楚地处理连接,因此必须有一种方法可以单独向无人机发送命令。至于如何,我不确定,为什么我要求帮助。
答案 0 :(得分:0)
为每个无人机创建单独的pip install PodSixNet
对象,其中每个NameError: name 'execfile' is not defined
为socket
,指向无人机所连接的特定WiFi适配器的本地IP。然后,您可以根据需要socket
通过每个bind()
命令。即使无人机都具有相同的IP和端口,sendto()
也可以确保每个命令通过适当的WiFi网络发送到它所针对的正确无人机。
这样的事情:
socket