python控制大疆无人机_大疆睿炽Tello EDU无人机python操控之二——使用Tello-Python-master示例程序控制Tello EDU无人机...
使用Tello-Python-master示例程序控制Tello EDU
上篇文章我们应该可以掌握使用socket调试工具操控Tello EDU无人机,那么本篇文章我们将使用“正宗”python语言来实现Tello EDU的的控制,接下来直接上代码,我会在代码注释中对代码进行讲解:
#
# Tello EDU Control Demo
#
# Hopes_li
#
#2020/4/28
import threading #导入线程模块
import socket #导入套接字模块
import sys #导入系统模块(其实没用到)
import time #导入时间模块
#设置主机及端口号
host = ''
port = 8889
locaddr = (host,port)
# 创建UDP的socket通信
#获取Udp/Ip套接字(socket就是套接字)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#第一个参数为socket家族:有AF_UNIX基于文件类型,及AF_INET基于网络类型
#第二个参数为socket_type:流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM(datagram)、原始套接字SOCK_RAW
tello_address = ('192.168.10.1', 8889) #设置tello主机及端口号
sock.bind(locaddr) #绑定(主机,端口号)到套接字
#定义数据接收函数(从Tello EDU返回的信息)
def recv():
count = 0
while True:
try:
data, server = sock.recvfrom(1518) #接收UDP数据;data为接收的数据,server为客户地址,1518为每次接收字节数
print(data.decode(encoding="utf-8")) #输出从socket接收的数据,并以编码为"utf-8";
except Exception:
print ('\nExit . . .\n')
break
print ('\r\n\r\nTello EDU Demo.\r\n')
print ('end -- 输入可退出.\r\n')
#启动多线程
recvThread = threading.Thread(target=recv) #通过Thread类进行对象实例化为recvThread;
recvThread.start() #启动多线程
while True:
try:#使用异常
msg = input("") #输入指令
if not msg:
break#如果没有指令则退出
if 'end' in msg:
print ('...')
sock.close() #关闭套接字
break
# Send data
msg = msg.encode(encoding="utf-8") #对要发送的信息进行编码
sock.sendto(msg, tello_address) #发送UDP数据
except KeyboardInterrupt:
print ('\n . . .\n')
sock.close() #关闭套接字
break
运行之后还没完,这是肯定的,因为我们还需要在控制台中输入相应的指令,然后回车发送(这点肯定不需要我讲了)就是这么简单,感觉这篇文章好像没讲点啥东西^ - ^ ,但是我们已经成功通过python来控制Tello EDU了。
另外我们每输入一条指令,Tello EDU都会给我们反馈一条信息,“ok”就代表发送成功,“error”就代表发送失败(这都是肯定的)。
有时候,特别是在发送“takeoff”指令的时候会反馈一条“error”,老是感觉没啥问题啊!其实大概率是Tello的电池电量不足了,所以会反馈“error”(为啥不任性话些捏,让我迟迟没找到error的点)
当然在SDK里不仅给我们提供了控制指令,还提供了读取命令用于读取此时Tello的信息,比如“电池电量”、“高度”等等,都可以在SDK文档中查询。
最后我觉得在所有的指令中唯独弧线飞行“curve”不太好理解,而且也是报错最多的,然后我就给睿炽发邮件咨询了,以下是回复的邮件(半天就回复了,还是蛮积极的)
以上就是本篇文章所有内容,使用Python示例程序控制Tello EDU就是这么简单!
python控制大疆无人机_大疆睿炽Tello EDU无人机python操控之二——使用Tello-Python-master示例程序控制Tello EDU无人机...相关推荐
- python控制电脑唤醒键_大神教你用Python实现Wake On Lan远程开机功能
导读 这篇文章主要介绍了使用Python实现Wake On Lan远程开机功能,文中给大家补充介绍了python通过wakeonlan唤醒内网电脑开机,非常不错,感兴趣的朋友跟随小编一起学习吧 Wak ...
- 大疆睿炽Tello EDU无人机python操控之二——使用Tello-Python-master示例程序控制Tello EDU无人机
使用Tello-Python-master示例程序控制Tello EDU 上篇文章我们应该可以掌握使用socket调试工具操控Tello EDU无人机,那么本篇文章我们将使用"正宗" ...
- 使用python数据分析的研究意义_大数据分析语言Python的价值和意义
Python提供了大量用于处理大数据的库.就开发代码而言,您还可以比其他任何编程语言更快地使用Python处理大数据.这两个方面使世界各地的开发人员能够将Python视为大数据项目的首选语言.要获得有 ...
- 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?
近几年,大数据为各个领域带来了全新的变革,大数据的重要性越来越被企业和国家所看到,大数据工作者的需求再次被无限放大,他们的薪资和社会地位也在不断上涨.马云在演讲中就提到,未来的时代将不是IT时代,而是 ...
- 可视化大屏设计尺寸_大屏可视化设计尺寸高级指南
原标题:大屏可视化设计尺寸高级指南 大屏可视化的设计尺寸定义,一直是很多设计师苦恼的一件事,很多时候大屏出现的问题,都是因为对设计尺寸没有一个正确的认识导致.比如大屏内容呈现不全.拉伸.压缩.字号小的 ...
- ZUCC_大数据计算技术_大作业
大数据计算技术大作业 课程名称 大数据计算技术 实验项目名称 大作业 项目目的 天气数据分析,通过网络爬虫(自己编写网络爬虫程序),网址:https://www.tianqi.com,点击" ...
- python大神教程_大神python教程415集全套,拿走不谢
大神的教程 由北京尚学堂高淇老师亲自录制,2019Python自学教程全新升级为<Python+数据分析+机器学习>能力逐级提升,打造技能更全面的全栈工程师. Python作为一种编程语言 ...
- python 分析大数据日志_大数据Web日志分析 用Hadoop统计KPI指标实例
可以带着下面问题来阅读文章 问题: 1.MapReduce在日志分析的作用 思考: 该如何架构kpi系统,需要考虑什么问题. kpi:关键绩效指标法,即KPI绩效考核,是企业绩效考核的方法之一,其特点 ...
- 有python专业的世界大学_大数据时代专业怎么选?2018年QS世界大学商业分析硕士专业排名...
导读:最新2018年QS世界大学商业分析硕士专业排名对全球各所大学商业分析专业做出综合评价,最终45所大学上榜. 商业分析专业Business Analysis到底学哪些科目?就业方向如何?作为商科专 ...
最新文章
- Android开发工作中遇到的重点和难点总结
- ie浏览器里面无法输入文字:
- ScrollView以及TextView和对应链接
- POJ 2823-Sliding Window单调队列解题报告
- idea报错Class not found (在target中没有生成对应的class文件)
- 现实地形导入UE4全流程
- 作者:窦志成,男,中国人民大学信息学院研究员、硕士生导师。
- WindowsBatch与LinuxShell比较[变量符号和关键字]
- 记录下ES6踩过的坑
- matlab 报童 泊松分布函数,数学建模和工科数学分析(2)
- win10系统C盘出现感叹号及加密图标解除
- 如何使用格式工厂将vtt文件格式字幕加在视频文件中
- 【高端黑】软件工程师去理发店
- Google 内购 - Android
- 需求分析师应具备的几项能力
- VisionPro脚本
- mysql 空闲链接超时时间_解决mysql 中共8小时空闲后连接超时的有关问题
- java刷题--518零钱兑换II
- Web入门之VScode基本操作,文本框、输入框、单选框、多选框、列表、插入图片、插入按钮及跳转网页和页面
- 说说包管理工具 NPM 的基本用法
热门文章
- 东数西算加快云网与数据融合 天翼云架起云间高速
- Jensen不等式(琴生不等式)
- HALCON已知平面两点图像坐标和对应机械坐标求仿射变换矩阵
- [译] 使用 Go 和 AWS Lambda 构建无服务 API
- android 向左滑动动画,Android Activity左边滑出,右边滑入的动画切换
- 大四生找工作最惨的一次经历吧!
- 南京NLP算法岗中小厂汇总
- LintCode题目:幸运数字8
- RS232(Modbus RTU)+RS485(Modbus RTU)协议RFID识别磁导航AGV小车传感器|定位仪CK-GL16-AB的安装与磁处理方法
- python中union函数_如何掌握Python union()方法及怎么用?