欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【UAV】光流模块、测量速度、快速入门及安装使用

发布时间:2025/4/5 编程问答 76 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【UAV】光流模块、测量速度、快速入门及安装使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 简介
  • 实物接线图
  • 数据分析
  • 机械特性
  • 测试
    • 静止不动
    • 移动
  • Ref:

简介

当目标物体在摄像机前运动或者摄像机在环境中移动时,目标图像是在发生变化的,图像灰度模式的表面运动就称为光流。简单理解,光流就是通过检测图像中光点和暗点的移动,来判断图像中像素点相对于飞行器的移动速度

举个例子,当我们做火车时,可以看到窗外的树在不断地向后“流动”,通过树向后流动的速度,我们可以估计当前火车的速度。光流模块就是基于这个原理,检测两帧图像中“树”的相对位置,由于拍摄两帧图片的时间差是固定的,便可以计算出像素点的移动速度。若我们知道“树”和相机的距离,便可以计算当前的实际速度

测距:对速度进行积分就可以得到位移。

定点:利用光流模块返回的位置信息或者速度信息,形成一个闭环控制,即可实现定点。

在光流理论中,前提是下面两个假设成立:

  • 摄像头采集到的两帧图像之间的像素灰度不变;
  • 相邻的两帧像素具有相对运动;
  • 光流是测速算法,并不是直接定位的。简单理解,光流就是通过检测图像中光点和暗点的移动,来判断图像中像素点相对于飞行器的移动速度。如果地面是静止的,自然就可以得到飞行器相对于地面的移动速度啦。所谓光流定位,其实是利用光流测速再积分定位而已啦。

    实物接线图

    数据分析

    通信方式为串口通信,数据特性:

    • 8 位数据位、无校验位、1 位停止位、波特率 19200bps
    • 通信频率:约 66fps 帧速率向主机发送数据
    • 其他:如果连续两帧位移太小,会输出 0,然后再足够位移时再输出数据

    数据说明:

  • 包头为固定的两个字节:0xFE(包头)、0x04(字节数);
  • DATA0、DATA1 是 flow_x 的低八位和高八位,即 flow_x = (int16_t)(DATA1<<8)|(DATA0);
  • DATA2、DATA3 是 flow_y 的低八位和高八位,即 flow_y = (int16_t)(DATA3<<8)|(DATA2);
  • 倒数第三个字节为校验字节,是 DATA0~DATA3 四个字节的累加值,即 SUM=DATA0+DATA1+DATA2+DATA3;
  • 倒数第二个字节为地面环境质量,数值越大表示地面环境质量越高;
  • 最后一个字节是包结束标识符:1)常规模式下固定是 0xAA(Y 引脚高电平);2)偏航模式下固定是 0xBB(Y引脚低电平)。
  • 机械特性

    测试

    下图为串口打印出来的直接读取数据

    静止不动

    0xFE0x04DATA0DATA1DATA2DATA3SUMSQUAL0xAA/BB
    254400000111170

    移动

    0xFE0x04DATA0DATA1DATA2DATA3SUMSQUAL0xAA/BB
    254400255255254154170

    Ref:

  • 迷你光流传感器 定点悬停 室内正常灯光瓷砖地板上也可使用
  • 光流模块:小模块,大作用
  • 光流定位原理是什么?? - 知乎
  • 总结

    以上是生活随笔为你收集整理的【UAV】光流模块、测量速度、快速入门及安装使用的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。