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 准备知识

前面的几篇博文分别介绍了这个系统用到的基本知识:

  • 树莓派机器视觉编程环境搭建(点我)
  • Python机器视觉编程环境搭建
  • 自动控制系统的PID调节
  • 飞越650无人机的安装

二、设计步骤

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iracer/article/details/54837636

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 准备知识

前面的几篇博文分别介绍了这个系统用到的基本知识:

  • 树莓派机器视觉编程环境搭建(点我)
  • Python机器视觉编程环境搭建
  • 自动控制系统的PID调节
  • 飞越650无人机的安装

二、设计步骤

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iracer/article/details/54837636

DIY一个基于树莓派和Python的无人机视觉跟踪系统相关推荐

  1. 树莓派 python 无人机_DIY一个基于树莓派和Python的无人机视觉跟踪系统

    DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其 ...

  2. python与室内设计_基于树莓派和Python的智能家居系统设计

    基于树莓派和 Python 的智能家居系统设计 许礼捷 葛华 陈红 [摘 要] 介绍树莓派第 3 代开发平台,融合 Python 开发技术和 OneNET 云 平台通信技术等先进技术,设计一款智能化的 ...

  3. 一个基于OpenCV的Python程序,可以从摄像头捕获图像并识别简单数字。您可以根据需要进行调整,包括调整图像预处理和数字识别逻辑

    一个基于OpenCV的Python程序,可以从摄像头捕获图像并识别简单数字.您可以根据需要进行调整,包括调整图像预处理和数字识别逻辑 import cv2 import numpy as np imp ...

  4. 基于树莓派百度Api的人脸门禁系统--毕业设计

    基于树莓派百度Api的人脸门禁系统 在学校中因为上课原因,没有拿到关于电气及其自动化本专业的毕业题目,但是门禁系统让我眼前一亮.此题目是我硬着头皮接下的. 为了更好的做完自己的毕业设计,在不断的学习p ...

  5. 基于树莓派实现平菇栽培种 自动种植系统的设计和实现

     基于树莓派实现平菇栽培种 自动种植系统的设计和实现 徐征宇 韩佳辰 摘 要:本文从树莓派实现温湿度和二氧化碳浓度远程监测控制系统的搭建.平菇种植的特点.远程控制支持三个层次介绍了基于树莓派实现平菇栽 ...

  6. 一个基于Flask框架做的仿QQ邮箱系统(收发邮件、贝叶斯模型训练、垃圾邮件过滤、个性化标签)

    一个基于Flask框架做的仿QQ邮箱系统(收发## 标题邮件.贝叶斯模型训练.垃圾邮件过滤.个性化标签) 1.贝叶斯邮件垃圾邮件分类 对上千封邮件进行贝叶斯模型分类训练,对基本邮件实现垃圾分类效果. ...

  7. 一个基于.Net+Vue开发的开源权限工作流系统

    今天给大家推荐一个开源权限工作流系统,一个快速开发框架. 项目简介 这是一个基于.Net 5开发的权限管理.工作流系统框架.借鉴了Martin Fowler企业级应用开发思想,框架选项都是使用最新的技 ...

  8. python卡尔曼滤波室内定位_基于扩展卡尔曼滤波算法的室内定位跟踪系统

    基于扩展卡尔曼滤波算法的室内定位跟踪系统 凌海波,周先存 [摘 要] 摘要:为了解决无线室内定位系统实时跟踪位置坐标误差较大问题, 提出一种基于扩展卡尔曼滤波 (EKF) 算法的室内定位方法.系统采用 ...

  9. 推荐一个基于 Spring Boot+MyBatis Plus+JWT 的问卷系统!

    你好呀,我是 Guide!这里是 JavaGuide 的「优质开源项目推荐」第 8 期,每一期我都会精选 5 个高质量的 Java 开源项目. 时间过的真快,不知不觉「优质开源项目推荐」系列已经持续半 ...

最新文章

  1. “人机大战”捧红人工智能 新时代的HPC玩家需要什么能力?
  2. Windows下Core Audio APIs的使用简介
  3. 【原创】Quartus II 实验流程说明书
  4. sql查询结果集根据指定条件排序的方法
  5. 如何使用postman做接口测试
  6. Apache cxf JaxRs基本应用
  7. 用uliweb 创建项目
  8. js原生方式实现bind方法
  9. Android测试方法总结汇总
  10. 如何使用手机裁剪图片大小?
  11. Tita 绩效宝:掌握绩效考核对话
  12. python使用requests库爬取淘宝食品信息,包含sign参数破解
  13. android 自定义锁屏api,如何设置Android锁屏图像
  14. lan9252、lan9253和lan9254参数比较
  15. 教你学java_教妹学Java:Spring 入门篇
  16. 生死看淡,不服就GAN
  17. 电子签章过程中的原始数据处理
  18. CH340进行STM32单片机程序烧录
  19. 交换机断网的原因分析
  20. Qt给字体设置下划线

热门文章

  1. boost::math模块使用 Brent 方法求函数最小值的示例
  2. boost::histogram::algorithm::project用法的测试程序
  3. boost::hana::capture用法的测试程序
  4. GDCM:cmyk的Png文件转dicom文件的测试程序
  5. VTK:直线网格之RectilinearGridToTetr​​ahedra
  6. VTK:PolyData之GradientFilter
  7. VTK:图片之Transparency
  8. VTK:几何对象之OpenVRSphere
  9. DelegateModelGroup QML类型
  10. Qt Creator使用版本控制系统