DIY一个基于树莓派和Python的无人机视觉跟踪系统
DIY一个基于树莓派和Python的无人机视觉跟踪系统
无人机通过图传将航拍到的图像存储并实时传送回地面站差点儿已经是标配。假设想来点高级的——在无人机上直接处理拍摄的图像并实现自己主动控制要怎么实现呢?事实上视觉跟踪已经在一些高端的消费级无人机上有了应用,只是玩现成的永远没有自己动手来劲;)。
前段时间DIY了一个无人机三轴云台的视觉跟踪系统,除去云台花了¥370,本文将设计思路与实验效果分享出来。
一、基本配置
1.1 硬件
- 计算平台:树莓派3 (¥219.00)
- 摄像头:USB网络摄像头(¥108.00)
- 云台:參考上一篇博文FY650的组装
- JoyStick摇杆:用于測试和干预云台(¥8.00)
- Arduino UNO开发板:用于JoyStick输出信号的採集与AD转换并与树莓派串口通信(¥35.00)
1.2 软件
- 编程语言:Python
- 集成开发环境1:Eclipse。在windows平台上的视觉算法编程调试
- 集成开发环境2:Geany,在Linux平台上的算法与云台联调
1.3 准备知识
前面的几篇博文分别介绍了这个系统用到的基本知识:
二、设计步骤
2.1 云台调试
(1) 搭建一个用JoyStick控制云台转动的系统
由于树莓派GPIO没有模拟输入口。因此JoyStick接Arduino完毕输入模拟信号的AD转换。并将转换后的信号通过串口发送给树莓派。
通过这个系统结合示波器,搞清楚了所用云台转动控制的原理和控制信号特征。云台调试阶段系统连接图例如以下所看到的。终于通过树莓派的GPIO控制云台俯仰和水平转动。一開始想用Gopro作为视频採集设备,但查了非常多资料也尝试了各种方法发现临时没法实现(假设有的话请留言告诉我:)。因此换了个廉价的网络摄像头。
Gopro能够通过wifi将图像实时传给手机或pad。就是不能传给树莓派。
(2) 编写云台控制算法
依据上一步得到的云台控制信号特征。编写云台控制算法。输入是目标中心与图像中心的偏移量△x,△y,输出为云台俯仰、水平的控制变量dx,dy。
是的,摄像头外壳是纸糊的-_-。
2.2 算法调试
(1) 在windows平台上写跟踪算法
USB摄像头接上电脑用Eclipse写跟踪算法,输出偏差量等參数调试。
(2) 拷贝算法到树莓派调试
由于树莓派有多个GPIO可连云台,因此云台跟踪控制必需要在树莓派上调试。Python多平台部署的长处在这就体现出来了,直接将算法复制到树莓派就可以执行调试。调试过程稍有点复杂,一開始的效果不好。耐心调,耐心改算法,效果也就慢慢出来了。
动起来的效果我们来看看以下的内容。
三、跟踪演示
室内跟踪效果视频链接:http://www.tudou.com/programs/view/68JDFqex1yM/
跟踪效果截图:
眼下云台和摄像头已经装上650无人机,航拍时的效果还有待实验。欢迎留言或邮件iracer@163.com讨论:)
转载请注明出处(本文更新链接):http://blog.csdn.net/iracer/article/details/54837636
DIY一个基于树莓派和Python的无人机视觉跟踪系统的更多相关文章
- 如何开发一个基于 Docker 的 Python 应用
前言 Python 家族成员繁多,解决五花八门的业务需求.这里将通过 Python 明星项目 IPython Notebook,使其容器化,让大家掌握基础的 Docker 使用方法. IPython ...
- 分享一个基于web的满意度调查问卷源码系统
问卷调查系统应用于各行各业,对于企业的数据回收统计分析战略决策起到至关作用.而现有的问卷调查系统大都是在线使用并将数据保存在第三方服务器上.这种模式每年都要缴纳费用并且数据安全性得不到保证.所以说每个 ...
- 一个基于Unix套接字的注册登录系统
2016/5/5 今天,我参考<Unix网络编程-卷1>第5章的TCP回射客户/服务器程序写了一个简单的注册登录系统,其功能如下:(1)注册.客户端向服务器发送个人信息请求注册,服务器查询 ...
- 一个基于activiti审批流程示例,如何与系统整合
前言 目前市场上有很多开源平台没有整合工作流,即使有,也是价格不菲的商业版,来看这篇文章的估计也了解了行情,肯定不便宜.我这个快速开发平台在系统基础功能(用户管理,部门管理-)上整合了工作流,你可以直 ...
- 理解DDoS防护本质:基于资源较量和规则过滤的智能化系统
本文由 网易云发布. 随着互联网生态逐渐形成,DDoS防护已经成为互联网企业的刚需要求,网易云安全(易盾)工程师根据DDoS的方方面面,全面总结DDoS的攻防对抗. 1.什么是DDoS DDoS全称 ...
- 基于RestOn智能睡眠监测器的睡眠监测系统
一.项目地址为: https://github.com/linqian123... 二.项目功能概述: 该项目实现的是一个基于RestOn智能睡眠监测器的睡眠监测系统.RestOn智能睡眠检测器通过W ...
- 2、基于wsgiref模块DIY一个web框架
一 web框架 Web框架(Web framework)是一种开发框架,用来支持动态网站.网络应用和网络服务的开发.这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方 ...
- psutil一个基于python的跨平台系统信息跟踪模块
受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...
- 初识TPOT:一个基于Python的自动化机器学习开发工具
1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...
随机推荐
- 第十章 OPENWRT安装nohup,因为不明原因nohup没有安装
Available pacaagess里找了coreutils-nohup包,安装好就行了 运行nohup自己的程序的时候可能会出现一下: root@OpenWrt:~# nohup: ignorin ...
- 分享一个 markdown 编辑器 - Mditor
只求极致 [ M ] arkdown + E [ ditor ] = Mditor Mditor 是一个简洁.易于集成.方便扩展.期望舒服的编写 markdown 的编辑器,仅此而已... 主页: h ...
- MySQL create table as与create table like对比
a.create table like方式会完整地克隆表结构,但不会插入数据,需要单独使用insert into或load data方式加载数据b.create table as 方式会部分克隆表结 ...
- sqlmap的篡改绕过WAF
space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ Example: * Input: SELECT id FRO ...
- 高性能WEB开发:深入理解页面呈现、重绘、回流
在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类 ...
- 解决Windows server 2012 R2 系统使用IIS8浏览Asp程序出现"An error occurred on the server when processing the URL"错误
进入IIS并将ASP里的“Send Error To Browser”设置为True后点击Appley保存即可 原因是IIS里的Asp设置禁用上当错误信息发送给浏览器,只要启用即可 如果没有Asp选项 ...
- 【Python】nvshens按目录批量下载图片爬虫1.00(单线程版)
# nvshens按目录批量下载图片爬虫1.00(单线程版) from bs4 import BeautifulSoup import requests import datetime import ...
- 缓存jQuery对象来提高性能
jQuery使元素的选择变得异常简单,这也是它快速流行起来的一大原因,如果你看刚刚开始使用jQuery朋友写的代码时,会发现很多数人写的代码都在滥用jQuery选择器. 如果你发现同一元素被查找多 ...
- Python-urllib学习记录
urllib是python自带库,不要专门安装,还挺好用的. 脚本语言的好处之一就是随写随用,有些东西用C语言写真的是能把人累死,换成python就是几行代码,so easy,对于喜欢偷懒的同学绝对是 ...
- 极客Web开发资源大荟萃
前端开发已经成为当前炙手可热的技术之一.此次我们总结的前端开发包含了相关技术和流行趋势,希望从中大家可以挖掘你们所需要的,并带给你们最有价值的帮助!原文来自:极客标签 使用代码回放来愉快地学习前端知识 ...