python实现大疆Tello无人机控制平台并实现语音控制/手势控制/人脸跟踪/绿球跟踪/拍照录像
Tello智能信息处理平台
- 介绍
- 控制
- 键盘控制
- 语音控制
- 视觉功能
- 人脸跟踪
- 绿球跟踪
- 手势控制
- 体态控制
- 拍照录像
- 结语
介绍
本项目是我的一个课程设计。本来打算做大型四旋翼无人机的控制,后来老师给了两个Tello无人机(分别是带拓展板和不带拓展板的),就转到了做Tello的控制。项目的GUI界面和后台逻辑以及功能整合、整体优化调试由我完成,其他队员负责各视觉功能子模块的实现和调试。
源码及项目详细介绍请看GitHub仓库:Tello智能信息处理平台
此平台使用python语言开发,可用于控制大疆公司的Tello系列无人机,并利用无人机的摄像头、红外等传感器完成一系列视觉功能,包括:目标检测与跟踪(绿色小球与人脸)、手势控制、体态控制等。
也可控制Tello进行拍照、录像,以及做出一些抛飞、翻转、手上降落等花式动作。
控制
键盘控制
键盘控制一直处于开启状态。每个键盘键位对应的功能如下:
tab:
起飞L/P/G/H:
降落/悬停/抛飞/手上降落W/A/S/D:
向前/左/后/右U/I:
向上/下J/K:
顺/逆时针旋转Z/X/C/V:
前/后/左/右空翻
语音控制
有效语音指令如下:
- 起飞;
- 降落;
- 悬停;
- 向前/后/左/右/上/下飞x厘米(x=20~500);
- 顺时针旋转x度(x=1~360);
- 向前/后/左/右翻滚;
- 速度设为x厘米每秒(x=10~100);
- 向前/后/左/右;(不建议,此指令会让无人机一直朝某个方向飞,直到得到“停”指令);
- 停;
视觉功能
人脸跟踪
在菜单栏开启人脸跟踪功能后,无人机会搜寻人脸目标(最好只有一个),然后靠近人脸并保持在一定的安全距离内,且随着人的移动而移动。
绿球跟踪
与人脸跟踪类似,开启此功能后,无人机能够检测跟随绿色小球(球不要太小)。
手势控制
开启此功能后,会显示一个子窗口,并显示计算机摄像头视频流。识别出比划的手势后,无人机会做出相应的动作。为了避免连续识别并发出指令,我们设置了每次跳过一定帧数后再识别一次。
支持的手势如下:
双手合十:
启动;大拇指向上:
起飞;大拇指向下:
降落;一/二/三/四/五/六:
向上/下/左/右/前/后飞x厘米;七/八:
顺/逆时针旋转90度;九:
悬停;
飞行速度与飞行步长与主界面中对滑块设置的值有关。
体态控制
我们加入这个功能的初衷是想通过人体的姿势来控制无人机。
但是我们没有时间去训练自己的轻量检测模型。我们寻找到了AlphaPose
这个开源姿势检测库,并选择其中运行速度较快的一个模型融合进我们的平台中。
尽管如此,检测速度还是无法达到我们的预期。而且由于整个项目是在我的macOS系统上构建,无法使用CUDA加速计算,因此整体检测速度非常慢。
为了避免危险情况发生,我并没有为体态检测结果设置相应的无人机指令,只将体态检测结果显示在主界面上。
拍照录像
在主界面点击拍照后,会将当前无人机原始画面以jpeg格式存储到本地。
点击录像后,程序开始将无人机原始画面以avi格式编码为视频流,再次点击录像按钮后,停止录像并将视频保存到本地。
结语
我们大约用了十天左右的时间完成这个平台,比较仓促,有些功能还能够再完善一下。但是在答辩结束后我们已经将两个无人机还给老师了,如果你对Tello感兴趣的话,可以在我们项目的基础上添加更多的功能以及完善一下逻辑和bug。
项目源码在文章开头的链接里,感兴趣的朋友可以fork一下,点个星星哦
python实现大疆Tello无人机控制平台并实现语音控制/手势控制/人脸跟踪/绿球跟踪/拍照录像相关推荐
- Anaconda 大疆 Tello EDU python 环境配置
本人 在校学渣一枚 最近对目标跟踪方面略有兴趣,从头学习了一下python,受限于经费,购买了一台大疆Tello edu 无人机, 进行实验测试,由于tello 的SDK需要python2.7的环境 ...
- 大疆Tello开发教程
提供关于Tello的开发相关资料教程链接,可用于开发目标检测/无人机追踪等.同时方便初学者入门学习. 大疆Tello官方资料下载https://www.dji.com/cn/downloads/dji ...
- 大疆Tello编队飞行教程(特洛教育版)/多机视频流获取
大疆Tello编队飞行教程(特洛教育版) 通过Python控制特洛无人机群飞 Step1 下载 Mind+ 软件使用在线编程功能, 安装Mind+Link 串口通信工具, 将ESP通过USB链接到PC ...
- ROS环境下大疆tello无人机源码安装驱动代码解读
大疆tello无人机是一款微小型无人机,可以支持多种开发模式.这里用的是ROS1的kinetic版本进行开发.参考文档来自http://wiki.ros.org/tello_driver 1)kine ...
- 超级简单的大疆tello无人机视频实现(很少代码)
大疆tello无人机出来有1年时间了,使用pc查看视频的功能也只是今年才开放,经过2天的摸索,终于用简单的方法实现,不敢独享,分享出来. 1.连接tello的wifi: 2.使用udp组件发送打开视频 ...
- 大疆Tello UDP控制协议接口
大疆Tello UDP控制协议接口 1. 设计架构 2. UDP报文格式 2.1 控制报文 2.2 查询报文 2.3 状态报文 3. 命令集 3.1 [控制报文]控制命令 3.2 [控制报文]设置命令 ...
- tello通信_鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS
鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS 发布于 2020-11-19 18:55 3028浏览 3收藏 利用鸿蒙Hispark WIFI IOT 套件控制大 ...
- 鸿蒙大疆无人机,鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS
利用鸿蒙Hispark WIFI IOT 套件控制大疆TELLO 无人机 第一步:查看无人机通信协议: 第二步:结合许老师的UDP网络编程--UDP demo 写入无人机的wifi名称,密码,ip地址 ...
- python读取大疆激光雷达LVX数据并显示
如需要写好可以直接使用的软件,可以去公众号下载las 工具软件,如需转换或者提取 大疆 L1 数据文件,请直接微信联系 394467238 个人公众号"代码就是生产力",发布更多有 ...
最新文章
- 区块链4.0DexChain是什么?
- python5_python5
- BP神经网络-- C语言实现
- C#3.0 新特性系列(6) Extension Methods
- 无极菜单 php,ThinkPHP菜单无极分类 ThinkPHP菜单无极分类实例讲解
- mp3 pcm java_Java mp3文件转pcm文件
- Java并发教程–线程之间的可见性
- java 最大流最小割_最大流, 最小割问题及算法实现
- Elasticsearch创建索引别名
- 计蒜客:Adjoin the Networks
- 鸿蒙DevEco Studio 无法下载Gradle问题
- Python自学(三)
- 如何系统的学习linux?
- RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasSgemm( handle, opa, opb
- 示波器(Oscilloscope)快速入门
- 全国计算机等级考试python试题_全国计算机等级考试二级Python真题及解析(5)
- 【CVPR2021】AdderSR: Towards Energy Efficient Image Super-Resolution
- 百度网盘批量重命名文件免费脚本---2020.07
- JAVA个人记账本代码,Java的家庭记账本程序(L)
- Mysql主从复制之异步与半同步以及主从切换(实验)