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还是啥啥啥的,,下图截图自Learnin

本文详细介绍了ABB机器人双目相机的手眼标定流程,包括所需数据信息、OpenCV函数应用、标定步骤及后续计算。涵盖TCP点坐标获取、相机内外参标定、解决PNP问题及手眼矩阵计算。
2370

被折叠的 条评论
为什么被折叠?



