机器视觉【1】-机械臂视觉

文章目录

  • Eye-to-Hand
  • Eye-in-Hand
  • 基于Eye-in-Hand型机械臂单目视觉定位
    • 单目相机标定
      • 针孔相机模型
      • 畸变
      • 标定方法
    • 机械臂手眼标定
      • 手眼标定求解
    • 图像预处理
      • 图像灰度化与二值化
      • 图像滤波
      • 图像特征匹配
    • 机械臂单目视觉定位
      • 目标物体图像深度信息
      • 目标物体中心定位
  • 参考文献

根据机械臂与相机所处的相对位置关系,一般分为 Eye-to-Hand 与 Eye-in-Hand 两种视觉系统。
在这里插入图片描述

Eye-to-Hand

Eye-to-Hand 型机械臂视觉系统指的是相机固定安装于机械臂外,不随机械臂运动,与机械臂的基坐标系相对位置关系不变。

Eye-to-Hand 型机械臂视觉系统较为简单,其只需要对相机进行标定,即能确定相机坐标系与机械臂坐标系之间的变换关系,且因相机安装于机械臂外,不受机械臂振动等因素影响,精度能得到较好的保证。但其受限于安装位置,若要进行多次定位目标,则需要安装多台相机进行定位,大大增加了成本,若定位目标处空间狭小,无合适位置安装相机,同样也不适用。

Eye-in-Hand

Eye-in-Hand 型机械臂视觉系统则指的是相机安装在机械臂的末端执行器上,跟随末端执行器一起运动。

Eye-in-Hand 型机械臂视觉系统标定时,需要先对相机进行标定,再确定相机与机械臂末端的变换关系(即手眼标定),同时还需要对机械臂进行运动学分析,以确定相机坐标系在机械臂运动过程中的变换关系,较为复杂,但能较好地应对复杂多变的定位目标需求。

基于Eye-in-Hand型机械臂单目视觉定位

  • 进行图像采集;以标定板图像通过相机标定与手眼标定,确定视觉系统的相机内外参数以及机械臂手眼矩阵;
  • 对目标图像进行图像灰度化与图像滤波,去除图像的噪声,得到质量更高的处理图片;
  • 对预处理后的一组图像进行图像匹配,基于三角测量原理,求取图像中特征点的深度信息;
  • 对预处理后的图像进行图像轮廓提取,获取目标在图像中的位姿;
  • 经坐标变换后确定目标在机械臂坐标系下的位姿。
    在这里插入图片描述

单目相机标定

相机标定:根据相机成像模型求取相机的内部参数和外部参数。

针孔相机模型

  • 相机内参矩阵

在理想的情况下,相机成像可简化为针孔成像:
在这里插入图片描述
O O O是相机的光心,为相机坐标系的原点;点 O 1 O_1 O1是相机光轴与图像平面的交点,为图像平面的中心;空间中某点 Q Q Q在相机坐标系与世界坐标系的坐标分别为 ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc,Yc,Zc) ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw,Yw,Zw);点 q q q Q Q Q经成像投影后所得,在图像坐标系下的坐标为 ( X u , Y u ) (X_u,Y_u) (Xu,Yu) f f f为相机焦距,表示光心 O O O到图像平面的距离。

由相似三角形原理,可以得到:
{ X u f = X c Z c ⇒ X u = f X c Z c Y u f = Y c Z c ⇒ Y u = f Y c Z c \begin{cases}\dfrac{X_u}{f}=\dfrac{X_c}{Z_c}\Rightarrow X_u=f\dfrac{X_c}{Z_c}\\\dfrac{Y_u}{f}=\dfrac{Y_c}{Z_c}\Rightarrow Y_u=f\dfrac{Y_c}{Z_c}\end{cases} fXu=ZcXcXu=fZcXcfYu=ZcYcYu=fZcYc

通常,图像坐标系的原点不是相机光轴与图像平面的交点 O 1 O_1 O1,而是在图像的右上角,且与成像平面还存在一个缩放变换。

O 1 O_1 O1与图像坐标系原点的偏移量为 ( X 0 , Y 0 ) (X_0,Y_0) X0Y0,图像坐标系与成像平面在 X 轴与 Y 轴方向的缩放倍数分别为 f x f_x fx f y f_y fy:
{ X u = f x X c Z c + X 0 Y u = f y Y c Z c + Y 0 \begin{cases}X_u=f_x \dfrac{X_c}{Z_c}+X_0\\\\Y_u=f_y \dfrac{Y_c}{Z_c}+Y_0\end{cases}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630819.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何进行开关电源温升极限测试?

开关电源温升极限测试是指开关电源在没有过温保护的条件下,逐渐升高电源的测试温度,直到开关电源损坏。温升极限测试是为了研究开关电源能够承受的最高环境温度,从而评估开关电源的性能,优化提升开关电源的工艺设计。 温升极限测试…

美团财务科技后端一面:如何保证数据一致性?延时双删第二次失败如何解决?

更多大厂面试内容可见 -> http://11come.cn 美团财务科技后端一面:项目内容拷打 美团财务科技后端一面:项目相关面试题,主要包含 Zset、延时双删失败重试、热点数据解决、ThreadLocal 这几个方面相关的内容 由于前几个问题是对个人项目的…

Java在MySQL数据报错Data truncation: Data too long for column ‘**‘ at row 1 处理

问题 在Java SpringBoot MyBatis 框架的项目中,一切正常,不过在一个接口的参数字段传入过大的数据就会报此错误: 请求常:org.springframework.dao.DataIntegrityViolationException: Error updating database.Cause:com.mysql.cj.jdbc.excep…

华为手机p70即将上市,国内手机市场或迎来新局面?

4月15日,华为官宣手机品牌全新升级,p系列品牌升级为Pura。华为P70系列手机预计将于2024年第一季度末发布,而网友也纷纷表示期待p70在拍照、性能上的全新突破。 网友们对华为P70系列的热情高涨,也印证了国内高端手机市场的潜力巨大…

【MySQL篇】mysqlpump和mysqldump参数区别总汇(第三篇,总共四篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&am…

NLP vs. LLMs: 理解它们之间的区别

作者:Elastic Platform Team 随着人工智能持续发展并在无数行业解决问题,技术的一个关键部分是能够无缝地桥接人类语言和机器理解之间的差距。这就是自然语言处理(NLP)和大型语言模型(LLMs)的用武之地。它们…

.Net RabbitMQ(消息队列)

文章目录 一.RabbitMQ 介绍以及工作模式1.RabbitMQ的介绍:2.RabbitMQ的工作模式: 二.RabbitMQ安装1.安装Erlang语言环境2.安装RabbitMQ 三.在.Net中使用RabbitMQ1.HelloWorld模式2.工作队列模式3.发布订阅模式4.Routing路由模式和Topics通配符模式 一.Ra…

Html面试题汇总

1. DOCTYPE(⽂档类型) 的作⽤ <!DOCTYPE>文档类型声明&#xff0c;作用就是告诉浏览器使用哪种html版本来显示网页 <!DOCTYPE html> 的作用就是让浏览器进入标准模式&#xff0c;使用最新的 HTML5 标准来解析渲染页面 它是一个文档类型声明标签&#xff0c;不是…

YoloV8改进策略:注意力改进、Neck层改进|自研全新的Mamba注意力|即插即用,简单易懂|附结构图|检测、分割、关键点均适用(独家原创,全世界首发)

摘要 无Mamba不狂欢,本文打造基于Mamba的注意力机制。全世界首发基于Mamba的注意力啊!对Mamba感兴趣的朋友一定不要错过啊! 基于Mamba的高效注意力代码和结构图 import torch import torch.nn as nn # 导入自定义的Mamba模块 from mamba_ssm import Mamba class Eff…

EPSON晶振应用到汽车电子产品上的型号有哪些?

EPSON品牌应用在汽车电子产品上的晶振.&#xff0c;当然也少不了晶振可能最熟悉的就是32.768K系列和26MHZGPS晶振用的多。 在汽车里每一个部件都应有的不一样,甚至多次使用到同一尺寸,不同频率的晶振.爱普生品牌晶振型号就有几百种,很容易混淆,要想记住汽车里所应用到的不是件…

Debian12 中重新安装MSSQL 并指定服务器、数据库、数据表字段的字符排序规则和默认语言等参数

在 Linux 上配置 SQL Server 设置 - SQL Server | Microsoft Learn 零、查看sql server 服务器支持的字符排序规则 SELECT Name from sys.fn_helpcollations() where name Like Chinese% go------ Chinese_PRC_CI_AI Chinese_PRC_CI_AI_WS Chinese_PRC_CI_AI_KS Chinese_PRC_…

第十四届蓝桥杯Java B组省赛部分题解

1、阶乘求和 解析 当n足够大时,阶乘和的后几个数字会趋于稳定,即相等,所以只需要多试几次,找到后9位相同部分。 答案 420940313代码实现 package contest;import java.util.*;public class Main