Tello无人机飞控(Python)程序设计

2023-11-18

Tello无人机飞控(Python)程序设计总结

1.py飞控库介绍

tello的几个不同的飞控库有什么区别吗,用哪个好些?
Tello的几个不同飞控库主要是针对Python开发者提供的控制无人机的工具包,它们各有特点和使用方式。以下是对一些常见Tello飞控库的区别和推荐的概述:

1)tellopy:tellopy是一个功能齐全的库,提供了对Tello无人机的全面控制。它具有对无人机的基本操作,如起飞、降落、移动、旋转等的支持。tellopy还提供了对视频流、状态信息和传感器数据的访问。这个库相对较低级,较为适合有一定编程经验和对底层控制感兴趣的用户。

2) djitellopy:djitellopy是一个建立在tellopy之上的库,旨在简化Tello无人机的控制和交互。它提供了更高级的接口和简化的函数,使得控制无人机变得更加容易。djitellopy对初学者友好,提供了一组易于理解和使用的函数,同时仍然具备对基本操作、视频流和状态信息的支持。
3) easyTello:easyTello是另一个流行的Tello飞控库,旨在提供简单、易用的控制接口。它提供了一组高级函数和语法糖,使得控制无人机变得更加简单和直观。easyTello适合那些想要快速上手并执行基本操作的用户,但相对功能较为有限。
这些飞控库的选择取决于你的使用场景和个人偏好。如果你是一个有经验的开发者,想要更底层的控制和对无人机的高级功能的访问,你可以选择tellopy。如果你是初学者或更倾向于简化的操作接口,djitellopy可能更适合你。而easyTello则适合那些希望快速入门并执行基本操作的用户。
综上所述,如果你是初学者,我建议你首先尝试djitellopy库,它提供了简单易用的接口,适合入门和基本控制。如果你对底层控制更感兴趣或需要更高级的功能,你可以考虑使用tellopy库。

2.基本飞控函数解析(以djitellopy为例):

注意:以下飞控函数都可通过事先创建的Tello对象来调用

function 功能
Tello() 创建Tello对象。你可以使用这个对象来与无人机进行交互。
connect() 连接到Tello无人机。在执行其他操作之前,需要首先连接到无人机。
takeoff() 使无人机起飞
land() 使无人机降落
move_up(x) 移动x厘米 x: 20-500
move_down(x) 移动x厘米 x: 20-500
move_forwardx() 移动x厘米 x: 20-500
move_back(x) 移动x厘米 x: 20-500
move_left(x) 移动x厘米 . x: 20-500
move_right(x) 移动x厘米. x: 20-500
rotate_clockwise(x) 顺时针旋转x度 x: 1-360
rotate_counter_clockwise(x) 逆时针旋转x度.x: 1-3600
get_battery() 获取tello的当前电池电量
set_video_direction() 选择一个摄像头进行调用,调用前置摄像头参数:Tello.CAMERA_FORWARD。调用后置摄像头参数:Tello.CAMERA_DOWNWARD
``` ```

3.调用tello指定的摄像头

Tello无人机支持两个摄像头:一个是 正面的720p摄像头,另一个是 向下的480p摄像头。你可以使用Tello的SDK通过以下步骤来选择要使用的摄像头:
首先,确保你已经连接到Tello无人机的Wi-Fi网络,并且已经成功建立了与Tello的通信。
在你的代码中,使用相应的编程语言导入Tello SDK库,并创建一个Tello对象来与无人机进行通信。

通过调整Tello无人机的视频方向,可以选择要用于视频流的摄像头。Tello无人机有两个摄像头可供选择:正面摄像头(分辨率为1080x720的彩色摄像头)和向下摄像头(分辨率为320x240的红外敏感灰度摄像头)。你可以使用Tello SDK中提供的set_video_direction方法来选择视频方向。

以下是示例代码:

# 选择正面摄像头
tello.set_video_direction(Tello.CAMERA_FORWARD)
# 选择向下摄像头
tello.set_video_direction(Tello.CAMERA_DOWNWARD)

通过选择适当的摄像头方向,可以控制从哪个摄像头获取视频流。根据需要,你可以在正面摄像头和向下摄像头之间进行切换。

请注意,不同的摄像头具有不同的分辨率和功能。正面摄像头提供彩色图像,而向下摄像头只能提供灰度图像。根据你的需求,选择适当的摄像头方向和功能。

4.无人机比赛

在无人机比赛中,向下摄像头(分辨率为320x240的红外敏感灰度摄像头)通常用于特定任务,如地面识别、障碍物检测和导航等。由于其红外敏感性,向下摄像头可以在低光条件下提供较好的视觉信息,因此在一些特殊场景下具有一定的优势。
对于巡线任务,使用向下摄像头进行地面识别是一种常见的方法。通过对摄像头图像进行图像处理和计算机视觉算法,可以分析地面的特征、线条或标记,并根据识别结果进行巡线操作。这样的巡线任务通常需要使用图像处理、计算机视觉和控制算法来实现。
然而,要成功进行巡线,还需要考虑其他因素,如比赛场地的地面特征、照明条件、摄像头角度和航行速度等。此外,还需要合适的算法和控制策略来解决巡线中的挑战,如曲线跟踪、交叉口处理和高速行驶等。
总之,向下摄像头在无人机比赛中可以用于巡线任务,但实现巡线需要综合考虑图像处理、算法设计和控制策略等多个方面的问题。

Tello无人机的前置摄像头可用于进行避障操作。要调用前置摄像头进行避障,可以遵循以下步骤:
导入Tello SDK库:根据你选择的编程语言,导入适当的Tello SDK库,以便与无人机进行通信和控制。
连接到Tello无人机:通过与Tello无人机建立Wi-Fi连接,并创建一个Tello对象,以便与无人机进行通信。
启动视频流:使用streamon()方法启动视频流传输,以便获取摄像头的实时图像。
获取图像并进行避障处理:在一个循环中,不断获取摄像头的图像,然后根据图像进行避障处理。这可以使用图像处理和计算机视觉算法来实现,例如物体检测、特征提取、距离测量等。你可以使用第三方库,如OpenCV或TensorFlow等,来帮助进行图像处理和物体检测。
根据避障结果控制无人机:根据避障处理的结果,生成相应的控制指令,如前进、后退、向左、向右等,并使用Tello SDK发送控制指令给无人机,以实现避障飞行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tello无人机飞控(Python)程序设计 的相关文章

随机推荐

  • 【教程】加速访问和下载github项目,原来替换一个域名就可以加速了

    目录 前言 gitee方法 更简便方法 使用教程 前言 大家平时下载github项目的时候 非常的慢 有时候浏览某个项目的md介绍时候 图片就是加载不出来 让人很苦恼 想锤电脑 gitee方法 于是有很多人都是用gitee的方法 先导入到g
  • 【存储管理】brk()系统调用

    尽管应用程序编程时很少直接调用brk 系统调用 但是它是最经常使用的系统调用 1 C语言中的malloc以及C 语言中的new都在间接的调用着brk 这个系统调用 内核中含有3GB的用户虚存空间 会部分映射到物理存储空间 用户程序经过编译
  • vue中怎么引入element以及使用的详细教程

    引入element 安装依赖 在使用 Element 之前 需要先安装 Element 的依赖库 可以使用 npm 或者 yarn 安装 npm npm i element ui S yarn yarn add element ui 引入C
  • Qt 如何关闭 Debug信息输出

    在pro文件中加上DEFINES QT NO DEBUG OUTPUT 然后重新构建一下程序 qDebug的信息就不再输出了 不过qWarning qCritical等信息仍然可以输出 类似的宏还有 QT NO INFO OUTPUT QT
  • 剑指Offer第五十八题:对称的二叉树

    题目描述 请实现一个函数 用来判断一颗二叉树是不是对称的 注意 如果一个二叉树同此二叉树的镜像是同样的 定义其为对称的 1 思路 我们通常有三种不同的二叉树遍历算法 即前序遍历 中序遍历和后序遍历 在这三种遍历算法中 都是先遍历左子结点再遍
  • 良许Linux

    Linux 服务器我们天天打交道 特别是 Linux 工程师更是如此 为了保证服务器的安全与性能 我们经常需要监控服务器的一些状态 以保证工作能顺利开展 本文介绍的几个命令 不仅仅适用于服务器监控 也适用于我们日常情况下的开发 1 watc
  • depcheck检测缺失哪些依赖包

    npm install g depcheck 如果不想全局安装 npm i depcheck后可以在package json的scripts中输入 check depcheck 之后使用 npm run check depcheck npm
  • umi-request 网络请求之路

    umi request 网络请求之路 背景 在做中台业务应用开发的过程中 我们发现在请求链路上存在以下问题 请求库各式各样 没有统一 每次新起应用都需要重复实现一套请求层逻辑 切换应用时需要重新学习请求库 API 各应用接口设计不一致 混乱
  • sql注入Less11-20

    Less 11 POST 1 先登录 在表格中输入admin admin 登录成功后为下图 2 在post data中输入以下 uname passwd 1 submit submit 返回的结果显示存在sql语法错误 证明存在注入漏洞 u
  • 修改别人代码的原则

    工作过程中难免会涉及到修改或维护别人写的代码 如 代码原作者请假 离职 或相关的bug落到了你的头上 或用别人写的通用方法不爽时 如果碰到修改别人的代码时 需要注意哪些事项呢 1 和原作者沟通 当用到了他人写的通用方法 又感觉不爽时 如果原
  • 各个版本chrome允许加载使用flash的方法

    根除办法 在html中嵌入标签 用户自动选择是否加载flash 69 0 之前的版本 1 打开 chrome settings content flash 2 禁止网站运行Flash gt 改为 Ask Default 3 允许 gt 添加
  • golang开发的准备 - gvm(go版本管理软件)的安装

    0 系统环境 ubuntu18 04 1 前置条件 sudo apt get install bison 2 安装步骤 1 从github下载安装包文件 git clone https github com moovweb gvm git
  • 【c++】14.编译proto和proto相关用法

    编译proto和proto相关用法 关于proto相关的知识可以参考系列博客 https blog csdn net daaikuaichuan category 9869251 html xx proto文件中如果要注释的话 注释符号也是
  • 【Kaggle】Stable Diffusion - Image to Prompts竞赛代码初步理解

    文章目录 一 前言 二 导包 三 加载预训练的 OFA 模型 四 模型EDA 五 Inference 六 安装并导入所有依赖项 七 设置配置 八 加载示例提交 九 Build index from images 十 CLIP interro
  • grep命令

    grep 全称是global regular expressions print 功能就是查找匹配模式的行 grep对文本内容的处理是以行为单位 输出也是输出匹配的行 也可以使用两个变种程序egrep和fgrep egrep与grep E相
  • linux下绑定任务到特定的CPU

    一 linux c查看cpu核 1 命令行查看cpu有几个核 cat proc cpuinfo grep processor wc l 或 nproc 2 linux c代码查看 include
  • 一文了解全面静态代码分析

    在开发具有安全性 可靠性和合规性的软件时 全面静态代码分析是一种有效的方法 在这里 我们将就静态分析而言 讨论全面静态代码分析的不同之处 阐述全面静态代码分析的重要性 以及如何进行全面静态代码分析 什么是全面静态代码分析 全面静态代码分析
  • 计算机行业应届生秋招春招究竟拼的是什么?

    计算机行业是被行外人神话的行业 也是被行内人吐槽的行业 2020年中国高校IT行业毕业生达到了将近70万人 这是什么概念 这样的情况下应届生的顺利就业将会是很大的问题 也就是说几十计算机行业的人才需求很大 也将面临着很大一部分毕业生找不到工
  • iOS系统语音识别

    iOS10语音识别框架Speech 项目中用到语音识别功能 这里简单的进行了一下封装 大概实现了系统语音识别的功能 还没测试 应该会有很多坑 语音识别功能封装 系统的语音识别 外部语音输入 实现语音转文字功能 项目地址 https gith
  • Tello无人机飞控(Python)程序设计

    Tello无人机飞控 Python 程序设计总结 1 py飞控库介绍 tello的几个不同的飞控库有什么区别吗 用哪个好些 Tello的几个不同飞控库主要是针对Python开发者提供的控制无人机的工具包 它们各有特点和使用方式 以下是对一些