手眼标定学习笔记

目录

标定代码:

手眼标定原理学习

什么是手眼标定

手眼标定的目的

eye in hand

eye to hand

AX=XB问题的求解


标定代码:

GitHub - pumpkin-ws/HandEyeCalib

推荐博文:

https://zhuanlan.zhihu.com/p/486592374

 

手眼标定原理学习

参考:手眼标定理解「建议收藏」-腾讯云开发者社区-腾讯云

原文参考:https://blog.csdn.net/yaked/article/details/77161160?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

什么是手眼标定

手眼标定是为了得到相机坐标系与机器人坐标系之间的位姿关系,包括两种:eye in hand (相机安装在机械臂末端)和eye to hand (相机安装在机械臂外侧)。

手眼标定的目的

在机械臂抓取时,往往需要知道抓取目标与机械臂之间的位置关系,使用相机获得抓取目标的位置是有效的方法。 但是单纯使用相机得到的目标点位置是在相机坐标系下的位置,而抓取任务要得到的是目标点与机械臂之间的位置,因此这中间需要通过一些方法获得相机与机械臂之间的位置关系,从而实现目标点从相机坐标系到机械臂坐标系的转换。手眼标定正是用来获得相机与机械臂之间位置关系的一种方法。 简单讲,已知目标点A与相机B之间的坐标关系(相机获得),想要得到机械臂C与目标点A之间的坐标关系,就必须得到相机B与机械臂C之间的位置关系。

eye in hand

这种方式的手眼标定是通过两次运动解得相机坐标系(Camera)与机械臂末端坐标系(End)之间的坐标关系。 注意: 1、机械臂末端(End)在机器人(Base)坐标系下的坐标是可以通过机械臂各个关节的角度值直接解算出来的。 2、标定是通过两次改变机械臂末端(相机)位置来解算的,这整个过程中标定板(Object)相对是机器人(Base)的位置是固定不变的。(实际上,并不需要知道标定板与机器人(Base)的具体位置关系)。下面等式成立的条件就是两个不同位姿下标定板与机器人位置不变。

在这里插入图片描述

在这里插入图片描述

eye to hand

这种方法的手眼标定是通过两次运动解得相机坐标系(Camera)与机器人坐标系(Base)之间的坐标关系。 注意: 1、机械臂末端(End)在机器人(Base)坐标系下的坐标是可以通过机械臂各个关节的角度值直接解算出来的。 2、标定是通过两次改变机械臂末端(标定板)位置来解算的,这整个过程中标定板(Object)相对机械臂末端(End)的位置是固定不变的。(实际上,并不需要知道标定板与机械臂末端(End)的具体位置关系)。下面等式成立的条件就是两个不同位姿下标定板与机械臂末端位置不变。

在这里插入图片描述

在这里插入图片描述

AX=XB问题的求解

实际上,求解的只是一个固定的6自由度的位置姿态关系,可以用3X3的旋转矩阵和3X1的平移矩阵表示,也可以用其他方法表示如用四元数表示角度关系等。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133111.html原文链接:https://javaforall.cn

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

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

相关文章

「前端+鸿蒙」核心技术HTML5+CSS3(九)

以一个产品网站为例,以下是每个部分的HTML结构和CSS样式的完整代码示例。 1、顶部导航条 顶部导航条通常包含网站的联系信息或者一些导航链接。 HTML: <div id="top-nav"><ul><li><a href="#">联系方式</a></li>&…

国产操作系统上Vim的详解01--vim基础篇 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上Vim的详解01–vim基础篇 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上使用Vim的详解文章。Vim是一款功能强大且高度可定制的文本编辑器&#xff0c;广泛应用于编程和日常文本编辑中。…

记一次cms代码审计

000&#xff1a;前言 记录一次小型cms代码审计 001&#xff1a;任意文件删除 由于代码繁杂&#xff0c;不再一一展示 /app/controller/kindeditor.class.php 关键漏洞代码 public function delete() {$path ROOT_PATH.$_GET[pic];unlink($path);$flash M("flash&qu…

Postgre数据库初探

一、PostgreSQL介绍 PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES&#xff0c; 版本 4.2为基础的对象关系型数据库管理系统&#xff08;ORDBMS&#xff09;。POSTGRES 领先的许多概念在很久以后才出现在一些商业数据库系统中。 PostgreSQL是最初的伯克利代码的开…

vscode编译c/c++找不到jni.h文件

解决办法: 一、下载JDK 访问Oracle官网的Java下载页面&#xff1a;Java Downloads | Oracle 选择适合您操作系统的JDK版本&#xff1a; 对于Windows&#xff0c;选择“Windows x64”或“Windows x86”&#xff08;取决于您的系统是64位还是32位&#xff09;。对于Linux&#…

代码随想录-算法训练营day59【单调栈02:下一个更大元素II、接雨水】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第十章 单调栈part02● 503.下一个更大元素II ● 42. 接雨水 详细布置 503.下一个更大元素II 这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%…

Linux文件操作(二)

目录 1、Linux下文件查找命令 2、Linux下文件压缩工具 3、Linux下文件打包工具 一、Linux下文件查找命令 命令查找 Linux下一切皆文件&#xff01; which 命令&#xff1a;找出命令的绝对路径 whereis 命令&#xff1a;找出命令的路径以及文档手册信息 [rootlocalhost ~]…

筑牢科技与人才“护城河”,泸州老窖构建创新新生态

执笔 | 姜 姜 编辑 | 扬 灵 5月30日&#xff0c;以“‘数智’启新篇 ‘新质’酿未来”为主题的泸州老窖2024年科技和人才工作大会在泸州召开&#xff0c;再次让行业看到了近十年来泸州老窖科技人才布局与培养的显著成果&#xff0c;以及泸州老窖传承700年的人才力量。 表彰创新…

【接金币game】

接金币游戏是一种常见的简单游戏&#xff0c;玩家通过移动一个角色&#xff08;比如一个篮子或者人物&#xff09;来接住屏幕上方掉落的金币。以下是一个简单的接金币游戏程序的编写思路&#xff0c;我们将使用Python语言&#xff0c;并假设您使用的是Pygame库&#xff0c;这是…

RPM包方式离线部署gitlab

下载安装包 要求&#xff1a;可以联网&#xff0c;系统及版本与目标服务器一致。配置gitlab yum仓库 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 新建包存放目录 mkdir /root/gitlab 下载gitlab及相关安装包 …

【TB作品】MSP430G2553 单片机口袋板,DAC波形发生器

功能 DAC波形发生器 按键切换波形&#xff0c;正弦波、三角波、锯齿波、方波。 部分代码 const unsigned int zhengxian[101] { 32767, 34824, 36874, 38907, 40916, 42893,44830, 46719, 48553, 50325, 52027, 53654, 55198, 56653, 58015, 59276,60434, 61481, 62416, 63…

移动端input输入时底部按钮被虚拟键盘顶上解决办法

前言 遇到了在输入框输入时底部按钮被虚拟键盘上去的问题&#xff0c;把解决办法分享一下 解决办法 文本通过监听页面高度的变化对按钮进行隐藏控制 代码实现 import React, {useState } from "react";const BottomView ({ children, ...props }: any) > {c…

记录遇见的小问题

1&#xff0c;angularjs 使用bootstrap时&#xff0c;遇见模态框怎么点击空白处不关闭&#xff1b; <div id"dialog-modal" data-backdrop"static" data-keyboard"false"> 但是在实际使用过程中调用了一个html 需要在 js里加 $scope.Up…

老赛棍版端口,扫别人没扫到的资产

0x001 获取目标信息 因为某些敏感原因&#xff0c;这部分干脆以长沙为例&#xff0c;仅做查询方式参考。首先FOFA搜&#xff1a;region"Hunan" && city"Changsha"&#xff0c;全部转换为C段后去重&#xff0c;就得到该城市的大致网段&#xff1a;…

MR混合现实情景实训教学系统在消防课堂上的应用

MR混合现实情景实训教学系统在消防课堂上的应用具有很大的优势。它能够为学生提供一种沉浸式的体验&#xff0c;让他们更好地理解和掌握消防知识和技能。 1、模拟火灾现场&#xff1a;通过MR技术&#xff0c;可以创建逼真的火灾现场&#xff0c;让学生亲身体验火灾的危害和紧急…

Android O Camera深度研究

目录 Adnroid O之前的Android camera软件框架 Adnroid O camera软件框架 Passthrough Mode Binderized mode Wrapper shim for libhardware HALs Wrapper shim for libhardware HALs Customized Treble Camera HAL/framework Camera HAL transition and removal plan …

Android精通值Fragment的使用 —— 不含底层逻辑(五)

1. Fragment 使用Fragment的目标&#xff1a;根据列表动态显示内容&#xff0c;更简洁显示界面、查找界面 eg. 使用新闻列表动态显示新闻 1.1 Fragment的特性 具备生命周期 —— 可以动态地移除一些Fragment必须委托在Activity中使用可以在Activity中进行复用 1.2 Fragmen…

新鲜速递:图解新颖LLM的CoPE位置编码

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提供了大模型领域最新技…

基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法

基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法 本文介绍了基于docker的oracle12.2.0.1部署&#xff0c;包含了oracle基本配置、监听器和实例启动方法、PDB和CDB操作方法、表空间建立和用户数据库建立、常见启动问题解决等&#xff0c;并介绍了镜像制…

二、go微服务项目“商城项目实战开发”第二步grpc和gin的直连调用

文章目录 商城项目实战开发-GRPC和GIN的直连调用01、本次课程微服务的技术栈02、用户服务接口定义和实现登录1、密码问题01、MD5的方式02、加盐的方式03、动态盐04、使用加盐框架passwordEncoder2、用户服务接口的暴露3、Grpc的实现步骤1.定义暴露接口2.编写user的调用文件3.编…