ABB机器人安装双目相机后实现相机手眼标定der步骤详记

您所在的位置:网站首页 双目立体摄像机怎么安装 ABB机器人安装双目相机后实现相机手眼标定der步骤详记

ABB机器人安装双目相机后实现相机手眼标定der步骤详记

2024-07-15 10:24| 来源: 网络整理| 查看: 265

文章目录 1、手眼标定需要从ABB机器人获得的所有数据信息2、手眼标定在OpenCV中所有需要使用的函数3、ABB机器人安装双目相机后手眼标定的步骤描述4、计算得到手眼矩阵后的后续5、注

1、手眼标定需要从ABB机器人获得的所有数据信息

1、如下图,abb机器人能够实时的读取到TCP点相对于工件坐标或者基坐标或者大地坐标(世界坐标)的空间坐标点(描述TCP点的平移向量)与四元数(描述TCP在该坐标系下姿态);手眼标定calibrateHandeye()函数需要使用这些数据; 在这里插入图片描述 在这里插入图片描述 2、上位机C#程序实时获取到TCP点坐标: 在这里插入图片描述

3、将四元数转换成我们需要的方向余弦矩阵~,abb机器人具体的姿态旋转顺序不清楚,没有看到相关描述,假定是先绕z轴旋转,再绕y轴旋转,再绕x轴旋转吧,即zyx的顺序,但是这个不是很重要,我觉得手眼标定暂时用不上这个,这个顺序影响如何把欧拉角转换成3 * 3方向余弦矩阵,以及四元数如何反算出物体的欧拉角,现在只是需要获取3 * 3旋转矩阵,而从四元数到3 * 3旋转矩阵的公式是固定死的,只有2个等效形式,任意一个公式都可以完成转换,如下图:(PS:截图自秦永元老师的《惯性导航》295页,推导过程略) 在这里插入图片描述 4、如果机器人无法直接读取描述TCP点姿态(orient)用的四元数的话,大概就是只能直接读取机械臂末端TCP点的欧拉角了(roll、yaw、pitch),这种情况下,必须清楚该机器人姿态绕XYZ轴的旋转顺序,zyx,xyz,yzx还是啥啥啥的,,下图截图自Learning OpenCV3,这时计算旋转矩阵(欧拉角描述的方向余弦矩阵/旋转矩阵)必须考虑绕轴转动顺序的影响,如果是x,y,z 依次旋转,则旋转矩阵R = Rx * Ry * Rz,,其他顺序依次类推。 在这里插入图片描述

PS : 旋转矩阵逆矩阵等于其转置~~~~ 在这里插入图片描述 这位博主应该是只能获取TCP的欧拉角:https://blog.csdn.net/weixin_42203839/article/details/103882739

5、至此,手眼标定需要的ABB机器人数据收集处理完毕~

2、手眼标定在OpenCV中所有需要使用的函数

1、相机内参标定函数:calibrateCamera() ,在进行abb机器人手眼标定前必须已经完成了单个相机的内参标定(确定内参矩阵与畸变向量) 在这里插入图片描述

2、相机外参计算函数:solvePNP() , 能够根据已有的相机内参计算出相机与标定板之间的外参数; 在这里插入图片描述

注:rvec与tvec是从世界坐标系(标定板坐标系)到摄像基坐标转换 在这里插入图片描述

3、手眼标定函数:calibrateHandEye(),需要的数据根据前面的描述已经全部获得~~

在这里插入图片描述

3、ABB机器人安装双目相机后手眼标定的步骤描述 准备: 1、安装双目相机,固定到ABB机器人末端执行器上; 2、将打印好的标定板固定在一个较好的位置(方便双目相机采集图像); 采集: 3、ABB机器人示教器控制TCP运动到合适位置(双目都有完整标定板图像),此时,程序拍摄一幅图像(2张): 3.1. 注意,这里同时记录保存示教器上显示的TCP点坐标(trans)与位姿(orient) ; 3.2. 注意,程序这时必须调用solvePNP()计算此时相机与标定板的外参数,保存下来(注意,这里针对 左相机进行计算,双目相机的基准我取的以左相机为基准); 3.3. 至此,第一组数据收集完毕; 4、重复步骤3,依次采集记录10张以上图片数据(用于计算的图片越多越精确),至此,所有需要数据采集完毕; 5、将采集数据整理成calibrateHandEye()需要的类型,传入进去,进行计算,得到最终需要的手眼矩阵~~;

1、按照如上步骤即可完成双目相机的手眼标定的程序代码编写;

4、计算得到手眼矩阵后的后续 有了手眼矩阵、相机内参矩阵,相机畸变向量: 1、先使用OpenCV函数(如BM,SGBM算法)计算得到视差图(disparity,单位为像素), 反向投影得到图像中像素点在左摄像机坐标系下的位置坐标trans(此时反向投影后的单位依然是像素??); 2、左摄像机坐标系下点---(手眼矩阵转换到)--->TCP坐标系下(点的话只关注坐标,没有位姿) 3、TCP坐标系下点---(实时读取ABB机器人的示教器数据转换到)--->工件坐标系下(wobj) 4、转换到工件坐标系下即完成ABB机器人对空间点的视觉感知~~~

1、从摄像机坐标系下点到TCP,再到wobj的转换关系,还在思考具体的矩阵变换~,大概一个点从摄像机坐标系到工件坐标系的转换流程如下:参考OpenCV中关于calibrateHandEye()函数的描述,有具体的转换关系~ 在这里插入图片描述 https://blog.csdn.net/u011906844/article/details/54604228

5、注

1、本文是在上一篇博客后的继续思考: https://blog.csdn.net/hellohake/article/details/104808149



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3