机器视觉【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}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FlinkCDC基础篇章2-数据源 SqlServerCDC写入到ES中

接着 上期FlinkCDC基础篇章1-安装使用 下载 Flink 和所需要的依赖包 # 下载 Flink 1.17.0 并将其解压至目录 flink-1.17.0 下载下面列出的依赖包,并将它们放到目录 flink-1.17.0/lib/ 下: 下载链接只对已发布的版本有效, SNAPSHOT 版本需要本地编译 …

视频批量高效剪辑,轻松翻转视频画面,支持将视频画面进行逆时针90度翻转。

在视频编辑的海洋中,你是否曾遇到过需要批量翻转视频画面的情况?传统的视频编辑工具在面对这样的需求时,往往显得力不从心,效率低下。今天,我要为大家介绍一款全新的视频编辑神器,它将彻底改变你的视频编辑…

小试牛刀!

1.从双倍数组中还原原数组&#xff08;力扣&#xff0c;vector&#xff09; java式c解法。 class Solution { public:vector<int> findOriginalArray(vector<int>& changed) {int n changed.size();if(n % 2 1) return {};map<int, int> mp;for(int c…

【最新可用】Claude国内镜像,可上传图片,可用Claude3全系模型,包括Pro版本的Opus),亲测比GPT好用

Claude对话、上传图片的超详细教程来啦&#xff01; 近期&#xff0c;Claude 3 Opus的发布引发了网络上的广泛关注与热议&#xff0c;有观点认为其性能已经凌驾于GPT-4之上。虽然网络上已经出现了大量基于这两款先进AI技术的实际应用案例&#xff0c;但仍有许多人对在国内如何…

游戏生成式 AI:编织梦想,避开阴影

想象一下&#xff0c;一个沉浸式的游戏世界中玩家遇到的每个 NPC 都由 AI 驱动&#xff0c;他们能与玩家进行互动&#xff0c;从改变游戏体验。据 Inword 一项研究显示&#xff0c;绝大多数游戏玩家渴望这种互动&#xff0c;愿意投入更多的时间和金钱来玩这种由 AI 驱动的游戏。…

网络编程套接字(三)之TCP服务器简单实现

目录 一、服务端TcpServer 1、tcp_server.hpp 2、tcp_server.cc 二、客户端TcpClient tcp_client.cc 三、服务器和客户端进行通信 四、完整代码 一、服务端TcpServer 首先我们需要对服务端进行封装。我们需要的成员变量有IP地址&#xff0c;端口号port&#xff0c;以及监…

JMM与内存屏障

一、cpu多核并发缓存架构解析 JMM内存模型&#xff1a;java多线程内存模型跟cpu缓存模型类似&#xff0c;是基于cpu缓存模型来建立的&#xff0c;java线程内存模型是标准化的&#xff0c;屏蔽掉了底层不同计算机的区别 JMM数据原子操作 read(读取)&#xff1a;从主内存读取数据…

作为Boss,还在写代码。what?赶紧改掉这个坏毛病

有些创业中的老板&#xff0c;经常或者偶尔也要写代码&#xff0c;我听了很震惊呀&#xff0c;这叫创业吗&#xff1f;这不是给员工打工吗&#xff1f;其他重要的事情谁来干&#xff0c;这个毛病一定要改。 一、比起写代码&#xff0c;你还有更重要的事情要做 作为BOSS和创业…

【Node.js从基础到高级运用】二十五、Node.js中Cluster的作用

引言 Node.js中的cluster模块允许您轻松创建共享服务器端口的子进程。这是一个核心模块&#xff0c;用于在Node.js应用程序中实现多进程架构&#xff0c;以充分利用多核CPU系统的计算能力。 cluster介绍 当您启动一个Node.js应用程序时&#xff0c;默认情况下它运行在单个进程…

怎么设置启用远程桌面? 如何让外网电脑远程本地内网?

如何远程控制电脑&#xff1f;最简单实用的方案是开启电脑系统自带的远程桌面功能&#xff0c;如果涉及跨网、内外网互通&#xff0c;可以同时用快解析内网映射外网。下面是方案的具体实施步骤&#xff0c;供大家参考。 怎么打开设置启用远程桌面&#xff1f; 1.在目标需要远…

idea 中导入的项目maven不自动下载依赖包

导入之后不会自动引入依赖包&#xff0c;如下图&#xff0c;external libraries 下没有依赖 解决方案&#xff1a;重新更新下maven的Local repository 即可

实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!

CSI总线介绍与优势 CSI&#xff08;CMOS sensor parallel interfaces&#xff09;总线是一种用于连接图像传感器和处理器的并行通信接口&#xff0c;应用于工业自动化、能源电力、智慧医疗等领域&#xff0c;CSI总线接口示意图如下所示&#xff08;以全志科技T3处理器的CSI0为…

Qt实现Mysql数据库的连接,查询,修改,删除,增加功能

Qt实现Mysql数据库的连接&#xff0c;查询&#xff0c;修改&#xff0c;删除&#xff0c;增加功能 安装Mysql数据库&#xff0c;QtCreator Mysql选择Mysql Server 8.1版本安装。 Mysql Server 8.1安装过程 1.首先添加网络服务权限&#xff1a; WinR键输入compmgmt.msc进入…

密码学 | 数字签名 + 数字证书

&#x1f951;原文&#xff1a;数字签名和数字证书的原理解读 - 知乎 &#x1f951;声明&#xff1a;后文图中若未明确指明&#xff0c;默认是 Bob 的公钥或私钥。 Step1&#xff1a;Bob 有两把钥匙&#xff0c;一把是公钥&#xff0c;另一把是私钥。 Step2&#xff1a;Bob 把…

安全狗云眼的主要功能有哪些?

"安全狗云眼"是一款综合性的网络安全产品&#xff0c;主要用于实时监控和保护企业的网络安全。其核心功能包括威胁检测、漏洞扫描、日志管理和合规性检查等。 以下是安全狗云眼的主要功能详细介绍&#xff1a; 1、资产管理 定期获取并记录主机上的Web站点、Web容器、…

达梦数据库——异常崩溃(core)分析处理

CORE文件介绍 core文件是在程序异常崩溃时生成的文件&#xff0c;它包含了程序在崩溃瞬间的内存状态信息&#xff0c;主要是用来调试和分析问题。我们可以使用调试器工具&#xff08;如GDB&#xff09;来分析core文件&#xff0c;以便定位和解决问题。 CORE文件的配置 开启cor…

ActiveMQ主从架构和集群架构的介绍及搭建

目录 一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 1.2 集群架构-Cluster模式特点 二、ActiveMQ的主从架构 2.1 架构图 2.2 特点 2.3 实现方式&#xff08;3种&#xff09; 2.4 实现 &#xff08;基于LevelDB复制&#xff09; 2.4.1 准备环境 2.4.2…

2024化工制造企业数字化白皮书

来源&#xff1a;蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示&#xff0c;2023年&#xff0c;我国石化行业实现营业收入15.95万亿元&#xff0c; 同比下降1.1%&#xff0c;利润总额8733.6亿元&#xff0c;行业经济运行总体呈现低…

vscode搭建C/C++环境

文章目录 一、安装vscode 二、下载安装g 三、安装VSCode插件 四、配置运行环境 一、安装vscode 直接官网免费下载&#xff1a;下载完成后进行安装&#xff0c;记得更换安装路径Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code editor redefine…

大数据------额外插件及技术------Git(完整知识点汇总)

Git 定义 它是分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;如&#xff1a;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛应用 作用 代码回溯&#xff1a;快速回到某一代码历史版本版本切换&#xff1a;同一个…