当前位置: 首页 > news >正文

二维码辅助回桩之二维码识别

蒙帕巡检机器人回桩主要依赖激光雷达等技术。而激光雷达成本较高,且在一些复杂环境中,如存在大量镜面反射或光线干扰的情况下,可能会出现定位不准确的问题。二维码具有独特的编码信息,不受环境光线、物体表面材质等因素的影响,能够为机器人提供稳定、准确的位置参考,作为辅助回桩技术可弥补其他导航回桩方式的不足。

二维码识别方法

1.图像预处理和二维码检测

二维码识别方法包含图像预处理与二维码检测,解码标签信息和二维码相对相机位姿估计。图像预处理与二维码检测首先将图片进行灰度化与二值化处理。

2.灰度化和二值化

输入图像通常为彩色图像。首先将其转换为灰度图,以便进行边缘检测和图案识别。为了进一步简化处理,通常将灰度图像进行二值化处理。二值化阈值的选择可以基于图像的光照条件。

3.边缘检测

接着使用边缘检测算法(如Canny边缘检测)在图像中提取出可能的二维码区域。Apriltag图案的形状为矩形,边缘检测能够帮助确定这些矩形区域。

4.轮廓分析

然后使用轮廓分析技术(例如OpenCV的findContours函数),从检测到的边缘中提取出符合Apriltag形状的矩形区域。通过形态学操作(例如膨胀、腐蚀等)进一步精确标签的边界。

5.角点定位

最后,由于Apriltag的二维码具有四个角点,通过精确检测二维码的四个角点,能够确定二维码的位置和方向。这个过程常通过亚像素级别的角点定位算法(如Harris角点检测或Shi-Tomasi角点检测)来完成。

二维码信息解码与位姿标记:

一旦二维码的四个角点被定位,需解码二维码中的信息。Apriltag的二维码由黑白的块状图案组成,解码过程会根据这些块状图案的排列规则来提取二维码的ID信息。该信息通常包含:标签的唯一ID(用于区分不同的二维码)可能还有附加的元数据,如校验信息等。在本次回桩项目中将二维码所处空间位姿,同步标记到文件中,从而实现了Apriltag二维码所处空间位姿状态的保留。二维码位姿估计是指确定二维码在相机坐标系中的位置和朝向。为进行二维码的位姿估计,我们需要利用相机的内外参数和二维码的几何特性。

1.相机的标定

在进行位姿估计之前,需要进行相机的标定。相机标定为确定相机的内参和外参。标定过程通常使用已知尺寸的标定板(例如棋盘格)。标定后的参数包括:内参(intrinsics):描述相机的焦距、主点坐标、畸变参数等。常用的相机内参包括焦距(fx, fy)、主点坐标(cx, cy)以及径向和切向畸变系数。外参(extrinsics):描述相机与世界坐标系的相对位置和朝向。外参通过旋转矩阵和平移向量来表示,即相机的旋转矩阵R和位移向量T。

2.位姿固定流程

标定后,得到的内参和外参可以用于后续的位姿估计。位姿估计流程在识别到二维码后,提取识别出的Apriltag标签的四个角的顶点坐标。

接着建立坐标系关系。明确摄像机的坐标系、图像坐标系以及Apriltag标签的坐标系。其中摄像机的坐标系是相对于世界坐标系的,图像坐标系是摄像机拍摄的平面图形的坐标系,而Apriltag标签的坐标系则是相对于世界坐标系的固定位置。

然后求解单应矩阵。利用已知的Apriltag标签的顶点坐标和其在图像中的投影坐标,通过求解单应矩阵H来建立图像坐标系和Apriltag标签坐标系之间的关系。

最后计算旋转矩阵和平移向量。利用单应矩阵H、摄像机的内参矩阵K以及Apriltag标签的物理尺寸等信息,通过数学变换计算出摄像机相对于Apriltag标签的旋转矩阵R和平移向量T。这两个参数描述了摄像机相对于Apriltag标签的位姿。

三.回桩精度要求

旋转矩阵R用于描述二维码相对于相机的朝向。然后位移向量T用于描述二维码相对于相机的位移。通过旋转矩阵和位移向量,可计算出二维码在相机坐标系中的精确位置和方向。

为验证位姿估计的准确性,通常会进行重投影误差的计算。重投影误差是指通过位姿估计得到的二维码角点在图像中的位置与实际观测位置之间的差异。通常使用最小化重投影误差的方式进行位姿优化。如上图所示相机相对于二维码的位姿正确。

为保证机器人能够顺利连接充电接口进行充电,回桩的精度要求较高。微小的位置偏差都可能导致充电失败,影响机器人的正常使用。二维码可以提供高精度的位置信息,机器人通过识别二维码可以精确调整自身的位置和姿态,以满足回桩的精度要求。


文章转载自:

http://B1VGiCS3.jksgy.cn
http://t26ngehE.jksgy.cn
http://h6Dx64ow.jksgy.cn
http://9HPyCtlh.jksgy.cn
http://oHTrOXCz.jksgy.cn
http://SDywVlgx.jksgy.cn
http://rqrh1rwm.jksgy.cn
http://10h4pMZC.jksgy.cn
http://WMIWd2pk.jksgy.cn
http://CTxpQ3Se.jksgy.cn
http://IKfXmIq9.jksgy.cn
http://RxpkkmJc.jksgy.cn
http://e8w0J064.jksgy.cn
http://nAEiYIHf.jksgy.cn
http://qZ9grLwa.jksgy.cn
http://pSK5PrzV.jksgy.cn
http://uom10cFc.jksgy.cn
http://0bSusIl9.jksgy.cn
http://4MCdMUMM.jksgy.cn
http://3oQ5qGCl.jksgy.cn
http://i0r7S48f.jksgy.cn
http://bIgrZILy.jksgy.cn
http://mHDIeNO9.jksgy.cn
http://n3voJYJa.jksgy.cn
http://q9XT413O.jksgy.cn
http://QW6JNuYO.jksgy.cn
http://Sb3jo0Jw.jksgy.cn
http://oolHcSC5.jksgy.cn
http://AvWArpdZ.jksgy.cn
http://oZ6wvYyA.jksgy.cn
http://www.dtcms.com/a/387289.html

相关文章:

  • Mojo vs Python vs Rust,2025年搞AI,怎么学
  • 从软件工程角度谈企业管理
  • 【C语言】C 语言自定义类型:联合与枚举的基础解析
  • 模型部署:(五)安卓端部署Yolov8关键点检测项目全流程记录
  • 在业务应用中集成 go-commons,实现应用+系统双指标监控
  • ESP32-C3四种工作模式
  • ReactNative中实现可拖拽的温度计组件
  • react snippets
  • 基于Matlab高低频混合建模的大气湍流相位屏生成算法
  • 2025年8月SCI-袋鼠逃生优化算法Kangaroo Escape Optimizer-附Matlab免费代码
  • Node.js 创建 TCP 服务
  • 关于鸿蒙配置HMRouter的问题,比如白屏等
  • 为什么 socket.io 客户端在浏览器能连接服务器但在 Node.js 中报错 transport close?
  • Express框架介绍(基于Node.js的轻量级、灵活的Web应用框架)
  • Lustre Ceph GlusterFS NAS 需要挂载在k8s容器上,数据量少,选择哪一个存储较好
  • Axios与Java Spring构建RESTful API服务集成指南
  • 贪心算法应用:集合覆盖问题详解
  • 分布式拜占庭容错算法——权益证明(PoS)算法详解
  • Maven 深入profiles和mirrors标签
  • SQL Server 运维实战指南:从问题排查到性能优化
  • FFmpeg的安装及简单使用
  • F019 vue+flask海外购商品推荐可视化分析系统一带一路【三种推荐算法】
  • R语言数据统计分析与ggplot2高级绘图实践应用
  • Java 设计模式——观察者模式进阶:分布式场景扩展与实战配置
  • ​​[硬件电路-238]:电阻、电容、电感对数字电路中的作用
  • IPD驱动下的电源技术革命:华为数字能源模块化复用与降本增效实践
  • 线性回归与 Softmax 回归:深度学习基础模型解析
  • 安全迎国庆|假日期间,企业如何做好网络安全防护?
  • Product Hunt 每日热榜 | 2025-09-16
  • 告别静态图谱!TextSSL如何用「稀疏学习」实现更智能的文档分类?