一种基于深度强化学习的机械臂六自由度实时抓取方法

文档序号:1929916 发布日期:2021-12-07 浏览:3次 >En<

阅读说明:本技术 一种基于深度强化学习的机械臂六自由度实时抓取方法 (Mechanical arm six-degree-of-freedom real-time grabbing method based on deep reinforcement learning ) 是由 禹鑫燚 徐靖 黄睿 邹超 欧林林 陈磊 于 2021-08-24 设计创作,主要内容包括:本发明涉及基于深度强化学习的机械臂六自由度实时抓取方法。包括如下步骤:步骤一:通过双目相机采集抓取操作台上物体的图像信息;步骤二:利用YOLOv5剪枝网络模型对图像进行目标检测训练;步骤三:建立强化学习网络模型;步骤四:通过机器人正逆运动学完成机械臂抓取移动;步骤五:进行强化学习模型训练,使得机械臂完成抓取动作;本发明克服现有技术的缺点,提出一种易实现、适用性高的,基于YOLOv5剪枝网络和Policy Gradient强化学习方法的实时物体检测系统,此系统在保证高精度的同时,可以实现快速实时的目标检测并完成抓取动作。(The invention relates to a six-degree-of-freedom real-time grabbing method of a mechanical arm based on deep reinforcement learning. The method comprises the following steps: the method comprises the following steps: acquiring image information of an object on a grabbing operation table through a binocular camera; step two: carrying out target detection training on the image by using a YOLOv5 pruning network model; step three: establishing a reinforcement learning network model; step four: the grabbing movement of the mechanical arm is completed through the forward and backward kinematics of the robot; step five: performing reinforcement learning model training to enable the mechanical arm to complete a grabbing action; the invention overcomes the defects of the prior art, provides a real-time object detection system which is easy to implement and high in applicability and is based on a YOLOv5 pruning network and a Policy Gradient reinforcement learning method, and the system can realize quick real-time target detection and complete grabbing actions while ensuring high precision.)

一种基于深度强化学习的机械臂六自由度实时抓取方法

技术领域

本发明属于一种基于深度强化学习的机械臂实时抓取物体技术,具体涉及YOLOv5剪枝网络、Kinevt正逆运动学、CoppeliaSim Edu仿真软件和Policy Gradient强化学习策略。

背景技术

抓取作为机器人学的一个基本而重要的问题,尽管其至关重要,但对于这一问题的解决方案一直不能令人满意。但是,随着近年深度学习和强化学习的快速发展,为机械臂智能抓取方式提供了多方面的可行思路。实时目标检测技术是近年来计算机视觉领域中的研究热门,这种技术包括对轻量级目标检测网络的设计、目标数据集的制作,模型部署载体的研究等。其中,最浅显的应用之一在于准确,快速的智能分拣领域中,如无人流水线上的机器人智能分拣。,

在无人的机器人智能分拣环境中,如何求得机械臂合适的抓取姿态一直是困扰机器人实现自主抓取目标对象的一大难题。在研究早期,Antonio Bicchi and Vijay Kumar等人致力于从通过传统的物理姿态分析,找到机械臂合适的抓取姿态。(Antonio Bicchiand Vijay Kumar.“Robotic grasping and contact:A review”.In:IEEE InternationalConference on Robotics and Automation(ICRA).Vol.1.IEEE.2000,pp.348–353.)。然而,这些基于物理分析的方法不仅需要计算大量的实验数据,这导致的必然是需要大量的时间和计算成本,同时必须具有准确的物体模型,而这些模型并不是总是通用的。故此很难将这些算法应用于未记录于数据集的目标对象。

随着深度学习和计算机视觉的发展,Lerrel Pinto and Abhinav Gupta等人提出了基于数据驱动或者学习的方法来解决这一问题。(Lerrel Pinto and Abhinav Gupta.“Supersizing selfsupervision:Learning to grasp from 50k tries and 700robothours”.In:2016IEEE international conference on robotics and automation(ICRA).IEEE.2016,pp.3406–3413.)。首先探索的是基于二维平面的抓取,Sulabh Kumra andChristopher Kanan等人通过学习数据集中的抓取姿态生成了二维平面相应姿态,在二维抓取指标上获得了很高的准确度。然而,二维平面抓取模型对抓取姿态有许多限制要求,机械臂末端抓取器只能沿自上而下的方向接近物体,而在实际应用过程中,这单一抓取方向极大地限制了机械臂智能抓取地应用,例如抓取器很难抓取一块水平放置的木板。

由此,机械臂6自由度(6-DOF)抓取想法被提出。虽然,以Sida Peng等人为代表提出的6D姿态估计可以实现对数据集中的物体对象进行6-DOF抓取,但其对于数据集中未记录的对象抓取成功率较为低下,故此不能推广到新的应用场景。(Sida Peng et al.“Pvnet:Pixel-wise voting network for 6dof pose estimation”.In:Proceedings ofthe IEEE/CVF Conference on Computer Vision and Pattern Recognition.2019,pp.4561–4570)。Hongzhuo Liang提出的PointnetGPD采用采样-评估的两步法,通过评估大量的样本以确定可靠的抓取姿态。但是,这种方法无疑是相当耗时的。(Hongzhuo Liang etal.“Pointnetgpd:Detecting grasp configurations from point sets”.In:2019International Conference on Robotics and Automation(ICRA).IEEE.2019,pp.3629–3635)。Florence等人从现有的抓取姿态中进行姿态转移。但是这些方法面对未知的目标对象和物体几何形状与数据集中不相似时,其成功率就会相对较为低下。(PeterFlorence,Lucas Manuelli,and Russ Tedrake.“Dense Object Nets:Learning DenseVisual Object Descriptors By and For Robotic Manipulation”.In:Conference onRobot Learning(CoRL)(2018))。Mousavian等人将RGBD相机拍摄的部分点云视角输入到神经网络,输出6-DOF的抓取姿态。然而,由于潜在的传感器存储和传输等故障,输入网络的三维点云深度数据与传统二维RGB图片数据相比并不稳定。因此通过结合实时目标检测、强化学习和正逆运动学等相关模块形成的机械臂实时目标检测并抓取系统成为时下亟待解决的问题。

发明内容

本发明克服现有技术的缺点,提出一种易实现、适用性高的机械臂六自由度实时抓取方法。本发明建立了YOLOv5剪枝网络和Policy Gradient强化学习模型,在保证高精度的同时,可以实现快速实时的目标检测并完成抓取动作。

本发明以图像序列作为输入,首先利用YOLOv5剪枝模型对每帧图像进行目标检测与识别,该模型由卷积层、Batch Normal层(BN层)、LeakyRelu层,上采样层组成,网络模型结构图见附图1。在网络模型构建的过程中,对卷积层的通道做剪枝操作,通过BN层中的γ参数的大小作为衡量每个通道重要性的指标,对卷积层中的各个通道进行重要性排序,设置一个剪枝的百分比阈值,裁剪重要程度低于阈值的通道;对修剪后的神经网络模型进行训练,微调神经网络参数;重复修剪与微调步骤,在达到指标后停止修剪。YOLOv5使用Mosaic数据增强操作提升模型的训练速度和网络精度,并提出了自适应锚框计算与自适应图片缩放。在机械臂末端安装Intel RealSense D415双目摄像头,通过双目相机采集操作台上物体图像信息,送入剪枝后的YOLOv5模型得到抓取对象的中心坐标点和物体标签。然后将双目相机采集的彩色和深度图像信息进行归一化处理,并将处理结果送入训练好的强化学习网络,输出抓取置信度和最大概率抓取点,将图像抓取点转化为机械臂末端绕坐标轴所需旋转的角度,即将二维图像信息转换为三维半球型抓取角度图见附图2。将YOLOv5剪枝模型输出的物体中心坐标点和强化学习网络输出的三个旋转角度输入机器人正运动学得到相应机械臂运动轨迹,完成机械臂抓取动作。

本发明为一种基于深度强化学习的机械臂六自由度实时抓取方法,具体步骤如下:

步骤1:通过双目相机采集抓取操作台上物体的图像信息:

首先将Intel D415深度相机垂直固定于机械臂末端,使其能够采集到抓取操作台上物体的完整图像信息。

步骤2:利用YOLOv5剪枝网络模型对图像进行目标检测训练:

步骤2.1:在设计YOLOv5剪枝网络模型时,本发明借鉴于ResNet网络中的残差结构shortcut设计,以此来加深YOLOv5主体网络的深度,通过设定卷积层中的步长参数实现卷积层的下采样,提升YOLOv5网络识别准确率。其次除最后用于预测的三层卷积层之外,其余的卷积层后都添加Batch Normalization(BN)操作,并在BN层后接Leaky_Relu激活函数。采用自上而下特征金字塔多尺度模型结构,通过上采样操作对网络输出的三个特征图进行融合,达到多尺度预测的目的。

步骤2.2:使用K-meas聚类和基于训练数据自动学习算法,对真实锚框进行聚类,得到适合自定义数据集中对象边界框预测的预设锚框,此方法的目的是加速预测框的回归,模型网络前向推断中预测公式如下所示:

by=σ(ty)+cy (1)

bx=σ(tx)+cx (2)

bx,by是预测框在对应尺寸的特征图上的相对中心坐标值。bw,bh是预测框的宽和高。cx,cy是输出特征图grid cell的左上角坐标,pw,ph为锚框的宽和高。tx,ty为预测的坐标偏移值,tw,th为预测的尺度缩放倍数;

步骤2.3:设计YOLOv5损失函数,采用GIOU_Loss来代替Smooth L1 Loss函数,从而进一步提升算法的检测精度,通过不断训练数据集中的数据,减小损失函数,更新模型权重参数;

步骤2.4:首先,将更新好的模型权重参数导入YOLOv5剪枝模型。其次将上述步骤1采集到的抓取操作台上物体的图像信息作为网络模型的输入,输出为图像中物体的中心坐标点和标签值。

步骤3:建立强化学习网络模型:

步骤3.1:设计强化学习网络损失函数,采用计算交叉熵损失函数,从而进一步提升算法的检测精度;

步骤3.1.1:设计目标置信度损失函数;

步骤3.1.2:建立权重更新函数;

步骤3.1.3:通过权重系数得到最终的损失函数;

步骤3.2:强化学习网络由多个特征提取网络组成。首先,利用多层卷积神经网络将上述步骤1得到的彩色图片和深度信息进行特征提取,分别得到彩色和深度两张张量。然后利用Pytorch的concat将两张张量拼接,并将其送入由BatchNormalization(BN)和卷积层组成的有序容器中,得到抓取概率特征张量。

步骤3.3:最后,将输出的张量整理为16张大小为28*28的热力图,找出最大概率抓取点所在坐标,即输出的为一组三维坐标数组。

步骤3.4:将数组中每一元素转换为机械臂末端分别绕x,y,z三个坐标轴旋转的角度,具体转换公式如下所示:

ax=((best_pix_ind[0]-14)*30/28)-pi (22)

by=((best_pix_ind[1]-14)*30/28) (23)

rz=(best_pix_ind[2]*180/16) (24)

其中ax表示为机械臂末端绕x轴旋转角度,即为末端执行器的侧倾角;by表示为机械臂末端绕y轴旋转角度,即为末端执行器的俯仰角;rz表示为机械臂末端绕z轴旋转角度,即为末端执行器的偏航角。

步骤4:通过机器人正逆运动学完成机械臂抓取移动:

首先,通过机器人逆运动学求解出当前状态下机械臂的6个关节角度数。然后将所述步骤2中YOLOv5识别模块得到的物体中心坐标以及所述步骤3中强化学习网络输出得到的机械臂末端三维旋转量送入机器人正运动学,即可求得机械臂运动到目标点后末端执行器的抓取姿态的移动轨迹,进而控制末端执行器关闭夹具,尝试进行抓取动作,当抓取成功时,强化学习网络回报为1;抓取失败时,强化学习网络回报为0。

步骤5:进行强化学习模型训练,使得机械臂完成抓取动作:

不断进行上述步骤4,即可得到一系列强化学习网络回报值,通过缩小强化学习模型中的损失函数,不断更新模型权重参数。最后,将训练好的权重参数导入到模型中,重复步骤4,完成机械臂六自由度实时检测抓取任务。

综上所述,本发明的优点在于,在保证YOLOv5识别模型已有的高精度检测基础上,对其进行神经网络通道的剪枝,既减少了神经网络的计算量和存储量,又避免了对模型性能造成太大的影响。同时,针对该方法设计了强化学习网络,克服了通过传统物理推导机械臂抓取姿态计算繁琐,时间成本高的缺点,解决了机械臂6-DOF抓取姿态无法应用于数据集中未记录的目标对象问题。不仅保证了机械臂模型的较高抓取成功率,还得益于强化学习的泛化性,即该方法可以应用于新的抓取对象,解决了传统方法的耗时计算以及降低了输入部分点云模型的不稳定性。此发明实现了对抓取对象的实时检测并进行6-DOF抓取的功能。

附图说明

图1是本发明中YOLOv5模型的结构图;

图2是本发明中末端执行器三维半球型抓取角度图;

图3是本发明YOLOv5的训练流程图;

图4是本发明中强化学习网络的流程图;

图5是本发明中机械臂实时检测和抓取的流程图。

具体实施方式

下面结合附图进一步说明本发明。

本发明的基于YOLOv5剪枝网络和强化学习的机械臂实时抓取方法,具体过程如下:

步骤1:通过双目相机采集抓取操作台上物体的图像信息:首先将Intel D415深度相机垂直固定于机械臂末端,使其能够采集到抓取操作台上物体的完整图像信息。

步骤2,利用YOLOv5剪枝网络模型对图像进行目标检测训练;

步骤2.1:由于理论上,网络越深,其性能越好。但是,实验表明在反向传播过程中需要对激活HAN函数进行求导,如果导数大于1,那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加,即梯度爆炸;而导数如果小于1,那么随着网络层数的增加梯度更新信息会朝着指数衰减的方式减少,即梯度消失。为了降低梯度爆炸和梯度消失的可能性,本发明在YOLOv5剪枝网络模型时设计参考残差网络Resnet跳层连接结构,将卷积层的步长参数设为2,并对其余卷积层加入Batch Normalization(BN)。由CBL模块、Res_unint模块以及卷积层、Concate组成CSP1_X模块;由卷积层和X个Res_unint模块Concate组成CSP2_X模块。其输入层由卷积层,Batch Normalization(BN),Leaky_Relu激活函数组成。根据输入彩色图大小,学习数据集中的锚框大小,达到自适应多尺度预测的目的。

步骤2.2:使用基于训练数据自动学习和K-meas聚类算法,即使数据集中目标对象大小与COCO数据集中不同,YOLOv5也可以重新学习锚框的尺寸,得到适合自定义数据集中对象边界预测的预设锚框,此方法的目的是加速预测框的回归。YOLOv5剪枝网络模型前向推断中预测公式如下所示:

by=σ(ty)+cy (1)

bx=σ(tx)+cx (2)

进行目标检测框的预测,最后得到预测框相对于当前特征图的相对中心坐标值bx,by,以及预测框的宽和高bw,bh,cx,cy是输出特征图grid cell的左上角坐标,pw,ph为锚框的宽和高。tx,ty为网络预测的坐标偏移值,tw,th为网络预测的尺度缩放倍数。

步骤2.3:设计YOLOv5损失函数,采用GIOU_Loss交叉熵损失来代替Smooth L1Loss函数,设计的目标置信度损失函数如下所示:

其中网络输出ci通过Sigmoid函数得到

步骤2.4:目标类别损失函数同样采用二值交叉熵,设计的目标类别损失函数如下所示:

其中,网络输出ci通过Sigmoid函数得到表示目标检测框i中存在第j类目标的Sigmoid概率:

步骤2.5:目标定位损失函数采用MSE损失函数,如下所示:

其中:

其中表示预测框的坐标偏移量(YOLOv3预测的是坐标偏移值),表示真实框的坐标偏移量,(bx,by,bw,bh)为预测框的参数,(cx,cy,pw,ph)为锚框的参数,(gx,gy,gw,gh)为真实框的参数;

步骤2.6:将上述所有损失函数通过权值相加得到总损失函数:

L(O,o,C,c,l,g)=λconfLconf(o,c)+λclaLcla(O,C)+λlocLloc(l,g) (11)

步骤2.7:首先,通过步骤2-1.2至2-2.4不断降低模型总损失函数从而更新模型权重,得到训练好的权重参数。然后,将更新好的模型权重参数导入YOLOv5剪枝模型。其次,将上述步骤1采集到的抓取操作台上物体的图像信息作为网络模型的输入,输出为图像中物体的中心坐标点和标签值。

步骤3,建立强化学习模型:

步骤3.1:通过以下公式对网络进行前向推理:

其中公式(12)表示在状态s,动作a下的期望回报,其中at表示t时刻采取的动作,st表示t时刻的状态,rt表示t时刻的回报;公式(13)表示网络总的回报函数;公式(14)为状态分布函数;公式(15)表示状态-动作函数。

步骤3.2.1:设计强化学习网络损失函数,采用计算交叉熵损失函数,其公式如下所示:

其中τ=s0a0s1a1...snan...表示马尔可夫过程。

由于Pr{a|s}=π(s,a),故此可得公式(17).

步骤3.2.2:权重更新函数如下所示:

其中fω:S×A→R是对的近似函数,当fω取极小值,Δω=0时,可推导出公式(19)

步骤3.2.3:当满足公式(20)时,则通过权重系数得到最终的损失函数,如下所示:

步骤3.3:首先,根据上述公式设计网络模型:特征提取网络由卷积层,BatchNormalization,MaxPooling池化层组成,最后加上全连接层。然后,通过降低步骤3-2.3中的损失函数从而更新模型权重,得到训练好的权重参数。接着,将更新好的权重参数导入强化学习网络模型。其次,对步骤1得到的彩色图像和深度图像进行缩放和归一化处理,使得两张图像格式符合强化学习网络的输入要求。将特征提取网络输出的两张张量通过Pytorch的concat进行横向拼接,送入Batch Normalization和卷积层组成的网络,输出大小为12544的特征概率热点图。

步骤3.4:最后,将输出的张量整理为16张大小为28*28的热力图,找出最大概率抓取点所在坐标,即输出的为一组三维坐标数组。

步骤3.5:将输出的三维数组中每一元素转换为机械臂末端分别绕x,y,z三个坐标轴旋转的角度,具体转换公式如下所示:

ax=((best_pix_ind[0]-14)*30/28)-pi (22)

by=((best_pix_ind[1]-14)*30/28) (23)

rz=(best_pix_ind[2]*180/16) (24)

其中ax表示为机械臂末端绕x轴旋转角度,即为末端执行器的侧倾角;by表示为机械臂末端绕y轴旋转角度,即为末端执行器的俯仰角;rz表示为机械臂末端绕z轴旋转角度,即为末端执行器的偏航角。

步骤4,通过机器人正逆运动学完成机械臂抓取移动:

首先,通过机器人逆运动学求解出当前状态下机械臂的6个关节角度数。然后将所述步骤2中YOLOv5识别模块得到的物体中心坐标以及所述步骤3中强化学习网络输出得到的机械臂末端三维旋转量送入机器人正运动学,即可求得机械臂运动到目标点后末端执行器的抓取姿态的移动轨迹,进而控制末端执行器关闭夹具,尝试进行抓取动作,当抓取成功时,强化学习网络回报为1;抓取失败时,强化学习网络回报为0。

步骤5:进行强化学习模型训练,使得机械臂完成抓取动作:

不断进行上述步骤4,即可得到一系列强化学习网络回报值,通过缩小强化学习模型中的损失函数,不断更新模型权重参数。最后,将训练好的权重参数导入到模型中,不断重复上述步骤4,完成机械臂六自由度实时检测抓取任务。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有路线规划稳定机构的机器人系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!