0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

无序抓取の3D点云匹配案例分享

新机器视觉 来源:AmazingRobot 2020-09-24 11:39 次阅读

无序抓取の3D点云匹配案例分享

如同2D模板匹配一样,3D点云也有模板匹配。2D模板匹配结果有3个值,他们分别是X,Y,U。3D点云匹配则有6个值,他们分别是X,Y,Z,RX,RY,RZ。他代表了物体在空间的位置和姿态。

—Edited By Hugo

# 1

如上图所示:

读取一个3D模型。模型数据怎么来呢,这里是通过3D传感器SDK二次开发后得到的点云数据,然后生成的点云模型。

读取的代码如下:

*读取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

如上图所示:

标注点云模型空间的抓取中心。为了更加直观的理解,这里使用一个球形元素作为抓取点显示出来。

同时给点云模型涂以及抓取点涂上不同颜色,方便观察它们的相对位置。

显示代码如下:

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] *显示点云模型dev_clear_window ()visualize_object_model_3d(WindowHandle,[ObjectModel3D,ObjectModel3DResult1],[],[],['color_'+[0,Indices],'point_size_0'],['gray',Colors,0.5],[],[],Instructions,PoseOut)

# 3

如上图所示:

这是一个实际拍摄的点云图,经过了坐标系纠正变换,更方便查看点云位置。里面有一块平面就是我们需要匹配的目标点云。

也可以为点云区域加上外框区域,更容易判断点云集合的方位,效果如下:

如上图所示:

所有的点云集合被封装在一个盒子里面,并且显示整个点云集合的方向,方便进行点云筛选以及做相关的点云处理。

部分代码如下:

*显示坐标轴变换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

如上图所示:

执行完点云匹配后,得出了匹配之后的目标抓取位置,图中白色小球即为目标平面的抓取位置。

匹配代码如下:

*执行点云匹配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

经过转换后可得目标平面的抓取的抓取姿态或者抓取平面法向量。效果如下:

如上图所示:

在小白球抓取位置的地方求得平面的抓取方向并用三维坐标系显示出来,使得结果表示更加形象。

上述过程,演示了Halcon从读取点云模板,点云筛选,点云转换,点云匹配的过程。

案例讲解就先到这里了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2755

    浏览量

    106442
  • 模板
    +关注

    关注

    0

    文章

    106

    浏览量

    20478
  • 点云
    +关注

    关注

    0

    文章

    58

    浏览量

    3724

原文标题:3D视觉 | 无序抓取の3D点云匹配

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ad19中3d模型不显示?

    封装库导入3d模型不显示,但导入3d模型后的封装库生成pcb文件时显示3d模型,这是什么原因导致的。
    发表于 04-24 13:41

    3D动画原理:电阻

    电阻3D
    深圳崧皓电子
    发布于 :2024年03月19日 06:49:19

    友思特C系列3D相机:实时3D云图像

    3D相机
    虹科光电
    发布于 :2024年01月10日 17:39:25

    光学3D表面轮廓仪可以测金属吗?

    测量金属制品的长度、宽度、高度等维度参数。 除了测量金属表面的形状和轮廓外,光学3D表面轮廓仪还可以生成三维数据和色彩图像,用于进一步分析和展示: 1、三维
    发表于 08-21 13:41

    3D视觉引导火花塞和螺钉无序抓取上料,助力企业实现自动化生产

    3D视觉引导火花塞和螺钉无序抓取上料,通过3D视觉识别定位,引导机器人自动完成上料,可以调整工件的朝向保证一致性。代替人工,降低成本,提高设备稳定性,实现自动化生产。
    的头像 发表于 07-26 15:33 452次阅读
    <b class='flag-5'>3D</b>视觉引导火花塞和螺钉<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>上料,助力企业实现自动化生产

    70.70 3D宏连接样式的创建 #硬声创作季

    3D
    充八万
    发布于 :2023年07月21日 00:01:32

    解决方案 | 3D视觉引导金属圆管无序抓取

    3D视觉引导金属圆管无序抓取,不仅提高了生产效率,降低了成本,还大幅度提升了作业的精确性和安全性。
    的头像 发表于 07-11 15:54 229次阅读
    解决方案 | <b class='flag-5'>3D</b>视觉引导金属圆管<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>

    解决方案 | 3D视觉引导胶管无序抓取上下料

    胶管无序摆放在料框中,3D视觉对工件进行识别和定位,引导机器人实现对胶管的无序抓取并上料,用机械臂替代人工。
    的头像 发表于 07-04 09:50 414次阅读
    解决方案 | <b class='flag-5'>3D</b>视觉引导胶管<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>上下料

    低成本3D扫描仪机械部分设计中。#3d打印 #3d扫描 #3d建模 #3d #fusion

    3D扫描仪
    学习电子知识
    发布于 :2023年07月03日 20:13:56

    3D扫描进度更新,在等快递。还有准备3D打印。#3d建模 #3d扫描 #三维扫描 #3d设计 #创客

    3D打印机3D打印
    学习电子知识
    发布于 :2023年05月28日 20:54:11

    3d打印机已经满足不了我了 #车床 #铣床 #3d打印 #物联网 #3d

    3D打印机3D打印
    学习电子知识
    发布于 :2023年05月28日 20:53:32

    3D深度机器视觉和机器臂的无序抓取

    今天我记录使用myCobot320 M5跟FS820-E1深度相机进行一个无序抓取物体的分享。 为什么会选择深度相机和机械臂做一个案例呢? 2D相机(最常见使用的相机)可以捕捉二维图像,也就是在水平
    的头像 发表于 05-04 11:25 1596次阅读
    <b class='flag-5'>3D</b>深度机器视觉和机器臂的<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>