机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

2023-11-04

Real-Time Deep Learning Approach to Visual Servo Control and Grasp Detection for Autonomous Robotic Manipulation

(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

1 引言

  • 找到理想抓取配置抓取假设子集包括:机器人将执行的任务类型、目标物体的特征、关于物体的先验知识类型、机械爪类型,以及最后的抓取合成
  • 注:从本文中可以学习到视觉伺服的相关内容,用于对动态目标跟踪抓取自动调整观察姿态,因为观察的角度不同,预测的抓取框位置也不同,抓取物品离相机位置越近,抓取预测越准

1.1 抓取综合方法

  • 抓取综合方法是机器人抓取问题的核心,因为它涉及到在物体中寻找最佳抓取点的任务。这些是夹持器必须与物体接触的点,以确保外力的作用不会导致物体不稳定,并满足一组抓取任务的相关标准。
  • 抓取综合方法通常可分为分析法基于数据的方法
  • 分析法是指使用具有特定动力学行为的灵巧且稳定的多指手构造力闭合
  • 基于数据的方法 建立在按某种标准的条件下,对抓取候选对象的搜索对象分类的基础上。(这一过程往往需要一些先验经验)

1.2 基于视觉的机器人抓取系统

  • 基于视觉的机器人抓取系统一般由四个主要步骤组成,即目标物体定位、物体姿态估计、抓取检测(合成)和抓取规划
  • 一个基于卷积神经网络的系统,一般可以同时执行前三个步骤,该系统接收对象的图像作为输入,并预测抓取矩形作为输出
  • 抓取规划阶段,即机械手找到目标的最佳路径。它应该能够适应工作空间的变化,并考虑动态对象,使用视觉反馈。
  • 目前大多数机器人抓取任务的方法执行一次性抓取检测,无法响应环境的变化。因此,在抓取系统中插入视觉反馈是可取的,因为它使抓取系统对感知噪声、物体运动和运动学误差具有鲁棒性。

2 抓取检测、视觉伺服和动态抓取

  • 抓取计划分两步执行。首先作为一个视觉伺服控制器,以反应性地适应对象姿势的变化。其次,作为机器人逆运动学的一个内部问题,除了与奇异性相关的限制外,机器人对物体的运动没有任何限制。

2.1抓取检测

  • 早期的抓取检测方法一般为分析法,依赖于被抓取物体的几何结构,在执行时间和力估计方面存在许多问题。此外,它们在许多方面都不同于基于数据的方法
  • 基于数据的方法Jiang、Moseson和Saxena等人仅使用图像,从五个维度提出了机器人抓取器闭合前的位置和方向表示,如下图,该五维表示足以对抓取姿势的七维表示进行编码[16],因为假定图像平面的法线近似,因此三维方向仅由θ给出。
    在这里插入图片描述
  • 本文的工作重点是开发一种简单高效的CNN,用于预测抓取矩形。在训练和测试步骤中,所提出的网络足够轻,可以联合应用第二个CNN,解决视觉伺服控制任务。因此,整个系统可以在机器人应用中实时执行,而不会降低两项任务的精度。

2.2 视觉伺服控制

  • 经典的视觉伺服(VS)策略要求提取视觉特征作为控制律的输入。必须正确选择这些特征,因为控制的鲁棒性与此选择直接相关。
  • 最新的VS技术探索了深度学习算法,以同时克服特征提取和跟踪、泛化、系统的先验知识以及在某些情况下处理时间等问题。
  • Zhang等人开发了第一项工作,证明了在没有任何配置先验知识的情况下,从原始像素图像生成控制器的可能性。作者使用Deep Q-Network ,通过深度视觉运动策略控制机器人的3个关节,执行到达目标的任务。训练是在模拟中进行的,没有遇到真实的图像。
  • 遵循强化学习方法的工作使用确定性策略梯度设计新的基于图像的VS或Fuzzy Q-Learning,依靠特征提取,控制多转子空中机器人。
  • 另一种方法中,一些研究视觉伺服深度学习的工作是通过卷积神经网络进行的。CNN的泛化能力优于RL,因为RL学习的参数是特定于环境和任务的。.
  • 本文设计了四种卷积神经网络模型作为端到端视觉伺服控制器的潜在候选。网络不使用参考图像和当前图像以外的任何类型的附加信息来回归控制信号。因此,所提出的网络作为实际上的控制器工作,预测速度信号,而不是相对姿态。

2.3 动态抓取

  • 学习感知行为的视觉表征,遵循反应范式,直接从感觉输入生成控制信号,无需高级推理,有助于动态抓取。
  • 强化学习方法适用于特定类型的对象,并且仍然依赖于某种先验知识,因此,最近大量研究探索了将深度学习作为解决闭环抓取问题的方法。
  • Levine等人提出了一种基于两个组件抓取系统第一部分预测CNN,其接收图像和运动命令作为输入,并输出通过执行这样的命令,所产生的抓取将是令人满意的概率。第二个部分视觉伺服功能。这将使用预测CNN来选择将持续控制机器人成功抓取的命令。这称为是深度强化学习,需要很久的训练时间。
  • 2019年,Morrison, Corke 和 Leitner 开发了一种闭环抓取系统,在这种系统中,抓取检测和视觉伺服不是同时学习的。作者使用完全CNN获取抓取点,并应用基于位置的视觉伺服,使抓取器的姿势与预测的抓取姿势相匹配。

3 本文实现的方法

  • VS目的是通过将相机连续获得的图像与参考图像进行比较,引导操纵器到达机器人能够完全看到物体的位置,从而满足抓取检测条件。因此,该方法的应用涵盖了所有情况,其中机器人操作器(相机安装在手眼模式下)必须跟踪和抓取对象。
  • 系统包括三个阶段设计阶段、测试阶段和运行阶段第一个基于CNN架构的设计和训练,以及数据集的收集和处理。在第二阶段,使用验证集获得离线结果,并根据其准确性、速度和应用领域进行评估第三阶段涉及在机器人上测试经过训练的网络,以评估其在实时和现实应用中的充分性。
  • 运行阶段,系统运行的要求是事先获得目标对象的图像,该图像将被VS用作设定点。只要控制信号的L1范数大于某个阈值,则执行控制回路。
    在这里插入图片描述
  • 单个参考图像作为视觉伺服CNN输入之一呈现给系统。相机当前获取的图像作为该网络的第二个输入,并作为抓取CNN输入。这两个网络都连续运行,因为抓取CNN实时预测矩形以进行监控,VS网络执行机器人姿势实时控制
  • VS CNN预测一个速度信号,该信号乘以比例增益λ,以应用于相机中。机器人的内部控制器寻找保证相机中预测速度关节速度。在每次循环执行时,根据机器人的当前位置更新当前图像,只要控制信号不收敛,该循环就会重复。
  • 当满足停止条件时,抓取网络的预测映射到世界坐标系。机器人通过逆运动学得到并到达预测点,然后关闭夹持器。

3.1 网络体系结构

在这里插入图片描述

  • 该卷积网络架构被用于抓取检测。网络接收224×224×3的RGB图像作为输入无深度信息
  • layer 132个3×3卷积组成,layer 2 包含164个卷积。在这两种情况下,卷积运算都是通过步长2和零填充(zero-padding)执行的,然后是批标准化(batch normalization)和2×2最大池化layer 3 包含96个卷积,其中卷积使用步长1和零填充执行,然后仅执行批标准化layer 4 ,也是最后一层,卷积层由128个卷积组成,以步长1执行,然后是2×2最大池化。
  • 最后一层卷积之后,生成的特征映射在包含4608个元素的一维向量中被展开。进一步传递到两个全连接(FC)层,每个层有256个神经元。在这些层次之间,训练期间考虑50%的dropout rate
  • 最后,输出层5个神经元组成,对应于编码抓取矩形的**(x,y,w,h,θ)值。在所有层中,使用的激活函数都是ReLU**,但在输出层中使用线性函数的情况除外。

3.2 Cornell 抓取数据集

  • 为了对数据集真值进行编码,使用四个顶点的x和y坐标编译抓取矩形。
    在这里插入图片描述
  • Xc和Yc参数分别表示矩形中心点的X和Y坐标,可从以下公式获得:
    在这里插入图片描述
  • 计算夹持器开口w和高度h,同样更具四个顶点计算:
    在这里插入图片描述
  • 最后,表示夹持器相对于水平轴方向的θ由下式给出:
    在这里插入图片描述

3.3 结果评估

  • 预测矩形(rp)和真值矩形(rc)之间的角度θ差必须在30度以内。
  • 雅卡尔指数(交并比)需大于0.25,不用达到一般的0.25 即可

3.4 视觉伺服网络体系结构

  • 与抓取不同,设计用于执行机械手视觉伺服控制的网络接收两个图像作为输入,并且必须回归六个值,考虑到线性角度相机速度,这些值也可以分为两个输出。共有四个模型处理VS任务。
  • 模型1-直接回归(最终实验效果最佳)。它基本上与抓取网络相同除了第三卷积层中包含最大池化和不同的输入维度,这导致特征图上的比例差异相同。
    在这里插入图片描述
  • 模型2-任务特定回归。网络输入被串联,第三组特征图由两个独立的层序列处理(多任务网络)。因此,网络以两个3D矢量的形式预测6D速度矢量。具体来说,该结构由一个共享编码器和两个特定解码器组成 - 一个用于线速度,另一个用于角速度

在这里插入图片描述

  • 模型3-串联特征的直接回归和模型4-相关特征的直接回归,两个模型的结构类似,通过关联运算符(∑)区分。模型3简单连接模型4使用相关层
  • 模型3简单地由第三个卷积层产生的特征映射连接,因此第四个层的输入深度是原来的两倍。而模型4有一个相关层,帮助网络找到每个图像的特征表示之间的对应关系。原始相关层是flow network FlowNet的结构单元。
    在这里插入图片描述

3.5 VS数据集

  • 该数据集能够有效地捕获机器人操作环境的属性,具有足够的多样性,以确保泛化。
  • 机器人以参考姿态为中心高斯分布的不同姿态,具有不同标准偏差(SD)
  • 下表为参考姿势(分布的平均值)机器人假设的标准偏差集(SD)。
    在这里插入图片描述
  • SD选择考虑了机器人在VS期间必须执行的预期位移值。
  • 高SD获得的图像有助于网络了解机器人产生大位移图像空间中产生的变化
  • 当参考图像和当前图像非常接近时,从低SD获得的实例能够减少参考图像和当前图像之间的误差,从而在稳态下获得良好的精度。
  • 平均SD值有助于网络在大部分VS执行期间进行预测。
  • 获得数据后,数据集以**(I,[x,y,z,α,β,γ])的形式构造,其中图像I**,**[x,y,z,α,β,γ]**是拍摄该图像时对应的相机姿态。
  • α, β, γ为泰特-布莱恩角内旋(按照Z-Y-X变换)
  • 已处理数据集的每个实例都采用(Id, Ic,dHc)表示。Id是选择作为所需图像的随机实例;Ic选择另一个实例作为当前图像;dHc是二者的变换。
  • 通过齐次变换矩阵形式表示每个姿势(由平移和欧拉角表示)来实现(0Hc0Hc),然后获得dHc=0Hd-1 0Hc
  • 最后,对于实际上是控制器的网络,其目的是其预测相机的速度信号,即。E控制信号。 (Id, Ic,dHc) 被转化为(Id, Ic,Vc
  • Vc是比例相机速度。由于在确定标记比例速度时不考虑λ增益,因此使用了周期性项,并且在控制执行期间必须对λ增益进行后验调整
  • 速度Vc由dHc表示:
    在这里插入图片描述
  • 其中,R旋转矩阵;**rij**同一矩阵第i行和第j列的元素;c∗tc是与当前相机位置到期望相机位置的平移向量;λ是比例增益(初始设置为1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述) 的相关文章

  • 数组指针和指针数组的区别

    数组指针 也称行指针 定义 int p n 优先级高 首先说明p是一个指针 指向一个整型的一维数组 这个一维数组的长度是n 也可以说是p的步长 也就是说执行p 1时 p要跨过n个整型数据的长度 如要将二维数组赋给一指针 应这样赋值 int
  • 通用视觉框架OpenMMLab实践,MMEditing工具包,windows10配置

    活动地址 CSDN21天学习挑战赛 1 MMEditing 面向图像编辑的工具包 支持图像修复 图像转译 图像修补 图像超分任务 2 检查自己pytorch的版本 pytorch和cuda安装配置可以参考这里 在python中输入 impo
  • 怎样成为一个好的程序员

    1 你需要精通面向对象分析与设计 OOA OOD 涉及模式 GOF J2EEDP 以及综合模式 你应该了解UML 尤其是class object interaction以及statediagrams 2 你需要学习Java语言的基础知识以及
  • Python爬虫从入门到精通:(16)线程池_Python涛哥

    线程池 我们暂时用自己的服务器进行爬取 Flask的基本使用 Flask的基本使用 环境安装 pip install flask 创建一个py源文件 详细代码看 FlaskServer py usr bin env python3 codi

随机推荐

  • git关联两个远程仓库,一个仓库(github)拉取代码,另一个仓库(gitlab)推送代码

    有这种情况 小伙伴们在github上下载的开源项目 该开源项目还在继续开发维护 然后自己下载下来进行二次开发 然后又要把项目推送自己的gitlab私服上 这个时候不得不本地代码关联两个远程仓库 接下来我将一步步讲解如何关联两个远程仓库 并拉
  • opencv-python结构化元素cv2.getStructuringElement()

    在使用opencv的过程中 我们经常需要各种各样的卷积核 如果是正方形的核还好说 但是有时候需要定义椭圆形或者十字形的核 我们就需要用到cv2 getStructuringElement 函数了 第一个参数表示核的形状 可以选择三种 矩形
  • 透视矩阵的推导 opengl

    由参数l r b t n f定义的透视投影矩阵的推导困惑了我差不多一个多礼拜 这几天几乎是天天都在思考这个问题 昨天晚上3点多钟我突然醒了 然后我又开始想这个问题 结果终于让我给想通了 于是我赶紧起床把这个思路记在了草稿纸上 还专门照了张照
  • 计算机485通讯原理,用RS-485设计的多机通信接口电路

    利用RS 485总线建立的多机通信网 具有可靠性高 硬件设计简单 控制方便 成本低廉等优点 它与计算机之间的通信可以采用多级分级通信模式 可方便地建立起设备网络 一 多机通信网原理图 利用RS 485总线建立的多机通信网原理图如下图所示 P
  • python-docx常用方法总结

    由于最近有任务需要自动生成word报告 因此学习了一些python docx的使用方法 在此总结 目前网上相关的资料不算太多 且大多数都很简单 有一些稍微复杂的需求往往找不到答案 很多想要的方法这个库似乎并没有直接提供 在git上看 这个包
  • java中equals方法重写详解(彻底搞定)

    首先上案例 public static void main String args String str1 abc String str2 abc String str3 new String abc new出来的新地址 System ou
  • 计算机网络中的应用层和传输层(http/tcp)

    目录 1 协议的通俗理解 1 1 理解协议 2 应用层 2 1 http协议 2 2 HTTP的方法 2 3 HTTP的状态码 2 4 HTTP常见Header 3 传输层 3 1 端口号 3 1 1 端口号范围划分 3 1 2 netst
  • ESP32 Arduino安装和烧录程序

    学习ESP32前先必需了解一下Arduino Arduino是指开源硬件 在以前开源一般指的是软件 源码公开 后来随着发展出现了开源硬件 开源硬件有了以后大家就可以在开源硬件上做出一些兼容 官方学习参考网址 https www arduin
  • 使用docker 数据卷怎么查看数据卷对应的容器内部目录

    docker inspect redis7703 grep Mounts A 20 说明 redis7703 是容器名称
  • Mysql计算相邻两两记录某个字段的最大差值

    计算相邻两两记录某个字段的最大差值 需求一个患者有多条病程记录 查询该患者的 最大检查间隔 即求两两记录的最大检查间隔 天数 注1 其中检查时间是 case Record表中的create time字段 其中user id是患者编号 注2
  • GRE隧道协议

    一 GRE协议简介 GRE General Routing Encapsulation 通用路由封装 是对某些网络层协议 如IP和IPX 的数据报文进行封装 使这些被封装的报文能够在另一网络层协议 如IP 中传输 此外 GRE协议也可以作为
  • matlab怎么处理非平衡数据处理,处理非平衡数据的七个技巧

    原标题 处理非平衡数据的七个技巧 摘要 本文介绍了在入侵检测 实时出价等数据集非常不平衡的领域应用的数据处理技术 关键字 平衡数据 数据准备 数据科学 原文 7 Techniques to Handle Imbalanced Data ht
  • 深度学习归一化方法总结(BN、LN、IN、GN)

    目录 一 批量归一化 BatchNorm 二 层归一化 Layer Normalization 三 Instance Normalization 四 Group Normalization 一般在神经网络中会用到数据的归一化 比如在卷积层后
  • C++栈初步认识和范围for循环

    C 栈初步认识 1 使用栈实现字符串反转 2 范围for循环 1 使用栈实现字符串反转 当我们需要在程序中实现一个 先进后出 的数据结构时 栈就是一个很好的选择 在C 中 我们可以通过STL提供的stack类来使用栈 stack类模板定义在
  • 分段函数求值1

    Copyright c 烟台大学计算机与控制工程学院 Author 刘慧艳 Created 2014 07 16 Edition V1 0 Describe 分段函数求值 include
  • 电网电压的三相静止对称坐标系和三相电网电压的相量表示法

    电网电压的空间电压矢量和电网电压的相量表示这两个概念需要区分清楚 分别参考邱关源的 电路 和张兴的 PWM整流 相关章节 图2 三相电网电压的相量表示法 电网电压的相量表示 三相相差120度 整体逆时针50HZ旋转 这里的120度是指三分之
  • ceph -s分析

    1 源码跟踪 1 1 get cluster status https github com ceph ceph blob 2a724a2ff313701fd7f6278ce8ed7f440bb355e0 src mon Monitor c
  • Jenkins pipeline拉取代码超时

    拉取代码报错 using GIT ASKPASS to set credentials gt git fetch tags progress http 192 168 1 8 1234 bi web xxxxxx git refs head
  • Linux学习笔记:win10安装虚拟机

    第一步 打开win10自带的虚拟机 第一步 打开win10自带的虚拟机Hyper V 需要 win10系统 1 点击windows键 e键打开文件资源管理器 右击此电脑 gt 选择属性 gt 打开控制面板 2 选择控制面板主页 gt 选择程
  • 机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

    Real Time Deep Learning Approach to Visual Servo Control and Grasp Detection for Autonomous Robotic Manipulation 基于视觉的机器