麻省理工学院的研究人员编制了一个数据集,用来捕捉机器人系统在物理上推动数百个不同物体的详细行为。使用该数据集--这是同类中最大、最多样化的数据集--研究人员可以训练机器人“学习”对许多复杂的物体操作任务至关重要的推动动力学,包括重新定位和检查物体,以及清理混乱的场景。

有进取心的机器人学习对象操作的基本原理

为了获取数据,研究人员设计了一个自动化系统,包括一个工业机器人手臂,一个精确控制的机器人手臂,一个三维运动跟踪系统,一个深度和传统相机,以及将所有东西拼接在一起的软件。手臂推动模块化的物体,可以调整重量,形状和质量分布。对于每次推送,系统将捕获这些特性如何影响机器人是推。

该数据集被称为“Omniush”,包含250个对象的250个不同推送,总计约62500个唯一推送。例如,研究人员已经开始使用它来建立模型,帮助机器人预测物体被推时会降落在哪里。

“我们需要大量丰富的数据来确保我们的机器人能够学习,”MariaBauza说。研究生在机械工程系(Meche),第一位作者描述了在即将举行的国际智能机器人和系统会议上介绍的Omniush。“在这里,我们从一个真正的机器人系统中收集数据,这些物体的多样性足以捕捉推杆现象的丰富性。这对于帮助机器人理解推杆的工作原理以及将这些信息转化为现实世界中的其他类似物体是很重要的。”

加入鲍萨论文的有:计算机科学和人工智能实验室以及电气工程和计算机科学系(EECS)的研究生Ferran Alet和Yen-陈霖;卓越教学工程学院的Tomas Lozano-Perez;松下的计算机科学和工程教授Leslie P.Kaelling;EECS的助理教授Phillip Isola;以及Meche的副教授Alberto Rodriguez。

多样化数据

为什么要专注于推动行为?罗德里格斯解释说,建模涉及物体和表面之间摩擦的推杆动力学在更高级别的机器人任务中至关重要。考虑一下视觉和技术上令人印象深刻的机器人,它可以玩Jenga,这是罗德里格斯最近共同设计的。罗德里格斯说:“机器人正在执行一项复杂的任务,但驱动这项任务的机械技术的核心仍然是推一个物体,例如,受到块间摩擦影响的物体。”

Omniush构建在RODRIGUEZ、Bauza和其他研究人员在操作和机制实验室(MCube)中构建的类似数据集,该数据集只捕获了10个对象的推送数据。在2016年公布数据集之后,他们收集了研究人员的反馈。抱怨之一是缺乏对象多样性:在数据集上训练的机器人很难将信息推广到新的对象。也没有视频,这是重要的计算机视觉,视频预测和其他任务。

对于他们的新数据集,研究人员利用一种工业机器人手臂,精确控制推杆的速度和位置,基本上是一根垂直的钢棒。当手臂推动物体时,一个“维康”运动跟踪系统--它已经被用于电影、虚拟现实和研究--跟随着这些物体。还有一个RGB-D相机,它为拍摄到的视频增加了深度信息.

关键是建造模块化的物体。这些由铝制成的均匀的中心部分,看起来像四角星,重约100克.每个中心部分在其中心和点上都有标记,因此Vicon系统可以在1毫米范围内检测到它的姿态。

四种形状的较小的零件-凹的,三角形的,矩形的,圆形的-可以磁性地连接到中心件的任何一边。每件重量在31到94克之间,但额外的重量,从60到150克,可以扔进小洞的碎片。所有像拼图一样的物体都是水平和垂直对齐的,这有助于模拟具有相同形状和质量分布的单个物体的摩擦力。不同侧面、重量和质量分布的所有组合加起来有250个独特的物体。

每推一次,手臂就会自动移动到离物体几厘米处的一个随机位置。然后,它选择一个随机方向,并推送对象一秒钟。从停止的地方开始,然后选择另一个随机方向,重复这个过程250次。每次推送记录物体的姿态和RGB-D视频,这可以用于各种视频预测目的。收集数据花费了12个小时,持续了两个星期,总共超过150个小时。只有在手动重新配置对象时才需要人工干预。

这些对象并不具体地模仿任何现实生活中的物品。相反,它们的设计是为了捕捉真实世界物体所期望的“运动学”和“质量无系统”的多样性,这是模拟现实世界物体运动的物理模型。然后,机器人可以将质量分布不均匀的Omniush物体的物理模型外推到任何具有类似不均匀重量分布的现实世界中的物体。

“想象一下,推一张有四条腿的桌子,其中最重的是一条腿,当你推桌子的时候,你会发现它在沉重的腿上旋转,必须重新调整。明白这一点。”质量分布它对推的结果的影响,是机器人可以通过这组物体学习的东西,“Rodriguez说。

推动新研究

在一个实验中,研究人员使用Omniush来训练一个模型来预测被推物体的最终姿态,只给出推的初始姿态和描述。他们对150个Omniush对象进行了模型训练,并在其中的一部分对象上进行了测试。结果表明,经过Omniush训练的模型是在几个相似数据集上训练的模型的两倍。在他们的论文中,研究人员还记录了其他研究者可以用来进行比较的精确基准。

由于Omniush捕获了推送的视频,因此一个潜在的应用是视频预测。例如,一个合作者现在正在使用数据集来训练一个机器人,从本质上“想象”在两点之间推物体。在Omniush上训练后,机器人作为输入两个视频帧,显示一个物体的起始位置和结束位置。利用起始位置,机器人预测所有未来的视频帧,以确保目标达到其结束位置。然后,它以一种与每个预测的视频帧相匹配的方式推送对象,直到它到达具有结束位置的帧。

Bauza说:“机器人在问:”如果我做这个动作,物体在这个框架里会在哪里?“然后,它会选择最大可能使物体处于它想要的位置的动作。”“它首先通过想象图像中的像素在推送后将如何变化来决定如何移动对象。”

“Omniush包括精确测量物体的运动以及视觉数据,这对于机器人和世界上的物体之间的一种重要的交互作用是非常重要的,”马修·T·梅森(Matthew T.Mason)教授说。计算机科学卡内基·梅隆大学的机器人。“机器人研究人员可以利用这些数据开发和测试新的机器人学习方法…,这将推动机器人操作方面的持续进步。”

操作对象_有进取心的机器人学习对象操作的基本原理相关推荐

  1. python在冒号处显示语法错误_深入解析Python小白学习【操作列表】

    1.遍历列表 需要对列表中的每个元素都执行相同的操作时,可使用for 循环: magicians = ['alice','david','carolina'] for magician in magi ...

  2. java 正则对象_网络编程Java 使用正则表达式对象实现正则的获取功能

    获取需要使用到正则的两个对象: 使用的是用正则对象Pattern 和匹配器Matcher. 用法: 范例: Pattern p = Pattern.compile("a*b"); ...

  3. 定义一个dto对象_正确理解DTO、值对象和POCO

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和PO ...

  4. yii2数组转为对象_好程序员Java学习路线分享java为什么不支持泛型数组

    本篇文章好程序员为大家一下java为什么不支持泛型数组,希望对大家有所帮助. public class Pair { public void info( ) { System.out.println( ...

  5. python学习详解_深入解析Python小白学习【操作列表】

    1.遍历列表 需要对列表中的每个元素都执行相同的操作时,可使用for 循环: magicians = ['alice','david','carolina'] for magician in magi ...

  6. java 字节码对象_获得类的字节码对象的三种方式

    java源码(xxx.java)通过编译后形成字节码文件,字节码文件通过类加载器获得字节码对象, 通过字节码对象可以操作源码中的属性和方法. 方式一,使用类的class属性: Class clazz1 ...

  7. 声明对象_计算机各语言数据类型及对象声明之区别

    各语言数据类型 JS中数据类型有:整数型.浮点型.String.布尔型.转义字符.未定义.空值(null) JAVA中数据类型有: byte short int long float double b ...

  8. 定义一个dto对象_业务代码的救星——Java 对象转换框架 MapStruct 妙用

    在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domainobject,将 domainobject 转为数据持久层的 dataobje ...

  9. java 反射获取对象_使用Java反射机制获取对象

    本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...

最新文章

  1. VM8不能安装64位操作系统原因解析
  2. CentOS6 kvm添加网卡桥接口脚本
  3. Ubuntu 18.04 如何添加或删除 SWAP 交换分区
  4. 为计算机系的学生建立视图,数据库及其应用2010年1月真题
  5. 查询每个班级排名第三的学生
  6. Codeforces 987B. High School: Become Human
  7. braintree php 开发,php – 如何为使用Braintree和静态方法调用的端点编写集成测试...
  8. 开源特训营 - Lesson 4 - 如何运营社区
  9. 创建新的option
  10. Spring Cloud Alibaba Seata处理分布式事务及案例实战
  11. 加速器在模拟器中的尝试
  12. python-pandas-简单的excel表格按行去重
  13. 基于arm板linux的语音合成,基于ARM7和μCLinux的中文电子语音阅读系统的研究与应用...
  14. 求素数常用的几种方法
  15. andriod studio 运行项目时没有NDK(Android Studio如何更改JDK和SDK或者DNK的路径)
  16. 2021-2027全球与中国拆弹机器人市场现状及未来发展趋势
  17. xlsx表格怎么做汇总统计_办公软件excel表格数据统计-如何将多个EXCEL表格的数据进行汇总?...
  18. 艾司博讯:拼多多一件代发怎么发货
  19. 2019-02-13 扇贝自动打卡贼简单版
  20. php实现图片液化,图像变形算法:实现Photoshop液化工具箱中向前变形工具

热门文章

  1. 4怎样判断动作是否执行_汽车驾驶怎样试验高压火,怎样判断分电器盖是否破裂,来看看吧!...
  2. eclipse设置java虚拟机内存大小_eclipse设置java虚拟机内存大小
  3. vs 之bug集(不断更新中)
  4. linux中pss用法,[Linux] Memory: VSS/RSS/PSS/USS
  5. mysql sql语句里连接符的使用_SQL中group_concat函数,用符号连接查询分组里字段值...
  6. Linux/Centos源码安装python3任意版本
  7. 百度网盘查看分享的文件
  8. 配置阿里云docker加速与云镜像配置
  9. 怎么查redis 中的 cache_20、springcloud如何使用spring-cache
  10. java线程打水问题_Java 多线程 wait() 虚假唤醒问题