1.采集n组点云数据,将第一组点云命名为(点云target)基准点云
这些数据可以通过3D相机采集得到,然后通过一些处理方法(如去噪、滤波等)进一步优化。
2.采集n组点云的同时记录n组机械臂位姿,同样将第一组位姿设为基准位姿(机械臂target)
3.将获取的n组机械臂位姿由欧拉角转换为4×4变换矩阵
(x,y,z,rx,ry,rz 变成 4×4变换矩阵)
4.通过点云配准方法如icp等计算出其余点云(source)相对于第一组点云(target)的变换矩阵(B)
(ICP配准后返回的结果为B矩阵)
5.通过A=Tpose1^-1 *Tpose2 计算出其余机械臂位姿相对于第一组机械臂位姿的变换矩阵(A)
(采集第一帧target点云时机械臂的位姿为Pose1,剩下的位姿以此为Pose2.3.4.....;按照 A=Tpose1^-1 *Tpose2可以计算出A)
6.通过西尔维斯方程( AX=XB ),计算出手眼变换矩阵X
//================================更新===================================
求得手眼变换矩阵X后,就可以将3D相机坐标系下的点云数据转换到机械臂坐标系下,转换的过程通过矩阵的乘法来实现,步骤如下:
1.需要将点云数据(x,y,z)转化为齐次坐标(齐次坐标是表达空间点的方式),通过转换将点云数 据变成(x,y,z,1)
2.将首演变换矩阵X(4x4)乘以每个点的齐次坐标(4x1) -> [X,Y,Z,W] = X*[x,y,z,1]
3.最后需要将结果转换为笛卡尔坐标,通过将每个坐标除以W,最终得到机械臂坐标系下的坐标(x',y',z') -> x' = X / W、 y' = Y / W、 z' = Z / W
//==============================更新=====================================
上述已经获得了手眼变换矩阵X,也就是相机和机械臂末端的位姿转换关系,那么如何利用X获取目标在相机坐标系下的坐标转换为机械臂基坐标系下的坐标呢?
要获得物体在机械臂基座表系下的坐标需要进行以下步骤,实现公式如下:
其中,是4×4手眼变换矩阵X, 是目标在相机坐标系下的坐标,是机器人示教器上读取的坐标,乘法其实就是坐标转化变换。文章来源:https://www.toymoban.com/news/detail-654747.html
//==============================待更新====================================文章来源地址https://www.toymoban.com/news/detail-654747.html
到了这里,关于3D相机与机械臂手眼标定流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!