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

    文章

    2864

    浏览量

    107346
  • 模板
    +关注

    关注

    0

    文章

    108

    浏览量

    20554
  • 点云
    +关注

    关注

    0

    文章

    58

    浏览量

    3787

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

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

收藏 人收藏

    评论

    相关推荐

    探索3D视觉技术在活塞杆自动化抓取中的应用

    随着工业4.0时代的到来,智能制造成为工业发展的重要趋势。作为智能制造的关键技术之一,3D视觉技术在活塞杆抓取领域的应用前景十分广阔。
    的头像 发表于 09-07 15:38 239次阅读

    3D视觉技术广阔的应用前景

    随着工业自动化领域的迅猛进步,对制造过程中抓取作业的精度与效率提出了更为严苛的要求。作为机械构造中的核心组件,活塞杆的精准抓取成为了保障产品质量、提升生产效率的关键环节。在此背景下,3D视觉技术以其独到的优势,在活塞杆
    的头像 发表于 07-29 15:56 288次阅读
    <b class='flag-5'>3D</b>视觉技术广阔的应用前景

    纸箱的拆码垛,3D视觉引导机器人无序抓取

    在繁忙的物流仓库中,纸箱的拆码垛工作常常让人头疼不已。但是,现在有了富唯智能的3D视觉引导纸箱拆码垛解决方案,这一切都变得轻松简单!
    的头像 发表于 06-17 16:59 292次阅读
    纸箱的拆码垛,<b class='flag-5'>3D</b>视觉引导机器人<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>

    3D视觉技术无序抓取引导活塞杆

    随着工业4.0时代的到来,智能制造成为工业发展的重要趋势。作为智能制造的关键技术之一,3D视觉技术在活塞杆抓取领域的应用前景十分广阔。
    的头像 发表于 05-13 13:40 261次阅读
    <b class='flag-5'>3D</b>视觉技术<b class='flag-5'>无序</b><b class='flag-5'>抓取</b>引导活塞杆

    富唯智能案例|3D视觉引导机器人抓取鞋垫上下料

    随着制造业对自动化、智能化需求的不断提升,如何实现鞋垫上下料的精准、高效操作成为了企业亟待解决的问题。传统的上下料方式往往依赖人工,存在效率低下、精度不足等问题。而富唯智能的3D视觉引导机器人抓取解决方案,则能够有效解决这些问题。
    的头像 发表于 04-08 16:57 380次阅读
    富唯智能案例|<b class='flag-5'>3D</b>视觉引导机器人<b class='flag-5'>抓取</b>鞋垫上下料

    基于深度学习的方法在处理3D进行缺陷分类应用

    背景部分介绍了3D应用领域中公开可访问的数据集的重要性,这些数据集对于分析和比较各种模型至关重要。研究人员专门设计了各种数据集,包括用于3D形状分类、
    的头像 发表于 02-22 16:16 1029次阅读
    基于深度学习的方法在处理<b class='flag-5'>3D</b><b class='flag-5'>点</b><b class='flag-5'>云</b>进行缺陷分类应用

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

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

    让协作更便捷,图漾3D工业相机获UR+认证

    本次获得UR+认证的图漾3D机器视觉硬件产品主要为适用于手眼协同的小型化3D工业相机PS及FS系列,紧凑轻巧,高精度大视野,可实时采集三维空间数据,可轻松集成在各类机械臂末端
    的头像 发表于 01-05 17:18 964次阅读
    让协作更便捷,图漾<b class='flag-5'>3D</b>工业相机获UR+认证

    基于3D的多任务模型在板端实现高效部署

    对于自动驾驶应用来说,3D 场景感知至关重要。3D数据就是具有3D特征的数据。一方面,3D
    的头像 发表于 12-28 16:35 1406次阅读
    基于<b class='flag-5'>3D</b><b class='flag-5'>点</b><b class='flag-5'>云</b>的多任务模型在板端实现高效部署

    2D图像和LiDAR的3D之间的配准方法

    建立2D-3D的对应关系首先通过交叉区域检测,在两个模态中去除离群区域,然后利用交叉模态潜在空间的最近邻原则进行2D-3D特征匹配
    发表于 12-22 11:29 2005次阅读
    2<b class='flag-5'>D</b>图像和LiDAR的<b class='flag-5'>3D</b><b class='flag-5'>点</b><b class='flag-5'>云</b>之间的配准方法

    提供3D打印材料与解决方案,助力3D打印产业发展

    提供3D打印材料与解决方案,助力3D打印产业发展
    的头像 发表于 12-12 11:12 534次阅读

    3D 封装与 3D 集成有何区别?

    3D 封装与 3D 集成有何区别?
    的头像 发表于 12-05 15:19 1009次阅读
    <b class='flag-5'>3D</b> 封装与 <b class='flag-5'>3D</b> 集成有何区别?