Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)
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 1
由
32个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 结果评估
预测矩形(r
p
)和真值矩形(r
c
)之间的角度θ差必须在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变换)
已处理数据集的每个实例都采用(I
d
, I
c
,
d
H
c
)表示。I
d
是选择作为所需图像的随机实例;I
c
选择另一个实例作为当前图像;
d
H
c
是二者的变换。
通过
齐次变换矩阵
形式表示每个姿势(由
平移和欧拉角
表示)来实现(
0
H
c
和
0
H
c
),然后获得
d
H
c
=
0
H
d
-1
0
H
c
最后,对于实际上是
控制器
的网络,其目的是其
预测
相机的
速度信号
,即。E控制信号。 (I
d
, I
c
,
d
H
c
) 被转化为(I
d
, I
c
,V
c
)
Vc
是比例相机速度。由于在确定标记比例速度时不考虑λ增益,因此使用了
周期性项
,并且在
控制执行期间
必须对
λ增益
进行
后验调整
。
速度Vc由
d
H
c
表示:
其中,
R
是
旋转矩阵
;**r
ij
**同一矩阵第i行和第j列的元素;
c∗
t
c
是与当前相机位置到期望相机位置的平移向量;λ是比例增益(初始设置为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 基于视觉的机器
热门标签
上传APPStore
自动部署项目
C面向对象概念
问题管理
找不到
软件度量
滞后指标
先行指标
服务器端编程
muduo源码分析
搞科研的小助手
linux清理缓存
数据约简
微信小程序项目实战
import告警
蓝牙技术联盟
游戏自动化测试
待处理
pydensecrf