mpu9250姿态融合算法_基于投票方式的机器人装配姿态估计
作者:仲夏夜之星
来源:公众号 @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姿态融合算法_基于投票方式的机器人装配姿态估计相关推荐
- 基于投票方式的机器人装配姿态估计
点击上方"小白学视觉",选择"星标" 干货第一时间送达 论文题目:<Voting-Based Pose Estimation for Robotic As ...
- 2. IMU原理及姿态融合算法详解
文章目录 2. IMU原理及姿态融合算法详解 一.组合 二. 原理 a) 陀螺仪 b) 加速度计 c) 磁力计 三. 旋转的表达 a) 欧拉角 b) 旋转矩阵 c) 四元数 d) 李群 SO(3)\t ...
- GD32F103+MPU9150四旋翼飞行器第一步:姿态融合算法
前言: 相比直升机来说,四旋翼乃至多旋翼飞行器的机械结构简单,操控灵活,飞行稳定,体积也能做的更小,当然也能更大,它将直升机复杂的机械结构设计难度转化到了电子电路和算法上面,因此四旋翼飞行器的设计更容 ...
- 惯性传感器和姿态融合算法
稳定云台结构型式:按照云台系统转轴的数量的多少可以分为一轴.二轴.三轴和四轴. 两轴稳定云台应用最为广泛,它有结构简单.相对多轴体积小质量轻.设计成本低廉等特点.但是两轴稳定云台有自身的缺陷.比如当云 ...
- 特征提取算法_基于特征选择与特征提取融合的鸡蛋新鲜度光谱快速检测模型优化...
鸡蛋新鲜度为鸡蛋运输.加工以及销售等环节中所需要考察的重要指标.随着鸡蛋新鲜度越来越受重视,新鲜度检测水平亟待提高,其中优化新鲜度检测模型.提高检测效率至关重要.近年来,国内外学者运用光谱分析.介电特 ...
- 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...
编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...
- 微型四轴飞行器(5)九轴姿态融合算法A
1 概述 所谓的九轴姿态融合就是将通过传感器获得的3轴加速度.3轴角速度.3轴磁场数据,在相应的算法处理后能够得到飞行器的姿态信息(欧拉角).输入输出如下图 在惯性导航领域的欧拉角分别表示的是航向角( ...
- c++多边形扫描线填充算法_基于3DGIS技术的梯形格网构建及其简化算法设计
传统矢量地图LOD绘制流程包含简化.剖分与渲染三个步骤.由上述分析可知,传统矢量地图LOD绘制流程中简化与剖分是两个独立的过程,重复的剖分计算导致其渲染效率相对低下.梯形格网方法解决了传统方法中重复剖 ...
- 微型四轴飞行器(5)九轴姿态融合算法B
方向余弦矩阵 飞行器在空中的运行姿态可以用平面和转动来表示,为了方便使用向量表示,需要建立两个空间直角坐标系.设R表示单位矢量在机体坐标系下的三个轴的投影,B表示单位矢量在地球坐标系下的三个轴的投影. ...
最新文章
- Java面向对象三大特征 之 多态性
- C# 用文本框输入的时间段查询SQL数据库
- 盘点2015年数据中心领域十大SDN市场领导者
- opencv 霍夫曼变换 直线提取
- java for 死循环_简单的java死循环 java中的死循环问题
- netcore 中的动态代理与RPC实现(微服务专题)
- Linux 系统下载网址
- sqlyong的一个bug(代号2013)
- 我和EDAS这两年——阿里巴巴入职两年的小结
- android5.0+art模式,Android 5.0有哪些变化
- QCC3005 实现iphone手机banner显示电量图标【续】
- docker修改redis配置文件
- 计算机四级c语言试题及答案,计算机等级考试试题及答案
- linux操作系统拼音,linux怎么读(中文读音发音)
- 2016全球排名前50的博客网站性能
- 木马是如何编写的(一)
- 网络安全防护-----本地组策略的使用
- HTML元素的水平/垂直居中方式(简单代码和图)
- ◮OpenGL-混合
- python中怎么赋值一个数为负无穷_python里面正无穷和负无穷问题?
热门文章
- 微软sharepoint团队博客
- 如何深入学习python_菜鸟如何学好python
- spring boot Exception in Thread “main” java.lang.classNoFoundException
- 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)
- cuda 编译 linux,Linux下安装Tensorflow源码及编译
- vscode运行python文件_vscode怎么运行python文件
- [转载] java左移右移和无符号右移
- 在Linux中制作实用程序(MakeFile)
- 二叉树打印叶子节点,非递归_使用递归打印链接列表中的备用节点
- 12345组成三个不重复数java,求大神帮忙!五子棋!只能识别按顺序识别!例如 12345 不能...