手眼标定原理ur5_手眼标定实现「建议收藏」

手眼标定原理ur5_手眼标定实现「建议收藏」手眼标定基于Tsai的两步法标定,是经典的Ax=xB求解模型。Tsai的两步法标定是基于径向校正约束;第一步:利用最小二乘法求解线性方程组,得出相机的外参数;第二步:根据获得的相机外参数,求取相机的内参数;如果无透视畸变,可以使用一个线性方程求出。罗第6、7章;特别:P164-166)1.手眼标定就是对机械手和相机的位置关系进行标定,这样根据识别得到的像素位置去引导机械手去抓取。2.eye-…

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

手眼标定基于Tsai的两步法标定,是经典的Ax = xB 求解模型。

Tsai的两步法标定是基于径向校正约束;第一步:利用最小二乘法求解线性方程组,得出相机的外参数;第二步:根据获得的相机外参数,求取相机的内参数;如果无透视畸变,可以使用一个线性方程求出。

罗第6、7章;特别:P164-166)

1.手眼标定就是对机械手和相机的位置关系进行标定,这样根据识别得到的像素位置去引导机械手去抓取。

2.eye-in-hand:通过相机标定确定相机坐标系和世界坐标系之间的关系;即P&&R。这时如果知道相机坐标系和机械手基础坐标系之间的关系,即可得到物体在机械手坐标系中的坐标。

3.eye-to-hand:通过相机标定确定相机坐标系和世界坐标系之间的关系;即P&&R;因为相机和机械手基础坐标系之间的关系是固定的,即:只要求出相机坐标系在基础坐标系中的位置,即可获得物体在机械手基础坐标系中的位置。

****************手眼标定执行流程

**创建数据模型

create_calib_data (‘calibration_object’, 1, 1, CalibDataID)

***设置相机参数

set_calib_data_cam_param (CalibDataID, 0, ‘area_scan_division’, [])

**设置标定板描述文件

set_calib_data_calib_object (CalibDataID, 0, ‘calplate.cpd’)

**循环读取标定板图像

for index := 1 to 10 by 1

read_image (Image, ‘fabrik’)

*读取机械手法兰盘在基础坐标系中的位置姿态

read_pose (‘campose.dat’, Pose)

*将机械手法兰盘在基础坐标系中的位置姿态添加到标定数据模型中

set_calib_data (CalibDataID, ‘model’, ‘general’, ‘reference_camera’, Pose)

**获取标定对象,并添加到数据模型中

find_calib_object (Image, CalibDataID, 0, 0, 0, [], [])

*获得世界坐标系和相机坐标系的相对位置关系

get_calib_data_observ_pose (CalibDataID, 0, 0, 0, ObjInCameraPose)

endfor

calibrate_hand_eye (CalibDataID, Errors)

*获得机械手基础坐标系在摄像机坐标系下的坐标

get_calib_data (CalibDataID, ‘camera’, 0, ‘params’, DataValue)

**获得摄像机坐标系在机械手基础坐标系下的坐标

pose_invert (ObjInCameraPose, PoseInvert)

*根据摄像机在机械手基础坐标系下的姿态和目标在摄像机坐标系下的姿态,求解目标在摄像机基础坐标系下的姿态

pose_compose (PoseInvert, PoseInvert, PoseCompose)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 矩阵可逆的充要条件证明_两个矩阵相乘所得矩阵的秩

    矩阵可逆的充要条件证明_两个矩阵相乘所得矩阵的秩矩阵可逆的充要条件有很多,在此进行总结。设A为n阶矩阵,则矩阵A可逆的充要条件为:|A|≠0;r(A)=n;A的列(行)向量组线性无关;A的特征值中没有0;A可分解为若干初等矩阵的乘积.

    2022年8月5日
    22
  • 通过QXDM锁BAND_不root怎么锁band

    通过QXDM锁BAND_不root怎么锁band1、通过QXDM锁频QXDM工具View->New->Common->NVBrowser:NV(NonVoliatile)参数就是保存在终端上的非易失参数,可以通过view中的NVBrowser来进行查看和修改。这些信息由厂家固化在终端内部,一般不允许用户修改。同时,可以通过NVBrowser对终端进行Offline(掉电重启)操作。其中06828LTEBCconfig可以配置终端支持的band信息,将该项的值读出来(默认读出来为十进制)转化为二进制,..

    2022年9月28日
    2
  • C语言if语句的基本用法

    C语言if语句的基本用法C语言if语句的基本用法一、if…1.一般形式:if(表达式){语句;}表达式:a,用非0值表示真,用0表示真;b,if(flag)相当于if(1==flag)c,浮点数无法与0比较,只能用近似的值比较;例:(1e-6)相当于1×10的-6次方;2.用于单分支选择结构;3.如含有交叉关系,使用并列的if语句;例:输出两个整数中的最大值#inclu…

    2022年5月19日
    42
  • 获得Bert预训练好的中文词向量

    获得Bert预训练好的中文词向量安装肖涵博士的bert-as-service:pipinstallbert-serving-serverpipinstallbert-serving-client下载训练好的Bert中文词向量:https://storage.proxy.ustclug.org/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip启动bert-as-s…

    2022年5月11日
    43
  • CentOS搭建Ghost博客

    CentOS搭建Ghost博客

    2021年6月1日
    129
  • python sqlite中通过字段名获取查询结果

    在连sqlite数据库时,用fetchall()查询结果,是用row[0],row[1]这样的方式来打印每列的结果但是我想用row[“字段名”]方式查询怎么办?MySQLdb的实现方法是:&#16

    2021年12月27日
    46

发表回复

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

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