halcon相机标定助手_机器人常用的标定方式——九点标定
发布日期:2021-06-24 14:15:12 浏览次数:2 分类:技术文章

本文共 1110 字,大约阅读时间需要 3 分钟。

机器人是如何标定的呢?与人一样,机器人的标定方式离不开手眼系统的助力——通俗的说,就是当眼睛看到一个东西需要让手去抓取或者做其他动作,这个时候大脑必须知道手与眼睛的坐标关系。

如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。

45afebc7dc3164e2db85bc32ecca54a1.png

相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。

在实际控制中,相机检测到目标在图像中的像素位置后,通过标定好的坐标转换矩阵将相机的像素坐标变换到机械手的空间坐标系中,然后根据机械手坐标系计算出各个电机该如何运动,从而控制机械手到达指定位置。这个过程中涉及到了图像标定,图像处理,运动学正逆解,手眼标定等。

常用的标定方法有:九点标定

九点标定:

69f5b548abf1b0860b8a2c7e9f964baf.png

九点标定直接建立相机和机械手之间的坐标变换关系。

让机械手的末端去走这就9个点得到在机器人坐标系中的坐标,同时还要用相机识别9个点得到像素坐标。这样就得到了9组对应的坐标。

由下面的式子可知至少需要3个点才能求出标定的矩阵。

6796c62c6d9c6ff2377d4381ada7b0a0.png

(1)、标定,Halcon中进行9点标定的算子

C#

%前面求出图像坐标

area_center(SortedRegions,Area,Row,Column) %

Column_robot := [275,225,170,280,230,180,295,240,190]

%机器人末端运动到9点的列坐标

Row_robot := [55,50,45,5,0,-5,-50,-50,-50]

%机器人末端运动到9点的行坐标

vector_to_hom_mat2d(Row,Column,Row_robot,Column_robot,HomMat2D)

%求解变换矩阵,HomMat2D是图像坐标和机械手坐标之间的关系

(2)、求解

C#

affine_trans_point_2d(HomMat2D,Row2,Column2,Qx,Qy)

%由像素坐标和标定矩阵求出机器人基础坐标系中的坐标

一些特殊情况的解释:

有些情况中我们看到相机固定在一个地方,然后拍照找到目标,控制机械手去抓取,这种就很好理解。我们也叫做eye-to-hand

还有一种情况是相机固定在机械手上面,这种情况的标定过程实际上和相机和机械手分离的标定方法是一样的,因为相机拍照时,机械手会运动到相机标定的时候的位置,然后相机拍照,得到目标的坐标,再控制机械手,所以简单的相机固定在末端的手眼系统很多都是采用这种方法,标定的过程和手眼分离系统的标定是可以相同对待的。我们也叫做eye-in-hand

6cba8c80ca15c2bfffffacfc6d30d8e3.png
f38603ba9b4e6b746ff9b4f780245850.png

转载地址:https://blog.csdn.net/weixin_33362096/article/details/112187727 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:小米扫地机器人原地不动_小米扫地机器人科创板IPO注册获批:小米顺为高榕是股东...
下一篇:vue 判断json是否为空_vue渲染过程解析-VDOM &DOM

发表评论

最新留言

很好
[***.229.124.182]2024年04月14日 08时16分49秒