手眼标定理解「建议收藏」

手眼标定理解「建议收藏」参考: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什么是手眼标定手眼标定是为了得到相机坐标系

大家好,又见面了,我是你们的朋友全栈君。

参考: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.net/133111.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月1日 下午2:40
下一篇 2022年5月1日 下午3:00


相关推荐

  • Python statsmodel包训练LR模型

    Python statsmodel包训练LR模型Python中训练LR模型一般使用sklearn包,输出模型报告和其他机器学习方法一样。但从统计背景出发,想看更详细的报告,statsmodel包可以帮助实现。1.训练模型importstatsmodels.apiassmfromstatsmodels.stats.outliers_influenceimportvariance_inflation_factor#tr…

    2022年10月13日
    5
  • PJSIP交叉编译

    PJSIP交叉编译大家在交叉编译 pjsip 的过程中总是遇到各种各样的问题 今天我把自己交叉编译 PJSIP 的过程记录下来 供大家参考

    2026年3月17日
    2
  • 如何利用eclipse创建一个java web项目?「建议收藏」

    如何利用eclipse创建一个java web项目?「建议收藏」1.在左侧空白处,右键选择New->DynamicWebProject2.若New的选择列表中没有DynamicWebProject,则选择Others,然后输入dynamic(一般输入dy就可以),选择DynamicWebProject3.输入项目名称,选择运行时环境(中间件环境),选择web相应的版本。4.点击Finish

    2022年7月19日
    27
  • CSS颜色代码 颜色值 颜色名字大全

    CSS颜色代码 颜色值 颜色名字大全颜色值 CSS 颜色使用组合了红绿蓝颜色值 RGB 的十六进制 hex 表示法进行定义 对光源进行设置的最低值可以是 0 十六进制 00 最高值是 255 十六进制 FF 从 0 到 255 种红绿蓝值能够组合出总共超过一千六百万种不同的颜色 根据 256x256x256 计算 十六进制值使用三个双位数来编写 并以 符号开头 如下 FFFFFF DDDD

    2026年3月18日
    2
  • 利用DeepSeek提升技能[可运行源码]

    利用DeepSeek提升技能[可运行源码]

    2026年3月12日
    2
  • 秒杀多线程第五篇 经典线程同步 关键段CS[通俗易懂]

    秒杀多线程第五篇 经典线程同步 关键段CS[通俗易懂]上一篇《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化函数原型:voidInitializeCritic

    2022年7月15日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号