作者:仲夏夜之星
来源:公众号 @3D视觉工坊
链接:基于投票方式的机器人装配姿态估计

论文题目:《Voting-Based Pose Estimation for Robotic Assembly Using a 3D Sensor

这篇文章被发表在2012年的IEEE International Conference on Robotics and Automation上。

摘要:本文提出了一种基于投票的适用于三维传感器的位姿估计算法,能够快速代替机器人行业、计算机视觉和游戏应用程序中二维相应的算法。最近研究表明在投票框架中,一对有方向的三维点,即物体表面上的点有其对应的法线可以实现快速和鲁棒的位姿估计。尽管定向表面点对于有足够曲率变化的对象具有辨别能力,但对于许多工业和现实生活中大部分平面的对象来说,它们不够紧凑和辨别能力强。由于边缘在二维配准中起关键作用,深度不连续性在三维中起关键作用。在本文中,我们研究和发展了一组姿态估计算法,以更好地利用这一边界信息。除了有方向的表面点,我们使用了另外两个基本元素:有方向的边界点和边界线段。实验表明,这些经过精心选择的原语编码的信息更紧凑,从而为广泛的工业零件提供更高的精度,并使得计算速度更快,本文使用提出的算法和一个3D传感器来演示了一个实用的机器人捡货系统。

一、拣货系统概述

图1

如上图左边所示,展示了捡箱系统的设置。本系统使用一个附在六轴工业机器人手臂上的3D传感器来估计随机放置在箱子里的物体的姿态。3D传感器是基于结构光使用红外激光,并提供三维数据作为像素的深度图。3D传感器相对于机器人手臂进行校准,从而允许使用估计的姿态抓取和挑选对象。右图为算法流程图,本系统使用3D传感器扫描对象的箱子,给定目标物体的三维CAD模型,使用基于投票的算来扫描三维点云对目标物体进行检测和姿态估计,这提供了多个粗的位姿假设。该系统选择几个最优位姿假设,并使用ICP算法的变体对其进行单独的优化。该算法利用当前位姿估计对CAD模型进行渲染,并通过对渲染模型表面的采样生成三维点。然后为模型中的每个三维点计算扫描点云中最近的三维点,并利用三维点对应更新姿态估计。改进后的配准误差由对应场景与模型点之间的平均距离给出,当投票算法计算出的粗位姿不正确,或者由于被其他物体遮挡而丢失部分物体时,配准误差会很大。如果配准误差很小,并且机器人手臂能安全地到达估计的姿态,系统就会抓取目标。

二、投票位姿估计

A.点对特征

1)S2S — Surface-to-Surface

2)B2B — Boundary-to-Boundary

3)S2B — Surface-to-Boundary

4)L2L — Line-to-Line

图2

B.物体表示

C.投票机制

在计算点对特征并构造哈希表结构的基础上,通过计算场景对特征与一组对应的模型对特征之间的刚体变换,找到提出假设,为了提高搜索效率,本文采用了投票方案,利用局部坐标将投票空间缩减为2D空间。首先,在哈希表中搜索场景点对,其中是来自场景的基元集,并找到对应的模型点对, 然后将点对的参考点对准中间坐标系,如图3所示。为了完全对齐对,参考点和,应该通过围绕法线旋转物体来对齐。计算平面旋转角度后,局部坐标由参考模型点对与平面旋转角度定义,到的变换为:

图3

D.L2L点对的投票机制

图4

E.位姿聚类

本文采用的是欧式聚类,首先对原始的pose假设按投票数的降序排序,从最高的投票中创建了一个新的集群。如果下一个位姿假设靠近一个已有的簇,则将该假设添加到簇中,簇中心更新为簇内位姿假设的平均值。如果下一个假设不接近任何一个集群,它就会创建一个新的集群。在平移和旋转过程中,采用固定阈值进行近似测试。平移距离计算和均值化在三维欧几里得空间中进行,旋转距离计算和均值化使用四元数表示。聚类后,对聚类按总票数的递减顺序进行排序,总票数决定了估计姿态的置信度。

三、实验结果

1)合成数据

2)真实数据

论文下载方式

在公众号「3D视觉工坊」后台回复「机器人装配姿态估计」,即可获得论文下载链接。

参考文献

[1] C. Choi and H. I. Christensen, “Robust 3D visual tracking using particle filtering on the SE(3) group,” in ICRA, 2011.

[2] R. Raskar, K. Tan, R. Feris, J. Yu, and M. Turk, “Non-photorealistic

camera: Depth edge detection and stylized rendering using multi-flash imaging,” ACM Trans. Graphics, vol. 23, pp. 679–688, 2004.

本文仅做学术分享,如有侵权,请联系删文。

往期干货资源:

汇总 | 国内最全的3D视觉学习资源,涉及计算机视觉、SLAM、三维重建、点云处理、姿态估计、深度估计、3D检测、自动驾驶、深度学习(3D+2D)、图像处理、立体视觉、结构光等方向!

汇总 | 3D目标检测(基于点云、双目、单目)

汇总 | 6D姿态估计算法(基于点云、单目、投票方式)

汇总 | 三维重建算法实战(单目重建、立体视觉、多视图几何)

汇总 | 3D点云后处理算法(匹配、检索、滤波、识别)

汇总 | SLAM算法(视觉里程计、后端优化、回环检测)

汇总 | 深度学习&自动驾驶前沿算法研究(检测、分割、多传感器融合)

汇总 | 相机标定算法

汇总 | 事件相机原理

汇总 | 结构光经典算法

汇总 | 缺陷检测常用算法与实战技巧

mpu9250姿态融合算法_基于投票方式的机器人装配姿态估计相关推荐

  1. 基于投票方式的机器人装配姿态估计

    点击上方"小白学视觉",选择"星标" 干货第一时间送达 论文题目:<Voting-Based Pose Estimation for Robotic As ...

  2. 2. IMU原理及姿态融合算法详解

    文章目录 2. IMU原理及姿态融合算法详解 一.组合 二. 原理 a) 陀螺仪 b) 加速度计 c) 磁力计 三. 旋转的表达 a) 欧拉角 b) 旋转矩阵 c) 四元数 d) 李群 SO(3)\t ...

  3. GD32F103+MPU9150四旋翼飞行器第一步:姿态融合算法

    前言: 相比直升机来说,四旋翼乃至多旋翼飞行器的机械结构简单,操控灵活,飞行稳定,体积也能做的更小,当然也能更大,它将直升机复杂的机械结构设计难度转化到了电子电路和算法上面,因此四旋翼飞行器的设计更容 ...

  4. 惯性传感器和姿态融合算法

    稳定云台结构型式:按照云台系统转轴的数量的多少可以分为一轴.二轴.三轴和四轴. 两轴稳定云台应用最为广泛,它有结构简单.相对多轴体积小质量轻.设计成本低廉等特点.但是两轴稳定云台有自身的缺陷.比如当云 ...

  5. 特征提取算法_基于特征选择与特征提取融合的鸡蛋新鲜度光谱快速检测模型优化...

    鸡蛋新鲜度为鸡蛋运输.加工以及销售等环节中所需要考察的重要指标.随着鸡蛋新鲜度越来越受重视,新鲜度检测水平亟待提高,其中优化新鲜度检测模型.提高检测效率至关重要.近年来,国内外学者运用光谱分析.介电特 ...

  6. 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

    编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...

  7. 微型四轴飞行器(5)九轴姿态融合算法A

    1 概述 所谓的九轴姿态融合就是将通过传感器获得的3轴加速度.3轴角速度.3轴磁场数据,在相应的算法处理后能够得到飞行器的姿态信息(欧拉角).输入输出如下图 在惯性导航领域的欧拉角分别表示的是航向角( ...

  8. c++多边形扫描线填充算法_基于3DGIS技术的梯形格网构建及其简化算法设计

    传统矢量地图LOD绘制流程包含简化.剖分与渲染三个步骤.由上述分析可知,传统矢量地图LOD绘制流程中简化与剖分是两个独立的过程,重复的剖分计算导致其渲染效率相对低下.梯形格网方法解决了传统方法中重复剖 ...

  9. 微型四轴飞行器(5)九轴姿态融合算法B

    方向余弦矩阵 飞行器在空中的运行姿态可以用平面和转动来表示,为了方便使用向量表示,需要建立两个空间直角坐标系.设R表示单位矢量在机体坐标系下的三个轴的投影,B表示单位矢量在地球坐标系下的三个轴的投影. ...

最新文章

  1. Java面向对象三大特征 之 多态性
  2. C# 用文本框输入的时间段查询SQL数据库
  3. 盘点2015年数据中心领域十大SDN市场领导者
  4. opencv 霍夫曼变换 直线提取
  5. java for 死循环_简单的java死循环 java中的死循环问题
  6. netcore 中的动态代理与RPC实现(微服务专题)
  7. Linux 系统下载网址
  8. sqlyong的一个bug(代号2013)
  9. 我和EDAS这两年——阿里巴巴入职两年的小结
  10. android5.0+art模式,Android 5.0有哪些变化
  11. QCC3005 实现iphone手机banner显示电量图标【续】
  12. docker修改redis配置文件
  13. 计算机四级c语言试题及答案,计算机等级考试试题及答案
  14. linux操作系统拼音,linux怎么读(中文读音发音)
  15. 2016全球排名前50的博客网站性能
  16. 木马是如何编写的(一)
  17. 网络安全防护-----本地组策略的使用
  18. HTML元素的水平/垂直居中方式(简单代码和图)
  19. ◮OpenGL-混合
  20. python中怎么赋值一个数为负无穷_python里面正无穷和负无穷问题?

热门文章

  1. 微软sharepoint团队博客
  2. 如何深入学习python_菜鸟如何学好python
  3. spring boot Exception in Thread “main” java.lang.classNoFoundException
  4. 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)
  5. cuda 编译 linux,Linux下安装Tensorflow源码及编译
  6. vscode运行python文件_vscode怎么运行python文件
  7. [转载] java左移右移和无符号右移
  8. 在Linux中制作实用程序(MakeFile)
  9. 二叉树打印叶子节点,非递归_使用递归打印链接列表中的备用节点
  10. 12345组成三个不重复数java,求大神帮忙!五子棋!只能识别按顺序识别!例如 12345 不能...