上下相机对位,上下贴合,上下相机映射对位场景案例

2023-10-30 14:37

本文主要是介绍上下相机对位,上下贴合,上下相机映射对位场景案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 场景描述
    适用场景:上下相机映射对位场景,机械手在固定上料位置取料,然后放置到料盘内/贴合
    到目标位置;当上料与料盘位置都会出现偏差时可采用上下相机映射对位。
    在这里插入图片描述
    案例场景目标:
    位置目标:将图 1 中物料的 Point 点贴合到图 2 中料盘的 Point2 点;
    姿态目标:将图 1 中物料的 Line 边和图 2 中的 Line2 边对齐。
    在这里插入图片描述
    限制条件:该应用对机构有一定限制,需确保机构的 XYR 一体,上相机安装在 R 轴上(可随 XY 一起平移,随 R 轴一起旋转)或相机静止;下相机静止安装。
  2. 定位引导视觉流程
    整个应用分为标定、示教和生产三部分,需依次进行。
    2.1 标定(步骤一)
    标定目的:本场景涉及到两个相机坐标系和一个机构坐标系,为了统一坐标系需做两次坐标
    系标定,将坐标系统一到机构坐标系。
    标定方式:
    1)下相机做十二点标定:工具中心与旋转中心(一般为法兰中心)共轴的定位引导场景,可采
    用九点标定;工具中心与旋转中心不共轴,此时可采用十二点标定;
    2)上相机和下相机做映射标定:有标定板可用标定板映射,无标定板可用物料做相机映射;
    下相机十二点标定示意图如下:
    在这里插入图片描述
    上下相机映射标定示意图如下:提取四组一一对应的特征点
    在这里插入图片描述
    2.1.1 搭建下相机标定流程
    在这里插入图片描述
    1)图像特征点提取
    高精度模板匹配:粗定位;
    边缘交点:精定位,获取图像点和角度信息。
    在这里插入图片描述
    2)物理坐标获取
    可使用接收数据和协议解析,解析出通信发送的机械手实时物理坐标。
    3)平移旋转标定模块
    标定基本参数设置如图所示:
    在这里插入图片描述
    标定类型:共轴选择平移标定;不共轴选择平移旋转标定;
    相机模式:根据实际场景选择,自由度建议使用默认选项第二个自由度(缩放、旋转、纵横
    比、倾斜以及平移);
    平移次数默认 9 次;旋转次数十二点标定可设为 3。
    2.1.2 创建通信触发
    可在通信管理添加通信设备,全局触发建立触发事件,实现 PLC 通信触发视觉流程;详细协议需与 PLC 工程师协商。
    在这里插入图片描述
    2.1.3 下相机平移旋转标定流程
    1)标定的操作步骤:
    [1]. 机械手吸取标定片或物料移动至下相机视野内。
    [2]. 机构带着相机按 Z 字形等间距平移 9 次,平移中保持角度固定;每移动到位一次,需
    通讯发送物理坐标(如:C1,5,5,0)给视觉流程并触发标定流程拍照。
    [3]. 回到中心点(一般为标定第五点,第十一点和第五点重合),机构带着相机顺/逆时针
    旋转 3 次,旋转过程中机械手 XY 坐标保持固定。
    整体标定轨迹如下图所示:
    在这里插入图片描述
    2)标定结果查看(出现异常需重新标定)
    标定轨迹:如图所示为标定轨迹,轨迹是否存在波动(建议等步长,方便通过轨迹排查特征提取是否正确)。
    在这里插入图片描述
    标定状态:标定状态 1 表示成功,0 表示失败需重新标定。
    平移像素平均误差和旋转像素平均误差:根据实际精度要求判断,一般建议在一个像素以内。
    角度旋转一致性:表示图像坐标系与机械手坐标系的旋转一致性,1 表示旋转一致,-1 表示旋转方向相反,需旋转机构查看旋转一致性是否判断准确,若判断错误需调整参数重新标定。
    3)标定状态检测正常则生成标定文件。
    2.1.4 上下相机映射标定流程
    上下相机映射标定步骤:
  1. 放置标定物料于上相机视野内:物料要求上下相机拍摄不同面时能同时拍摄到至少四个不共线的特征点;
    在这里插入图片描述
  2. 上相机在拍照位拍照;
  3. 移动机械手抓取物料,记录此时的物理坐标(为示教物理点);
  4. 抓取物料平移到下相机视野内,下相机拍照;
  5. 搭建上下相机映射标定流程:
    流程如图所示,左右分别为上下相机采集的一一对应的图像特征点,用相机映射模块得到两个相机的映射矩阵。
    在这里插入图片描述
  6. 生成映射标定文件。
    2.2 示教(步骤二)
    示教目的:通过示教建立目标检测物的基准像素坐标和物理坐标之间的关系。记录映射标定时吸取物料时的物理坐标(示教物理点),填入单点映射对位模块。
    在这里插入图片描述
    2.3 生产(步骤三)
    2.3.1 下相机拍照流程
    1)下相机拍照流程如图所示
    在这里插入图片描述
    2)将下相机提取的对象特征点和直线角度传给全局变量以便上相机位使用。
    2.3.2 上相机拍照流程
    1)上相机拍照位确认
    上相机拍照位坐标最好与标定第五点拍照位一致,可产生 X/Y 偏移,但拍照姿态(相机旋转角度)必须保持不变。
    上相机拍照位与标定时的工作距离必须保持不变。
    2)上相机拍照方案搭建:如图所示为上相机拍照流程,生产时需保证上相机提取的对象特征点与下相机提取的目标图像特征点一致,直线查找方向一致。
    在这里插入图片描述
    3)单点映射对位模块配置:对象像素点订阅下相机传送到全局变量的特征点;目标像素点订阅上相机提取的特征点;目标直线起点终点订阅上相机提取的直线起点终点,加载上下相机标定的标定文件。
    在这里插入图片描述
    2.3.3 实际生产流程
    1)机械手抓取物料移动到下相机拍照位,触发下相机拍照流程;
    2)机械手移动到上相机拍照位,触发上相机拍照流程:单点映射对位模块结果分为相对坐标及绝对坐标,绝对坐标则为机构抓取的位置。使用格式化模块订阅单点映射对位模块输出的坐标值,然后使用发送数据模块将结果发送给机械手,机械手按照绝对坐标可实现引导定位。
    在这里插入图片描述

这篇关于上下相机对位,上下贴合,上下相机映射对位场景案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308587

相关文章

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

基于 Java 实现的智能客服聊天工具模拟场景

服务端代码 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Serv

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。 🚀详情:《ROS2从入门到精通》 1 控制插

django学习入门系列之第三点《案例 小米商城头标》

文章目录 阴影案例 小米商城头标往期回顾 阴影 设置阴影 box-shadow:水平方向 垂直方向 模糊距离 颜色 box-shadow: 5px 5px 5px #aaa; 案例 小米商城头标 目标样式: CSS中的代码 /*使外边距等于0,即让边框与界面贴合*/body{margin: 0;}/*控制父级边框*/.header{backgroun

MATLAB算法实战应用案例精讲-【数模应用】三因素方差

目录 算法原理 SPSSAU 三因素方差案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 均方平方和类型? 事后多重比较的类型选择说明? 事后多重比较与‘单独进行事后多重比较’结果不一致? 简单效应是指什么? 边际估计均值EMMEANS是什么? 简单简单效应? 关于方差分析时的效应量? SPSSAU-案例 一、案例

Retrofit介绍案例

Retrofit这东西我就不多做解释了,反正最近应用很广,基本都快和OkHttp一起成为安卓的事实网络访问标准框架了。   这么好的一个东西,官网文档实在是不算太好,说的不太清晰。按官网的经常会有“Could not locate ResponseBody converter for”问题。 反正折腾了一番,终于跑出来了一个例子。这里把正确的例子写出来,方便大家参考。 首先要注意

Kimichat使用案例026:AI翻译英语PDF文档的3种方法

文章目录 一、介绍二、腾讯交互翻译TranSmart https://transmart.qq.com/三、沉浸式翻译三、谷歌网页翻译 一、介绍 短的文章,直接丢进kimichat、ChatGPT里面很快就可以翻译完成,而且效果很佳。但是,很长的PDF文档整篇需要翻译,怎么办呢? 二、腾讯交互翻译TranSmart https://transmart.qq.com/ 软件

QML 中宽度、高度与隐式宽度/高度的区别及其应用场景

在 QML 中,width、height 与 implicitWidth、implicitHeight 这几个属性常常令开发者感到困惑。本文将详细介绍它们之间的区别,并说明在何种情况下应使用隐式尺寸以及普通尺寸。 基本定义 width 和 height:表示组件/item 的实际尺寸。implicitWidth 和 implicitHeight:表示组件/item 的自然尺寸,即在未明确指定尺

用python写一个AI Agent对接企业微信上下游协同的案例

要实现一个AI Agent对接企业微信上下游协同,我们可以使用Python编写一个企业微信机器人,用于接收和处理来自企业微信的消息。在此示例中,我们将使用`wechatpy`库来实现企业微信机器人,并使用`requests`库实现与上下游系统的通信。 首先,确保安装了`wechatpy`和`requests`库: ```bash pip install wechatpy requests ``

初学WebGL,使用Three.js开发第一个3d场景示例

使用Three.js 开发3d场景   在图书馆偶然撞见《Three.js开发指南》一书,便试着捣鼓一翻,现将第一个示例的部分代码、注解和相关方法的API记录在此。因为此书发行时是Three.js r69版本,所以当前部分代码有所修改,且所有方法和参数以官方最新版本Three.js r90为准。 <!doctype html><html lang="en"><head><meta char