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

【机器人定位引导中的机器视觉技术】

文章目录

  • 手眼标定原理
  • 手眼标定流程
  • 定位引导
  • 1、单相机抓取定位引导
  • 2、单相机纠偏定位引导
  • 3、上下相机对位引导


随着工业生产中对自动化的要求越来越高,视觉技术已被广泛引入工业机器人行业,具备视觉的工业机器人能更快、更准、更灵活地完成定位抓取、对位组装等。基于图像分析的视觉技术在机器人引导相关应用中的主要作用是精确获取对象物(待抓取物体)和目标物(待组装物体)的坐标位置和角度,并将图像坐标转换为机器人能识别的机器人坐标,指导机器人进行纠偏和组装。因此,手眼标定和定位引导是机器视觉在机器人引导中应用的的核心。

手眼标定原理

原理:所谓手眼标定,即将手(机械手)和眼(摄像机)的坐标系统一起来,解决相机与机械手之间的坐标转换关系,让机械手能精确抓取到摄像机定位的目标。

在这里插入图片描述

从一个坐标系XOY到另一个坐标系X’O’Y’,可以看做是XOY经过平移、旋转、缩放等效到另一个坐标系X’O’Y’。

在这里插入图片描述

其转换关系如下所示:

在这里插入图片描述

上述矩阵准确描述了两个坐标系之间的关系,其中fx, fy分别是X方向和Y方向的缩放尺度,a, b分别是X方向和Y方向的平移量,θ是坐标系的旋转角度。

手眼标定流程

求解标定的转换公式只需要三组以上两个坐标系的对应点,所以在视觉应用中一般采用N点标定算法来实现手眼标定。

VM算法平台标定流程

海康威视VM算法平台中具备丰富的定位工具和包含N点标定在内多种标定工具,可以便捷地实现手眼标定。
在这里插入图片描述

接收到机器人的定位触发信号后

1、相机图像

执行图像采集

2、高精度匹配

进行定位,获取图像坐标系位置

3、N点标定

通过图像坐标和工具预设的N点机器人坐标完成手眼标定

在这里插入图片描述

手眼标定流程图

在这里插入图片描述

标定过程

海康威视VM算法平台会将标定路径以及标定精度显示在界面端,便于用户排查调试流程,实现标定过程可视化。

定位引导

在机器视觉与机器人相结合的应用中,机器人引导定位最为普遍。此类场景下,大致可分为单相机抓取定位引导、单相机纠偏引导、上下相机贴合定位引导。

1、单相机抓取定位引导

在这里插入图片描述

① 相机运动
在这里插入图片描述

② 相机静止正装

上图即为单相机定位引导的场景,相机即可安装于机器人上,也可固定于机台上。通过相机拍摄传送的来料,对其进行定位以便机器人根据定位信息抓取来料,如此可降低对工位间传送机构的准确性要求,确保抓取位置的一致性。

基于VM算法平台实现单相机抓取定位引导流程如下图所示,
在这里插入图片描述

接收到机器人的定位触发信号后

  • 1、相机图像

    执行图像采集

  • 2、高精度匹配

    进行定位,获取图像坐标系位置

  • 3、标定转换

    将像素坐标转换为物理坐标

  • 4、偏差计算

    计算当前值与基准值偏差

  • 5、格式化

    将数据按约定格式进行打包

  • 6、发送数据

    将数据发送给机器人

2、单相机纠偏定位引导

在这里插入图片描述

如左图所示,单相机纠偏定位引导中,相机一般倒装并固定在机台上,通过视觉定位引导机器人纠正来料位置的波动,确保对每个来料进行精组装。

基于VM算法平台实现单相机纠偏引导流程如下所示,

在这里插入图片描述

注:流程中各工具的使用介绍同上。

而此处用【单点对位】而非【变量计算】是因为该模块考虑了机器人末端有延展轴,使得操纵点不是法兰中心导致的不共轴。

3、上下相机对位引导

在这里插入图片描述

如左图所示,该场景由两个相机组成,下相机倒装于机台上,用于对抓取的对象工件进行定位纠偏,上相机安装于机器人上随机器人一同移动,用于对象工件抓取定位和目标位置定位。

应用场景:该系统可广泛应用于3C产品屏幕及电路板的生产组装等相关场景,如将膜与玻璃对齐贴合或将玻璃和偏光片对齐贴合等。

基于VM算法平台的上下相机对位引导方案如下所示,

在这里插入图片描述

全局流程

在这里插入图片描述

上相机流程

在这里插入图片描述

下相机流程

#注:流程中各工具的使用介绍同上。

海康威视VM算法平台与机器人定位引导

海康威视VM算法平台除了集成80余种视觉工具,可实现高精度视觉定位、一键式手眼标定以及多种对位方式外,还具备丰富的通信协议,已在众多实际应用中实现了与ABB、EPSON、FANUC、UR、华数机器人、众为兴机器人等工业机器人的成功对接。

海康威视机器视觉在机器人定位引导中的应用

在这里插入图片描述

“

海康威视VM算法平台将持续丰富和优化视觉工具,让视觉应用更轻松!

相关文章:

  • 零售商贩mysql表设计:主题信息表(theme)
  • 本文带你了解透彻云计算(前世,今生,未来)
  • ARM发布Cortex-X3和Cortex-A715
  • 麻雀算法极限学习机SSA-ELM回归预测及其MATLAB代码实现
  • 云原生DevOps篇:jenkins发送通知到企业微信机器人
  • LeetCode337:打家劫舍III
  • 【飞桨PaddleSpeech语音技术课程】— 语音识别-流式服务-模型部分
  • isomap降维算法--学习笔记
  • 【Linux】yum vim 基础工具的使用
  • QT学习_03_坐标系统和内存回收机制
  • cookies,session,token都是相对安全,并不能完全防窃取
  • 在Ubuntu22.04条件下,如何打开树莓派4B的串口
  • 初识Docker
  • PMP每日一练 | 考试不迷路-10.29(包含敏捷+多选)
  • SSL证书验证原理和https加密
  • [LeetCode] Wiggle Sort
  • [译]Python中的类属性与实例属性的区别
  • css属性的继承、初识值、计算值、当前值、应用值
  • django开发-定时任务的使用
  • Fundebug计费标准解释:事件数是如何定义的?
  • interface和setter,getter
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Joomla 2.x, 3.x useful code cheatsheet
  • Laravel核心解读--Facades
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • magento2项目上线注意事项
  • mysql中InnoDB引擎中页的概念
  • node 版本过低
  • scrapy学习之路4(itemloder的使用)
  • Terraform入门 - 1. 安装Terraform
  • vue学习系列(二)vue-cli
  • Web标准制定过程
  • Xmanager 远程桌面 CentOS 7
  • 前嗅ForeSpider教程:创建模板
  • 智能网联汽车信息安全
  • k8s使用glusterfs实现动态持久化存储
  • ​configparser --- 配置文件解析器​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #单片机(TB6600驱动42步进电机)
  • (独孤九剑)--文件系统
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (十三)Flask之特殊装饰器详解
  • . Flume面试题
  • .NET DataGridView数据绑定说明
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [.net]官方水晶报表的使用以演示下载
  • [Android Pro] AndroidX重构和映射
  • [BeginCTF]真龙之力
  • [c#基础]值类型和引用类型的Equals,==的区别