OpenMv测距(Apriltag)

2023-05-16

利用OpenMv测离Apriltag的距离(其他色块啥的算法都差不多,主要是Apriltag精确一些)

#本次利用OpenMv单目测距Apriltag离摄像头的距离,测试结果表明在距离小于50cm时测距较准,大于50cm误差就很大了
import sensor, image, time, math
from pyb import Servo
from pyb import UART

uart=UART(4,115200)
s3 = Servo(3)
sensor.reset()
sensor.set_framerate(0<<9|3<<11)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(90)#上面这些都是OpenMv里面的sensor模块
sensor.set_auto_gain(False)#自动增益需要关掉
sensor.set_auto_whitebal(False)#白平衡需要关掉
clock = time.clock()
f_x = (2.8 / 3.984) * 160
f_y = (2.8 / 2.952) * 120
c_x = 160 * 0.5
c_y = 120 * 0.5
chang=0 #初始化距离为零 

while(True):
    clock.tick()
    img = sensor.snapshot()
    for tag in img.find_apriltags(fx=f_x, fy=f_y, cx=c_x, cy=c_y):
        img.draw_rectangle(tag.rect(), color = (255, 0, 0))
        img.draw_cross(tag.cx(), tag.cy(), color = (0, 255, 0))
        print_args = (tag.x_translation(), tag.y_translation(), tag.z_translation())
        k=20/math.sqrt(1.4484983**2+0.7051393**2+7.4014117**2)#制作一个标准的比例,我这里是设置的20cm, math.sqrt()里面的三个参数是OpenMv摄像头中Apritag的三维坐标,可打印出来。
		#我这里选取了20cm作为标准距离,直尺量出摄像头离OpenMv的距离(20cm)(这里最好是垂直距离,误差较小)        
        s=math.sqrt(tag.x_translation()**2+tag.y_translation()**2+tag.z_translation()**2)#未知距离时的apriltag的坐标
        length=s*k#利用成像原理数学公式计算真实长度
        chang=length
        print("Tx: %f, Ty %f, Tz %f" % print_args)
        print('length: %f' %length)

先写这么多吧,有人看再写…

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

OpenMv测距(Apriltag) 的相关文章

  • OPENMV的学习(三)巡线

    存储文件 插入sd卡 xff0c 会将默认储存地址flash改为sd卡 image save span class token punctuation span span class token string 34 example jpg
  • Apriltag生成

    Apriltag生成 一 单个Apriltag生成 生成单个的二维码 xff0c 下面给出30cmx30cm打印大小的生成脚本 xff0c 输入路径直接用 apriltag imgs 工程的tag36h11系列的图片即可 生成结果得到587
  • 2021电赛F题之openmv巡线(附代码)

    效果展示 xff1a 出错解决方法 openmv数字识别源代码 gitee 通过使用不同阈值的方法可以得到当前区域中什么区域有红线 xff0c 对于电控而言作用类似于红外对管 xff0c 之后电控通过逻辑判断如何运动 xff0c 这就是我们
  • 蓝牙 舵狗 openmv通信相关

    总的思路是以openmv 接收蓝牙的指令 xff0c 如果是自动选项 xff0c 就在openmv 运行识别红球进行固定距离跟踪的程序 xff1b 如果是手动选项 xff0c openmv就直接把所得到的数据传给STM xff13 xff1
  • pixhawk无人机结合openmv之精准降落

    pixhawk飞控与openmv之精准降落 一 精准降落概述二 精准降落流程三 代码逻辑流程四 总结反思改进 一 精准降落概述 1 概述 无人机在生产生活中逐渐获得更大的用途 xff0c 京东的物流无人机有望解决用户快递最后一分钟的问题 x
  • OPENMV配置记录(一)

    文章目录 1 刷写固件2 开始配置openmv3 图像获取与显示4 修改图像 xff0c 获取像素 xff0c 添加元素5 使用图像进行基本操作 颜色追踪6 xff0c 识别码7 模版匹配8 通过比例的方法来求解距离9 组合使用 正好回家带
  • OPENMV巡线

    将openmv图片划分成三个ROI区域 import sensor image time lcd from pyb import UART from pyb import LED ROIS 61 0 0 160 40 0 6 0 40 16
  • 学习OpenMV(一)详细参数及简单介绍

    目录 一 Open MV 简介 1 OpenMV摄像头的特点 xff1a 2 OpenMV摄像头的应用 xff1a 3 规格 xff1a 二 搭建环境 xff0c Open MV IDE安装 1 Windows系统 2 Linux系统 三
  • OpenMV:20追踪其他物体的云台

    文章目录 追踪人脸的云台追踪AprilTags的云台追踪圆形的云台 和追踪小车的原理是一样的 首先获得目标物体的x y坐标 xff0c 然后通过目标物体的xy坐标来控制我们云台的两个舵机的pid运动 无论追踪什么物体 xff0c 都是通过物
  • AprilTag_ros的使用

    目录 前言 一 usb摄像头的安装和使用 二 AprilTag ros包的安装 三 单目摄像机的标定 四 AprilTag ros的使用 五 其他 前言 平台 xff1a VM虚拟机 ROS版本 xff1a noetic Ubuntu xf
  • pid摄像头循迹(opencv和openmv)

    pid摄像头循迹 xff08 opencv和openmv xff09 用摄像头进行循迹的方法参考硬件选型方面软件思路一 图像预处理 xff1a 代码部分二 线性拟合opencv线性拟合 xff1a 实际在树莓派上运行时 xff0c 帧率也比
  • 【OpenMV小车——第1.2篇】OpenMV主控板的简介与入门使用

    前言 xff1a 视觉小车最重要的是视觉功能 xff0c 其实现方式主要有 xff1a Opencv 43 外置计算机摄像头 需要计算机作为上位机 Stm32 43 OV7670 较难 xff0c 大师级 OpenMV摄像头 较简单 xff
  • Openmv学习day2——AprilTag

    仅作为个人学习 xff0c 原文地址 xff1a 链接 link AprilTag的简介 AprilTag是一个视觉基准系统 xff0c 可用于各种任务 xff0c 包括AR xff0c 机器人和相机校准 这个tag可以直接用打印机打印出来
  • 【毕业设计】基于STM32及OpenMV的云台追踪装置

    目录 修改记录1 摘 要2 整体功能分析3 硬件选型3 1 OpenMV4 Cam H73 2 STM32F103ZET63 3 DS3120舵机3 4 LED补光板3 5 供电及稳压3 6 硬件连接 4 软件功能实现4 1 OpenMV部
  • 通过openmv生成apriltag标签

    Apriltag官网提供的tag图片分辨率很低 xff0c 完全无法使用 xff0c 通过openmv生成apriltag标签 生成方法如下 xff1a openmv IDE的下载与安装 openmv官方提供了各种版本的IDE xff0c
  • 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信

    串口通信 K210与STM32串口通信 K210与OpenMV串口通信 串口通信前言为何需要串口通信 K210如何进行串口通信K210串口配置K210串口发送相关定义K210串口发送测试K210串口接收相关定义K210串口接收测试 STM3
  • openmv探索_4_AprilTag标记追踪

    原理及代码 AprilTag标记追踪 空间坐标系的建立 以镜头中心为坐标系原点 xff0c 建立空间坐标系 图2 1 空间坐标系 旋转角度 xff08 参考系是上图中的坐标系 xff09 1 初始状态 图3 1 物体摆放的初始位置 上图的
  • OpenMV:19OpenMV4 Plus训练神经网络进行口罩识别

    文章目录 1 采集2 连接3 训练复制API KEY上传照片模型创建生成神经网络训练神经网络测试神经网络备份保存 4 下载代码分析 注意 xff1a 只有 OpenMV4 Plus可以自己训练神经网络 xff0c 其他版本的性能不够 本节讲
  • OpenMV色块寻找

    OpenMV入门 xff0c 从入门到入坟 gt lt 此文章大部分内容取自OpenMV官方中文参考文档 详情看OpenMV官方中文参考文档 文章目录 一 sensor snapshot 拍一张照片二 image find blogs 查找
  • 2021全国电设(F题)openmv的图像识别之数字识别

    基于openmv的图像识别 通过参加全国电子设计大赛F题总结出openmv4的数字识别 其它版本暂时没试过 欢迎交流 openmv简介 OpenMV是一个开源 低成本 功能强大的机器视觉模块 以STM32F427CPU为核心 集成了OV77

随机推荐

  • git分支和tag

    分支管理 查看当前分支 git branch创建分支 git branch git branch index one切换分支 git checkout lt 分支名称 xff0c 主分支是master gt git checkout ind
  • TT无人机扩展模块库分析(default.ino)补篇2

    这个简单 请对照 因为源码在这里出现了和手柄相关的源码 设置tof传感器的超时时间 xff08 500 xff09 什么单位 xff1f 没有搜索到 xff0c 我用SI了 搜索到了 有很多函数 定位位置 在这里 找到了 xff0c 为什么
  • TCP建立连接的过程

    TCP是面向连接的 可靠的 基于字节流的传输层协议 xff0c 是TCP IP协议中最重要的协议之一了 我们都知道TCP通过三次握手建立连接 xff0c 那么每一次握手的作用 为什么要三次握手 如果某次握手丢包会发生什么呢 xff1f 文章
  • CANanlystII 基于linux的二次开发实践

    1 USBCAN分析仪国内现状 这是目前国内市场上的USBCAN分析仪现状 2 创芯科技产品 创芯科技的这个红色盒子是我比较下来综合性价比最高的 同时支持windows和linux的设备只要320元左右 你既可以用可视化界面发送 接收报文
  • AXI DMA总结、内核axidmatest.c测试程序分析、SG mode

    AXI DMA 概述 xff1a XILINX提供的AXI DMA支持Scatter Gather mode和Direct Register mode 数据位宽支持32 64 128 256 512 1024bits xff0c strea
  • ZYNQ 平台 AD9361实现网络通信的一种方案+网卡驱动分析及实现

    声明 xff1a 文中若有不合理的地方 xff0c 欢迎讨论学习及指正 xff0c 本文仅仅涉及软件部分的代码 xff0c 不阐述逻辑代码的实现 功能 xff1a 通过AD9361芯片实现无线组网 xff0c 能实现视频 文件 音频等传输
  • MTD分析

    概述 xff1a 本文对mtd的整个结构进行了分析 xff0c 分析得并非很深入 xff0c 但可以了解大体框架和目录结构 xff0c 另外本文会对源码文件进行分析 xff0c 大致描述其作用 xff0c 针对本文的内容中 xff0c 如有
  • CAN总线详解(转)

    1 简介 CAN是控制器局域网络 Controller Area Network CAN 的简称 xff0c 是一种能够实现分布式实时控制的串行通信网络 优点 xff1a 传输速度最高到1Mbps xff0c 通信距离最远到10km xff
  • Linux Socket CAN——驱动开发(转)

    Linux Socket CAN驱动开发 一 CAN总线协议 CAN是Controller Area Network 控制器局域网 的缩写 CAN通信协议在1986年由德国电气商博世公司所开发 xff0c 主要面向汽车的通信系统 现已是IS
  • Joint state with name: “base_l_wheel_joint” was received but not found in URDF

    ROS melodic下运行出现 WARN xff1a Joint state with name base l wheel joint was received but not found in URDF 原因是在robot描述文件URD
  • 已解决 vmware 虚拟机安装后没有虚拟网卡问题

    我用的方法是重装vmware xff0c 使用的是win10的系统 之前安装网ubuntu以后 xff0c 发现主机并没有虚拟网卡 xff0c 也百度了各种方法 xff0c 然而并没有什么用 xff0c 也问了很多人 xff0c 他们也提供
  • rk3399下pwm驱动

    现在记录一下rk3399下pwm的驱动编写 xff0c 下面是内核pwm的API xff0c 从开源论坛复制 xff08 firefly的开源论坛里面的Wiki教程 xff09 1 在要使用 PWM 控制的设备驱动文件中包含以下头文件 xf
  • rk3399下spi驱动

    SPI 使用 Note xff1a 本文从firefly wiki截取 SPI是一种高速的 xff0c 全双工 xff0c 同步串行通信接口 xff0c 用于连接微控制器 传感器 存储设备等 Firefly RK3399 开发板提供了 SP
  • rk3399 u-boot修改开机logo以及开机动画和开机视频

    首先分析了一下uboot启动流程中的一部分代码 xff0c 如下 第一部分 xff1a 开机logo xff08 下面代码分析排版有点乱 xff0c 可以忽略 xff09 1 board late init rk33xx c board r
  • VMware 虚拟网卡防火墙问题

    看了很多人遇到过一段时间会自己删除虚拟网卡的问题 xff0c 这里做一个补充 xff0c 关于防火墙问题 xff0c 如下 这里点进去 点击更改设置 xff08 先找到下图这一项 xff09 最后记得保存更改 xff0c 关于VMware的
  • postman汉化包下载

    postman汉化包 https github com hlmd Postman cn releases postman官网下载地址 Download Postman Get Started for Free
  • 一帧数据接收方法

    最近在做485数据通讯 xff0c 遇到一些通讯问题 xff0c 特意去查找资料 xff0c 一帧数据接收有三种方法 xff0c 现分享如下 xff1a 第一种方法 xff1a 根据帧头和帧尾进行校验 xff0c 串口发送2字节例如 xff
  • 如何使用RTKLIB进行RTK定位(一)

    今天从这个demo xff0c 教给大家如何使用RTKLIB进行RTK定位 xff0c 包括配置文件 数据等 xff1b RTKLIB源码和exe下载地址 xff1a RTKLIB An Open Source Program Packag
  • C++ “::” 作用域符 双冒号

    一 是作用域符 xff0c 是运算符中等级最高的 xff0c 它分为三种 1 global scope 全局作用域符 xff09 xff0c 用法 xff08 name 2 class scope 类作用域符 xff09 xff0c 用法
  • OpenMv测距(Apriltag)

    利用OpenMv测离Apriltag的距离 xff08 其他色块啥的算法都差不多 xff0c 主要是Apriltag精确一些 xff09 span class token comment 本次利用OpenMv单目测距Apriltag离摄像头