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

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

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

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

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

一、拣货系统概述

c9c87132ba39e74cd23d7726141e213d.png

图1

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

二、投票位姿估计

A.点对特征

1)S2S — Surface-to-Surface

16367948b4abd6d34e6288f08945268c.png

2)B2B — Boundary-to-Boundary

8699fad427687e92f69e85714a742dfa.png

3)S2B — Surface-to-Boundary

d51165dddce157cef1895e29012617c5.png

4)L2L — Line-to-Line

d3f27b65e1fdd412479f5562d91e3a56.png

3a713891d5a335ec0fe39fca623ec58f.png

图2

a69a2313312109b389865b58510e316d.png

B.物体表示

e9cc977165af833ad547b8e1806711d9.png

C.投票机制

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

bcc9defc64f7ca2df0e73028c950bf9c.png

f3c458d1199c23896529ab986cac9d7a.png

1b5b8c88b77ae0dd3ef0f9f34bd77ec7.png

图3

ec5a7c88a1dffbe13831b3749d27bd6e.png

D.L2L点对的投票机制

0341e0dc71bb1d1491d4ea62df922c50.png

62f7cad8a2bbfa1030150942880d2018.png

图4

E.位姿聚类

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

三、实验结果

1)合成数据

48972f92829b43e9e1ce5e21e5230b9d.png

2)真实数据

810e8ba1131e774907809a306482e8c6.png

论文下载方式

在公众号「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算法(视觉里程计、后端优化、回环检测)

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

汇总 | 相机标定算法

汇总 | 事件相机原理

汇总 | 结构光经典算法

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java安卓浏览器下载文件,JAVA实现文件下载,浏览器端得到数据没反应解决方案

JAVA实现文件下载,浏览器端得到数据没反应代码如下public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//得到要下载的文件名称String filenamerequest.getParameter("filename");//文件存放的路径…

python如何读取kepsever_python linecache读取过程

最近使用Python编写日志处理脚本时,对Python的几种读取文件的方式进行了实验。其中,linecache的行为引起了我的注意。Python按行读取文件的经典方式有以下几种:with open(blabla.log, r) as f:for line in f.readlines():## do somethingwith…

skywalking原理_微服务链路追踪原理

作者:平也来源:关爱程序员社区背景介绍在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时&#xf…

php 上次登陆时间,php使用cookie显示用户上次访问网站日期的方法

本文实例讲述了php使用cookie显示用户上次访问网站日期的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;<?php if(!empty($_COOKIE[lastvisit])){//先判断&#xff0c;是否存在cookieecho "您上次访问时间是&#xff1a;".$_COOKIE[lastvisit];setCo…

文本分析软件_读书笔记:伍多库卡茨质性文本分析:方法、实践与软件使用指南...

读书笔记&#xff1a;伍多库卡茨《质性文本分析&#xff1a;方法、实践与软件使用指南》一、这篇文章、这本书或这篇论文的中心思想、核心观点是什么&#xff1f;核心观点&#xff1a;质性数据如何系统化分析&#xff1f;三大主要方法&#xff1a;主题分析、评估分析和类型建构…

php 分析url函数,PHP 解析URL函数 parse_url()函数

在PHP中 parse_url()函数的使用&#xff0c;parse_url—解析 URL&#xff0c;返回其组成部分。mixed parse_url ( string $url [, int $component -1 ] )本函数解析一个 URL 并返回一个关联数组&#xff0c;包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL的合法…

python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识

Python编程中常用的12种基础知识&#xff0c;其中肯定有你不会的&#xff01;人生苦短&#xff0c;我用Python1、正则表达式替换目标: 将字符串line中的 overview.gif 替换成其他字符串。人生苦短&#xff0c;我用Python2、遍历目录方法在某些时候&#xff0c;我们需要遍历某个…

matlab两轮自平衡小车,两轮自平衡小车(全部设计资料+设计分析)

自己做的自平衡小车&#xff0c;基本达到预期效果。制作资料在压缩包里面&#xff0c;供参考。该两轮自平衡小车硬件设计概述&#xff1a;控制器&#xff1a;ATmega16&#xff1b;8MHz&#xff1b;加速度传感器&#xff1a;MMA2260&#xff1b;陀螺仪&#xff1a;EWTS82&#x…

异步fifo_【推荐】数字芯片异步FIFO设计经典论文

之前有一篇文章我已经推荐过了数字芯片跨时钟域设计的经典论文 &#xff08;【推荐】数字芯片跨时钟域设计经典论文 &#xff09;&#xff0c;希望看过的读者都有一定的收获。不过有点遗憾的是那片论文中虽然提到了异步FIFO&#xff0c;却没有讲具体的原理和设计细节。本篇文章…

matlab启动不了jvm,MATLAB ::在-nojvm启动选项下不再支持此功能

我正在终端中运行Matlab代码&#xff0c;因为稍后我需要在php中调用此代码。但是我得到这些错误&#xff1a;MATLAB ::在-nojvm启动选项下不再支持此功能[email protected]:~/Desktop/v1.2$ matlab -nojvm < matlab.m错误&#xff1a;L2 norm on unsampled vertices: 0.0961…

linux搭建vsftp服务器_Linux配置VSFTP服务器的方法

下面小编就为大家带来一篇Linux配置VSFTP服务器的方法。小编觉得挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧一、Linux FTP服务器分类&#xff1a;<1>wu-ftp<2>proftpprofession ftp<3>vsftpvery security f…

php active控件,php – 使用TbActiveForm选择列表中的动态选项

我在控制器中有以下代码,$modelnew Guessgame(search);$model->unsetAttributes(); // clear any default valuesif(isset($_GET[Guessgame]))$model->attributes$_GET[Guessgame];$this->render(admin,array(model>$model,));在视图文件中,<?php $form$this-&…

golang 函数传多个参数_关于Golang中方法参数的传递

结构体声明为了说明函数以及方法调用的过程&#xff0c;这里先定义一个struct&#xff0c;在下面的描述中会使用到它。type Person struct {Name stringAge uint16}普通函数中的参数传递在Golang中&#xff0c;普通函数的行参如果是值类型&#xff0c;那么调用的实参也必须是实…

workbook对象需要关闭_XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法...

xssfworkbook对象的write方法内会将传入的资源流自动关闭 导致下载excel失败错误代码outputstream out response.getoutputstream();zipoutputstream zos new zipoutputstream(out);xssfworkbook workbook new xssfworkbook();// 将文件写入zip内&#xff0c;即将文件进行打…

php for 脚本,php for循环脚本。

$dir "./$time/";$info deepScanDir($dir);for($i0; $i system("/usr/sbin/php temp.php \($i\).txt output\($i\).txt");}deepScanDir是循环文件夹下的所有文件。现在这个循环一次执行一次这个命令&#xff0c;我想弄一个&#xff0c;循环一次执行很多个…

autowired的对象为null_spring-为什么我的@Autowired对象为null?

我有下面的JSF托管bean&#xff1a;package com.example;import java.io.Serializable;import javax.faces.bean.ManagedBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;ComponentManagedBeanpublic cl…

基于mysql和php的分布式事务处理1,基于MySQL和PHP的分布式事务处理

PHP(超级文本预处理语言)是一种基于服务器端、执行效率高且易于开发的HTML内嵌式语言,是用户生成动态网页的工具之一[1].MySQL是全球最受欢迎的小型开放源码的关系型数据库管理系统,其体积小、速度快、总体拥有成本低[2].很多基于PHP技术开发的中小型网站都采用MySQL作为其后台…

ios查看线程数量_关于iOS多线程,你看我就够了(已更新)

作者&#xff1a;翁呀伟呀 授权本站转载。在这篇文章中&#xff0c;我将为你整理一下 iOS 开发中几种多线程方案&#xff0c;以及其使用方法和注意事项。当然也会给出几种多线程的案例&#xff0c;在实际使用中感受它们的区别。还有一点需要说明的是&#xff0c;这篇文章将会使…

php fuzzy,模糊C均值聚类算法(Fuzzy C-means)

模糊c均值聚类与k均值聚类区别k均值聚类k均值聚类的实现中&#xff0c;把每个样本划分到单一的类别中&#xff0c;亦即是每个样本只能属于一种类别&#xff0c;不能属于多种类别。这样的划分&#xff0c;称为硬划分。模糊c均值均类为了解决硬划分所带来的问题&#xff0c;因此有…

matlab 投票法_张量投票算法及其使用并分析.pdf

张量投票算法及其使用并分析摘 要本文主要介绍了一种新的数据分析算法&#xff0c;即张量投票算法&#xff0e;该算法完全利用图像数据&#xff0c;根据张量分析&#xff0c;矩阵论和几何的知识&#xff0c;对数据点进行编译和几何阐释&#xff0c;再根据心理学中的Gestalt原理…