来料发生位移旋转的解决方案----一个mark点的定位

在二维平面中,相同的来料都有它关于来料相同的平面矩阵,因此在初始来料上规划好路径后只要得到二次来料它发生的位移以及旋转角度就能很容易得到这次来料上的规划路径关系,从而控制机械手准确走完规划路径。


但当来料过大超出相机抓图的视野就可以通过mark点来获得这两个关系,mark点可以是一个、两个或者三个,分别取决于不同的场合。关于一个mark点的定位就非常简单了,但有个局限就是这个mark点必要很容确定旋转度数。


测试代码:

*来料发生位移+旋转
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_set_draw ('margin')
*模拟来料,这是一个正常的来料
gen_rectangle1 (ROI_0, 162.5, 111.5, 250.5, 364.5)
gen_rectangle1 (ROI_Mark, 169, 119, 186, 144)
concat_obj (ROI_0, ROI_Mark, ObjectsConcat)
*我们以这个区域的  中心点为基准点
area_center (ROI_Mark, Area, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 16, 0)
disp_message (WindowHandle, '用鼠标在图像上确定一个点来模拟抓取点', 'window', 12, 12, 'white', 'false')
draw_point (WindowHandle, pRow, pColumn)
dev_set_color ('green')
gen_cross_contour_xld (pCross, pRow, pColumn, 26, 0)
disp_message (WindowHandle,'('+pRow+','+pColumn+')', 'window', pRow, pColumn, 'green', 'false')
****************************************************
*第二次来料发生位移+旋转
dev_open_window (0, 512, 512, 512, 'black', WindowHandle1)
disp_message (WindowHandle1, '这是第二次来料模拟', 'window', 12, 12, 'white', 'false')
dev_set_color ('red')
*得到二次来料mark点旋转角度和坐标
Phi:=rad(60)
moveR:=200
moveC:=300
*创建变换模型
vector_angle_to_rigid (Row, Column, 0, moveR, moveC, Phi, HomMat2D)
*区域变换
affine_trans_region (ObjectsConcat, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
 
****************************************************
*点的仿射变换,拿到最终结果
affine_trans_point_2d (HomMat2D, pRow, pColumn, Qx, Qy)
dev_set_color ('green')
gen_cross_contour_xld (pCross1, Qx, Qy, 26, Phi)
disp_message (WindowHandle1,'('+Qx+','+Qy+')', 'window', Qx, Qy, 'green', 'false')

其中绿色十字即是变换前后测试的点

image.png


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864