手眼标定原理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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MQTT协议,终于有人讲清楚了[通俗易懂]

    MQTT协议,终于有人讲清楚了[通俗易懂]大家好,我是小麦,最近做了一个物联网的项目,顺便总结一下MQTT协议。大家都知道,MQTT协议在物联网中很常用,如果你对此还不是很了解,相信这篇文章可以带你入门。mqtt协议1MQTT协…

    2022年6月25日
  • JAVA面试题:SWITCH能否作用在BYTE、LONG、STRING上?

    JAVA面试题:SWITCH能否作用在BYTE、LONG、STRING上?

    2021年9月29日
  • pandas 0.23.4 :’pd.ewma’没有这个模块,改用`Series.ewm` 或 降低版本到 pandas 0.21.0

    pandas 0.23.4 :’pd.ewma’没有这个模块,改用`Series.ewm` 或 降低版本到 pandas 0.21.0问题:在进行画出指数平滑移动平均线,遇到如下问题:#pd.ewma(com=None,span=one)#指数平均线。com:数据;span:时间间隔AttributeError:module’pandas’hasnoattribute’ewma’解决办法:在pandas0.23.4版本中,已经不存在这种方法,回退到之前版本pandas0.21.0就一切完美…

    2022年10月27日
  • wincc远程服务器配置,WINCC-OPC服务器配置

    wincc远程服务器配置,WINCC-OPC服务器配置《WINCC-OPC服务器配置》由会员分享,可在线阅读,更多相关《WINCC-OPC服务器配置(13页珍藏版)》请在人人文库网上搜索。1、两台WinCC之间OPC通讯方法(WinXP)OPC客户端1、登陆计算机名及密码要与服务器端(OPCServer)一致。a)如:用户名:administrator密码:12342、OPC客户端要与服务器端处于同一个网络。a)如:OPCServerIP:…

    2022年6月20日
  • pycharm里面快速将代码格式规整的快捷键

    pycharm里面快速将代码格式规整的快捷键在pycharm中书写程序的时候,有时候不注意格式,会造成程序中有很多的警告,这时候,pycharm已经为我们开发了一个快速规整程序格式的入口,快捷键为‘Ctrl+Alt+L’。如果不用快捷键的话,可以点击上面的Code->ReformatCode,然后就搞定了。…

    2022年8月29日
  • javascript 页面后退并刷新

    javascript 页面后退并刷新javascript做页面后退常使用的方法是window.history.back();这样确实可以做到后退的功能,但是项目中,常常并不只是后退就行完成需求,往往需要在后退的同时,刷新后退的页面信息,比如后退到首页同时刷新首页的最新数据,这样的需求通过上面这种方法就没法满足了,为了实现这个需求,我们需要使用到document.referrer这个方法可以取到上一个页面的具体路径

    2022年7月25日

发表回复

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

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