相机固定向下安装是手眼搭配中最简单的应用模式,也是大家最常用,最容易理解的一种方式。
如上图所示:要让机器人的手抓住杯子,就必须知道杯子跟手的相对位置关系,而杯子的位置则是通过机器人的眼睛看见的,所以,我们只需要知道机器人的手可以眼睛的转换关系,就可以随时抓取机器人眼睛所看到的物体了。
先演示下相机标定过程:
STEP 1:准备好一张标定板,里面有3X3的圆。
STEP 2:把标定板水平放置在相机正下方,控制相机拍照得到一张图片,并按顺序(走Z字型)记录图片上9个圆的中心位置。
STEP 3:控制机器人TCP工具末端按顺序(走Z字型)移动到每个圆心,并记录下9组机器人位置坐标数据。
STEP 4:执行标定,这里使用HALCON标定算子作为演示,利用上面求得的数据。
-图像上9个位置-
image_x:=[727.884,2395.058,1505.023,666.948,2678.36,1505.023,666.948,2678.36]
image_y:=[755.759,664.057,1289.824,1787.698,1707.432,1505.023,666.948,2678.36]
-机器人9个位置-
robot_x:=[-57.011,-33.521,-46.759,-58.678,-30.024,-46.759,-58.678,-30.024]
robot_y:=[323.965,324.565,316.237,309.794,309.695,-46.759,-58.678,-30.024]
-图像与机器人数据结合,生成仿射变换矩阵-
vector_to_hom_mat2d (image_x, image_y, robot_x, robot_y, HomMat2D)
STEP 5:标定完成后,拍摄一个特征点的,求得像素位置
img_x:=2094.344
img_y:=1326.878
利用以下算子即可把像素坐标转换成机器人坐标
affine_trans_point_2d(HomMat2D,img_x,img_y, Qx, Qy)
更多请参考:
https://www.51halcon.com/forum.php?mod=viewthread&tid=4271&page=1
2、eye in hand
3、视觉动态跟随定位
一个很直观的例子在组里:
快速绚酷版(蜘蛛机械手) https://v.qq.com/x/page/b0816outlvi.html https://v.qq.com/x/page/v3002eiyfpj.html
慢速理解版(四轴机械手):https://v.qq.com/x/page/n0850xxfl3b.html
上次跟汇川机械手的视觉工程师交流,得知如果基于他们的视觉软件,其实就是在的基础上加一个 拉带或者圆盘的编码器即可。
即,加一个编码器。
具体原理为:编码器感知拉带或者圆盘的流速或转速,并传送给机械手,机械手其实即使抛开视觉也可以做到动态跟随。
加上视觉的原理为:视觉在拉带前部拍照后得出此时相对于机械手的坐标,并记录拍照时间,一起发给机械手,在物料到达机械手前部最大采集区域时(一般用光电传感器感知),
机械手在闲置状态,可以随时根据时间差算出物料漂移后每时每刻的实际位置,此时就可以做到实时跟随。
4、3D视觉机器人完成无序抓取
https://www.bilibili.com/video/BV1wZ4y1c78e?from=search&seid=14502160280031575557