ROS2下机械手的手眼标定

news2024/11/26 12:36:42

最近发现老是有人通过爬虫把文章爬去他们网站,因此先发一遍这个草稿,让他们先爬。爬完我再慢慢修改

0.前期准备

0.1机械手要先映射(标定好)世界坐标系与用户坐标系

这个基本应该可以通过机械手自带的坐标系建立完成
一般机械手需要处理三种坐标:世界坐标系(基座标系)、工具坐标系、用户坐标系,分别对应下图的Base、Tool、Plane_1坐标系。
在这里插入图片描述一般来说,世界坐标系的原点在基座底部,工具坐标系的原点在机械手末端(工具末端),用户坐标系的原点在用户设置的位置。
世界坐标系是与机械手结构有关系的,一般来说厂家已经设定好、写死了的,用示教器或者示教软件无法修改。
工具坐标系乍一看没啥用,但是在一些特殊情形下会很方便(比如让机械手绕着工具末端旋转,例如【工业机器人舞刀,这运动精确度太精准了!】里面演示的两把剑末端相对旋转的运动)。
用户坐标系需要用户自行设定,设定的方法不同的厂家不一样。下图的是大族机械手的三点设定方式:点位1为原点、点位二为x正方向、点位三为y轴方向,z轴可根据左手或者右手定则得到。

在这里插入图片描述
理论上,每当更换机械手末端的工具(夹具、钻头、焊接头),都需要重新设置一次工具坐标系?(要提前设好,然后同步做坐标系切换就行)

0.2.相机的标定

相机的标定主要目的是消除相机的镜头畸变,比如鱼眼镜头。这里用到的棋盘格捕捉到的特征点需要用来计算透视变换矩阵,此时需要拍摄多张不同角度、不同位置的棋盘格图像进行识别计算。
相机标定完之后,就可以保证图像采集的图像是符合常规透视的(横平竖直)。
此时再使用合适的标定板来进行控件坐标的识别。
由于我目前选用的是AstraPro深度相机,它内部已经标定过了,因此我就可以省略相机标定这一步。
普通相机的标定可以查看【计算机视觉 相机标定】

1.坐标的标定

手眼标定也分为二维(平面)标定、三维(空间)标定。

1.1.二维标定(平面标定)

二维标定就比较简单。摄像头是垂直拍摄工作平面,只需要用棋盘格一次拍照标定就够了,这里的棋盘格主要目的是提供便于捕捉到的特征点。
特征点的实际坐标是已知的(通过设置每个单元格的实际物理尺寸可以计算得到),而通过这些特征点可以建立用户坐标系,然后计算两个坐标系(用户坐标系、图像坐标系)之间的变换矩阵(旋转、平移、缩放),然后就可以确定相机采集到的图像上的一个坐标点映射到用户坐标系的实际坐标点。
如下图所示,该标定板与作业平面重合,且与平面的XY轴同向且平行(也就是重合),原点可根据实际情况选择重合或者不重合。换言之,此标定板确定了用户坐标系。
标定板的坐标系与用户坐标系重合(物理上)、我们建立了标定板坐标系与图像坐标系的映射(计算上),基于上面两个成立的前提,我们也就建立了图像坐标与用户坐标系的对应。比如图像坐标(100像素,200像素)对应实际坐标的(95mm,23mm)。
在这里插入图片描述

1.2.三维标定(空间标定)

未完待续。


参考
【机器人抓取与操作简介】
【ROS_Noetic使用handeye-calib进行机械臂手眼标定】
【ROS机械臂手眼标定 Ubuntu20.04+ROS Noetic+easy_handeye+Franka+RealSense D435】
【计算机视觉 相机标定】
【工业机器人常用的六种坐标系】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依代码生成器的使用方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、代码生成器是什么?二、使用步骤1.菜单目录2.子菜单3.代码生成的方式 总结 前言 提示:这里可以添加本文要记录的大概内容&#xff1…

符合业务目标的数据战略建设

我们都知道,战略是通往目的的手段,是企业取得最佳商业成果的方法。处于当今的数字化社会,企业需要满足实现数字化转型及数字社会的需求,提升企业数据资产价值,推动行业甚至社会面的数据流通及数据价值变现。因此企业更…

【数据结构与算法】二、线性表的顺序表示【硬核】

文章目录 二、线性表2.1 线性表的定义和特点2.2 线性表的顺序表示和实现2.3 类C语言有关操作补充2.4 线性表基本操作的实现2.4.1 线性表的基本操作:2.4.2 线性表L的初始化2.4.3 销毁和清空线性表L2.4.4 求线性表L的长度以及判断线性表L是否为空2.4.5 顺序表的取值&a…

Docker --- Docker-Compose、镜像仓库

一、Docker-Compose Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器! 1.1、初识DockerCompose Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下: v…

手术机器人企业密集IPO 国产替代寻求突破

原创 | 文 BFT机器人 2023年或为手术机器人国产化元年,谁将成为中国的“达芬奇”?各路资本对中国手术机器人产业热情高涨。 今年以来,多家手术机器人企业启动首次公开发行(IPO)进程,精锋医疗冲刺港股&#…

09-Node.js—express框架

目录 1、express 介绍2、express 使用2.1 express 下载2.2 express 初体验 3、express 路由3.1 什么是路由3.2 路由的使用3.2.1使用Ajax发送一次post请求 3.3 获取请求参数3.4 获取路由参数3.5 路由参数练习 4、express 响应设置5、express 中间件5.1 什么是中间件5.2 中间件的…

echarts 环形图_圆环动画

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、环形动画二、环形图…

(原创)Flutter基础入门:手把手教你搭建Flutter混合项目:AAR方式集成

前言 上一篇博客讲了如何用“模块代码依赖模式”这种方式去搭建Flutter混合项目 因为篇幅原因,AAR集成方式来搭建项目的步骤和注意点放到这篇博客来讲 如果你没看过上篇博客,建议先阅读上一篇: (原创)Flutter基础入门…

快来看看这些前端开发技巧你掌握多少吧

文章目录 一、代码整洁推荐1.1 三元(三目)运算符1.2 短路判断简写1.3 变量声明简写1.4 if真值判断简写1.5 For循环简写1.6 对象属性简写1.7 箭头函数简写1.8 隐式返回简写1.9 模板字符串1.10 默认参数值1.11 解构赋值简写1.12 多条件判断简写1.13 多变量赋值简写1.14 解构时重命…

easyExcel动态导出,合并指定单元格

如上图所示,需要使用easyExcel动态导出上述表格并指定合并其中的单元格,日期是动态的,每个月不相同,直接上实现代码,以demo形式展现,更好理解 /** * 考勤记录动态导出测试 */ GetMapping(&q…

【Kotlin学习】R2DBC与MyBatis性能对比

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、测试框架选取Spring Webflux VS Spring MVCSpring Data R2DBC VS MyBatis 二、测试代码编写1. 项目1核心代码1.1 引入依赖1.2 接口代码 2. 项目2核心代码2.…

Layui图片上传

前端代码&#xff1a; <div class"layui-upload"> <button type"button" class"layui-btn" id"test1">上传图片</button> <div class"layui-upload-list"> <img class"lay…

如何一次性生成大量结构相同、内容不同的二维码

使用 批量模板数据 的方式&#xff0c;可 一次性生成大量结构相同&#xff0c;内容不同的活码 &#xff0c;大幅提升制码效率。 模板的样式&#xff0c;关联的表单状态等所有内容均可进行修改&#xff0c;修改后所有子码都将批量更新&#xff0c;且模板可重复使用&#xff0c;让…

页面加载进度条(VUE3)

通常我们希望在页面跳转加载中&#xff0c;页面顶部出现进度条。 &#xff08;1&#xff09; 下载依赖 npm install nprogress --save &#xff08;2&#xff09;在router中得index.js中引入 import NProgress from nprogress import nprogress/nprogress.css &#xff08;…

C++——类和对象(2)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年4月25日 内容&#xff1a;C类和对象讲解 目录 前言&#xff1a; 1.this指针&#xff1a; 2.默认成员函数&#xff1a; 3.构造函数&#xff1a; 4.析构函数&#xff1a; 5.构造函数的问题&#xff1a; 结尾&#xff…

Transformer 代码详细解析

Transformer 代码详细解析 文章目录 Transformer 代码详细解析一、Transformer 背景介绍1.1 Transformer 的诞生1.2 Transformer 的优势1.3 Transformer 的市场 二、Transformer架构解析2.1 认识 Transformer 架构2.1.1 Transformer模型的作用2.1.2 Transformer 总体架构图 2.2…

全国计算机等级三级网络技术试卷详解(一)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1.下列关于RPR技术的描述中&#xff0c;错误的是&#xff08;&#xff09;。 A) RPR与FDDI一样使用双环结构 B) 在RPR环中&#xff0c;源节点向目的节点成功发出…

2023常用的10款电力电子系统仿真分析软件推荐

市场上有许多电子仿真器&#xff0c;那么对于电力电子项目来说&#xff0c;哪种仿真器最好呢&#xff1f;或者因为期望任何软件包在各个方面都是最好的是不合理的&#xff0c;那么用户如何确定哪个软件是项目的最佳选择&#xff1f; PSIM PSIM是一种模块化封装&#xff0c;专为…

华为认证实验篇-ENSP的安装(附下载地址)

ENSP&#xff08;Enterprise Network Simulation Platform&#xff09;是华为公司开发的一款网络仿真软件&#xff0c;它可以帮助网络工程师进行网络拓扑设计、网络配置、网络测试等工作。本篇文章将介绍如何在Windows操作系统上安装ENSP。后续会在专栏陆续更新ENSP的实验&…

MACH SYSTEMS操作手册 SAEJ2716(SENT) to RS-232/CAN Gateway怎么使用?

双通道SAE J2716 (SENT)至RS-232/CAN总线网关&#xff0c;具有两个双向SENT通道和RS-232 (SENT-RS232) 或CAN总线 (SENT-CAN) 接口。两种变体还提供两个模拟输出&#xff0c;可以直接将输入SENT数据转换为模拟电压。该网关配备了一个免费的PC应用程序&#xff0c;用于SENT通信分…