無序抓取の3D點(diǎn)云匹配案例分享
如同2D模板匹配一樣,3D點(diǎn)云也有模板匹配。2D模板匹配結(jié)果有3個(gè)值,他們分別是X,Y,U。3D點(diǎn)云匹配則有6個(gè)值,他們分別是X,Y,Z,RX,RY,RZ。他代表了物體在空間的位置和姿態(tài)。
—Edited By Hugo
# 1
如上圖所示:
讀取一個(gè)3D模型。模型數(shù)據(jù)怎么來呢,這里是通過3D傳感器SDK二次開發(fā)后得到的點(diǎn)云數(shù)據(jù),然后生成的點(diǎn)云模型。
讀取的代碼如下:
*讀取3D模型read_object_model_3d ('E:/PRODUCT/6.29/6.29.om3', 'mm', [], [], ObjectModel3D, Status)create_surface_model (ObjectModel3D, 0.03, [], [], SurfaceModelID)get_object_model_3d_params (ObjectModel3D, 'num_points', GenParamValue4) *重采樣sample_object_model_3d(ObjectModel3D,'fast',0.05,[],[],SampledObjectModel3D)visualize_object_model_3d (WindowHandle, SampledObjectModel3D, [], [], ['intensity_red','intensity_green','intensity_blue','disp_pose'], ['coord_x','coord_y','coord_z','true'], '方塊3D模型', [], [], PoseOut)disp_object_model_3d_safe (WindowHandle, SampledObjectModel3D, [], [], [], [])
# 2
如上圖所示:
標(biāo)注點(diǎn)云模型空間的抓取中心。為了更加直觀的理解,這里使用一個(gè)球形元素作為抓取點(diǎn)顯示出來。
同時(shí)給點(diǎn)云模型涂以及抓取點(diǎn)涂上不同顏色,方便觀察它們的相對(duì)位置。
顯示代碼如下:
get_object_models_center (SampledObjectModel3D, Center)tp:=[Center[0], Center[1], Center[2],0,0,0,0]gen_sphere_object_model_3d (tp, 1, ObjectModel3D2) ObjectModel3DResult1 := [SampledObjectModel3D,ObjectModel3D2] NumResult := |ObjectModel3DResult1|tuple_gen_const (NumResult, 'green', Colors)Colors[0]:='gold'Indices := [1:NumResult] *顯示點(diǎn)云模型dev_clear_window ()visualize_object_model_3d(WindowHandle,[ObjectModel3D,ObjectModel3DResult1],[],[],['color_'+[0,Indices],'point_size_0'],['gray',Colors,0.5],[],[],Instructions,PoseOut)
# 3
如上圖所示:
這是一個(gè)實(shí)際拍攝的點(diǎn)云圖,經(jīng)過了坐標(biāo)系糾正變換,更方便查看點(diǎn)云位置。里面有一塊平面就是我們需要匹配的目標(biāo)點(diǎn)云。
也可以為點(diǎn)云區(qū)域加上外框區(qū)域,更容易判斷點(diǎn)云集合的方位,效果如下:
如上圖所示:
所有的點(diǎn)云集合被封裝在一個(gè)盒子里面,并且顯示整個(gè)點(diǎn)云集合的方向,方便進(jìn)行點(diǎn)云篩選以及做相關(guān)的點(diǎn)云處理。
部分代碼如下:
*顯示坐標(biāo)軸變換moments_object_model_3d (ObjectModel3D, 'principal_axes', PoseOut)pose_invert (PoseOut, PoseInvert)pose_to_hom_mat3d (PoseInvert, HomMat3D)affine_trans_object_model_3d (ObjectModel3D, HomMat3D, ObjectModel3DAffineTrans)*visualize_object_model_3d (WindowHandle, ObjectModel3DAffineTrans, [], [], ['intensity_red','intensity_green','intensity_blue','disp_pose'], ['coord_x','coord_y','coord_z','true'], '方塊3D模型', [], [], PoseOut)triangulate_object_model_3d (ObjectModel3DAffineTrans, 'greedy', [], [], TriangulatedObjectModel3D, Information)visualize_object_model_3d(WindowHandle,TriangulatedObjectModel3D,[],[],['intensity_red','intensity_green','intensity_blue','disp_pose'],['coord_x','coord_y','coord_z','true'],'方塊3D模型',[],[],PoseOut)
# 4
如上圖所示:
執(zhí)行完點(diǎn)云匹配后,得出了匹配之后的目標(biāo)抓取位置,圖中白色小球即為目標(biāo)平面的抓取位置。
匹配代碼如下:
*執(zhí)行點(diǎn)云匹配count_seconds (T0)find_surface_model (SurfaceModelID, UnionObjectModel3D, 0.05, 0.3, 0.6, 'true', 'num_matches', 10, Pose, Score, SurfaceMatchingResultID)count_seconds (T1)TimeForMatching := (T1 - T0) * 1000 ObjectModel3DResult := []for Index2 := 0 to |Score| - 1 by 1 if (Score[Index2] < 0.11) continue endif CPose := Pose[Index2 * 7:Index2 * 7 + 6] * rigid_trans_object_model_3d (SampledObjectModel3D, CPose, ObjectModel3DRigidTrans) ObjectModel3DResult := [ObjectModel3DResult,ObjectModel3DRigidTrans]endfor
經(jīng)過轉(zhuǎn)換后可得目標(biāo)平面的抓取的抓取姿態(tài)或者抓取平面法向量。效果如下:
如上圖所示:
在小白球抓取位置的地方求得平面的抓取方向并用三維坐標(biāo)系顯示出來,使得結(jié)果表示更加形象。
上述過程,演示了Halcon從讀取點(diǎn)云模板,點(diǎn)云篩選,點(diǎn)云轉(zhuǎn)換,點(diǎn)云匹配的過程。
案例講解就先到這里了。
-
3D
+關(guān)注
關(guān)注
9文章
2918瀏覽量
108074 -
模板
+關(guān)注
關(guān)注
0文章
108瀏覽量
20621 -
點(diǎn)云
+關(guān)注
關(guān)注
0文章
58瀏覽量
3824
原文標(biāo)題:3D視覺 | 無序抓取の3D點(diǎn)云匹配
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
SciChart 3D for WPF圖表庫(kù)
![SciChart <b class='flag-5'>3D</b> for WPF圖表庫(kù)](https://file1.elecfans.com/web3/M00/06/FA/wKgZPGeR2MGACTO-AAB0dyVzDd0112.png)
C#通過Halcon實(shí)現(xiàn)3D點(diǎn)云重繪
探索3D視覺技術(shù)在活塞桿自動(dòng)化抓取中的應(yīng)用
3D視覺技術(shù)廣闊的應(yīng)用前景
![<b class='flag-5'>3D</b>視覺技術(shù)廣闊的應(yīng)用前景](https://file1.elecfans.com/web2/M00/00/0A/wKgaomanSqeAIgByAAr6ulkQ0nY045.png)
裸眼3D筆記本電腦——先進(jìn)的光場(chǎng)裸眼3D技術(shù)
紙箱的拆碼垛,3D視覺引導(dǎo)機(jī)器人無序抓取
![紙箱的拆碼垛,<b class='flag-5'>3D</b>視覺引導(dǎo)機(jī)器人<b class='flag-5'>無序</b><b class='flag-5'>抓取</b>](https://file1.elecfans.com/web2/M00/EA/69/wKgZomZYQxeAVzveAAWU-ejKkBA760.png)
友思特案例 | 自研創(chuàng)新!三維工件尺寸測(cè)量及點(diǎn)云處理解決方案
![友思特案例 | 自研創(chuàng)新!三維工件尺寸測(cè)量及<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>處理解決方案](https://file1.elecfans.com/web2/M00/ED/46/wKgZomZqi_mAF9pqAC2LU_7CgOk595.png)
3D視覺技術(shù)無序抓取引導(dǎo)活塞桿
![<b class='flag-5'>3D</b>視覺技術(shù)<b class='flag-5'>無序</b><b class='flag-5'>抓取</b>引導(dǎo)活塞桿](https://file1.elecfans.com/web2/M00/E4/FB/wKgZomZBp06AGwuCAAm5y6HTmDs964.png)
機(jī)器人3D視覺引導(dǎo)系統(tǒng)框架介紹
![機(jī)器人<b class='flag-5'>3D</b>視覺引導(dǎo)系統(tǒng)框架介紹](https://file1.elecfans.com/web2/M00/DF/2D/wKgaomYu-P2AfuhnAAAL7c8czwE101.jpg)
![](https://file1.elecfans.com/web2/M00/C8/91/wKgZomYc6aCANe-AAAx53VKOD3Q422.png)
3D視覺引導(dǎo)無序抓取鏡片上傘鍍膜# 光學(xué)鍍膜# 鏡片鍍膜# 鍍膜上下料# 鍍膜設(shè)備# 真空鍍膜
富唯智能案例|3D視覺引導(dǎo)機(jī)器人抓取鞋墊上下料
![富唯智能案例|<b class='flag-5'>3D</b>視覺引導(dǎo)機(jī)器人<b class='flag-5'>抓取</b>鞋墊上下料](https://file1.elecfans.com/web2/M00/C8/55/wKgaomYTsEqAV_PAAAxnE80gSe0725.png)
新質(zhì)生產(chǎn)力探索| AICG浪潮下的3D打印與3D掃描技術(shù)
![](https://file1.elecfans.com/web2/M00/C5/CE/wKgaomX4xO2AEYO-AABXvRldnzQ502.png)
![](https://file1.elecfans.com/web2/M00/C3/45/wKgZomXqe_mABcp4AAvw1r-Nsbg877.png)
智能機(jī)器人3D視覺無序抓取 #智能機(jī)器人 #人工智能 #3D視覺 #無序抓取 #視覺引導(dǎo) #工業(yè)機(jī)器人
基于深度學(xué)習(xí)的方法在處理3D點(diǎn)云進(jìn)行缺陷分類應(yīng)用
![基于深度學(xué)習(xí)的方法在處理<b class='flag-5'>3D</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>進(jìn)行缺陷分類應(yīng)用](https://file1.elecfans.com/web2/M00/C1/8C/wKgaomXXA2-AMIIzAABLUY5BmWY274.png)
評(píng)論