基于机器视觉的两自由度机械臂智能控制器*

2021-09-28 01:33刘志立宋昌林李军民
组合机床与自动化加工技术 2021年9期
关键词:神经网络控制器机械

刘志立,宋昌林,李军民,刘 涛

(西华大学机械工程学院,成都 610039)

0 引言

机械臂的控制一直是智能机器人控制中的重要问题和热点问题。目前对于机械臂的控制理论和方法已有较为深入的研究[1-2],但是这些方法依赖于环境的先验知识与机械臂的数学模型。早期的基于视觉的机器人是将图像进行图像处理后,从图像中得到机器人或者目标的位置,以此来达到智能控制和闭环控制的效果[3-6]。例如Kragic D等使用基于单目和双目视觉开发的闭环视觉算法实现了从目标识别到位姿估计的步骤是完全自动的[5]。然而这些算法大多针对特定的任务,需要环境的先验知识和机械臂的数学模型,由此开发的控制器无法做到自主地从图像中学习到有效的知识来优化控制效果。

强化学习可以实现学习复杂的机器人动作的方法,只需要对机器人的动作进行奖励或者惩罚[7-9],这样就让智能体重要信息时选择能够获得最大奖励的策略。而采集智能体与其环境交互的图像,这图像中具有丰富的信息,基于这个思想文献[10]开发了基于DQN算法的游戏智能控制器进行游戏运动控制。DQN使用了深度卷积神经网络(CNN)来逼近q值函数,它将原始像素即时信息直接映射到动作,不需要预先的图像处理提取特征信息。唯一的一件事就是让算法通过一遍又一遍地玩游戏来改善策略。实验结果表明智能控制器学会了玩49款不同的雅达利2600游戏并达到了人类玩家的控制水平[11-12]。

基于DQN算法在雅达利2600游戏上取得的成功,文献[13-14]使用DQN算法和深度卷积神经网络开发了一个三轴机械臂的智能控制器。将关节角度和摄像机图像直接映射到关节力矩,是机器人的配置唯一必要的先验知识。实验结果表明智能控制器确实是通过学习完成了机械臂的控制,不过由于DQN算法输出值是离散值这一局限性,智能控制器控制机械臂到达目标的成功率只有51%左右。

文献[15]基于双旋转关节机械臂的行为数据结合强化学习算法开发了机械臂的控制器,但存在数据点位有限和需要为机械臂模型配置大量先验知识的缺陷,无法一个控制器训练后控制不同结构的机械臂。而视觉传感器采集到的图像中丰富的信息在与强化学习算法相结合,让智能控制器自主的从图像中学习信息,通过奖励和惩罚来优化控制策略,这就可以在不配置任何机械臂结构模型先验知识的情况下,用智能控制器分别进行不同结构机械臂训练后进行机械臂的控制。

本文采用深度确定性策略梯度算法(DDPG)[16]结合卷积神经网络设计了算法中的演员-评论家网络,智能控制器在分别对不同结构的机械臂进行训练之后,虽然还是同样的演员-评论家网络,但是由于网络参数已经不同,因此能够控制不同结构的机械臂。最后再结合力矩电机特性[17]和机械臂的物理特性设计了一个2D模拟器进行仿真实验,在进行仿真实验结果的数据来分析此智能控制器的实际控制效果。

1 两自由度机械臂模型

对于两自由度机械臂模型可具体分为三种两自由度械臂模型如图1所示,由于两自由度机械臂通常由旋转副或者滑动副构成,由此两自由度机械臂模型共有三种,一种是两个旋转副构成,如图1左所示,由两个旋转关节控制机械臂运动,将这种机械臂模型记做rr类机械臂。第二种则是一个旋转副和一个滑动副构成,如图1中所示,由一个滑块和一个旋转关节控制机械臂运动,将这种机械臂模型记做xr类机械臂。第三种是由两个滑动副构成,如图1右所示,由两个滑块控制机械臂运动,将这种机械臂模型记做xy类机械臂。

图1 三种两自由度机械臂模型及目标

智能控制器得到机械臂与所处的环境交互的图像,运算后,向机械臂输出对应旋转关节或者滑块进给的力矩。

2 智能控制器设计

为了实现机械臂的自主控制,设计了一种基于视觉控制的智能控制器。智能控制器通过一步一步地学习,最终学会控制机械臂运动致使机械臂末端从初始位置控制到目标位置。在其中的每一步中,智能控制器通过视觉传感器采集环境的图像并在线学习得到下一步的控制量。

如图2所示,该智能控制器包括视觉传感器,图像特征处理器,控制执行器,学习运算器。

图2 智能控制器结构

2.1 视觉传感器

视觉传感器将当前环境实际信息以彩色图像的方式采集起来,图像矩阵I为RGB模式的图像三维矩阵。图像矩阵包含有机械臂的当前状态与目标状态还有环境信息。

2.2 图像特征处理器

图像特征处理器将接收到的图像矩阵I进行灰度化与阈值化处理后,再进行调整尺寸与变形后便向强化学习算法核心输出状态矩阵st。图3分别详细描述了rr类机械臂,xr类机械臂和xy类机械臂由视觉传感器采集图像矩阵I输入到图像特征处理器处理成状态矩阵st的过程。

图3 状态矩阵

图4分别详细描述了rr类机械臂,xr类机械臂和xy类机械臂由视觉传感器采集图像输入到图像特征处理器处理得到奖励值rt的过程,图像特征处理器将接收到的图像矩阵I进行颜色滤波函数留下机械臂末端的绿圆与目标蓝圆,再通过HoughCircles函数,得到绿圆中心坐标x1,y1,蓝圆中心坐标x2,y2。

图4 奖励值计算的前处理

奖励值rt的表达式为:

(1)

从式(1)可以很明显的知道,机械臂末端位置与目标位置间的距离反应了奖励值的大小。

2.3 控制执行器

强化学习算法运算器根据图像特征处理器产生的状态矩阵st和奖励值rt产生控制量at(a1,a2)。控制执行器通过控制量at来计算控制机械臂旋转关节或滑块需要的进给增量,再将旋转角度增量直接映射到关节力矩Mt(m1,m2)。

2.4 学习运算器

学习运算器将当前的图像特征传感器传过来的状态矩阵和奖励值进行运算后,生成控制量,经过控制执行器输入到机械臂中致使环境发生变化。

根据式(1)可知,在学习中的原则是如果学习过程恶化,则机械臂末端位置于目标位置间距离增大,通过减小奖励值,进行惩罚。如果学习过程改善,则机械臂末端位置与目标位置间距离减小,通过增大奖励值,进行奖励。

3 强化学习模型

强化学习模型是学习运算器的核心算法模型,该模型由卷积神经网络和深度确定性策略梯度算法设计而成。深度确定性梯度算法(Deep Deterministic Policy Gradient)是基于演员-评论家结构(Actor-Critic)。其中演员(Actor)是一个相对独立的神经网络模型,任务就是学动作。评论家(Critic)也是一个独立的神经网络模型,演员(Actor)和评论家(Critic)的网络结构则是需要设计成能够处理图像矩阵的卷积神经网络。评论家(Critic)它负责评估演员(Actor)的表现,并指导演员(Actor)下一阶段的动作。

3.1 深度确定性梯度算法原理

深度确定性梯度算法[16]是一种使用Actor-Critic结构,它包括更新策略参数的演员网络和评价演员表现的评论家网络函数。DDPG结合了之前获得成功的DQN结构, 提高了Actor-Critic结构的稳定性和收敛性。深度确定性策略梯度算法的确定性策略梯度更新公式如下:

(2)

深度确定性梯度算法结构中有一个数据库用于学习之前的经历,算法采用离线学习法, 它不仅能学习当前经历着的, 还能学习过去经历过的, 甚至是学习别人的经历。所以每次算法更新的时候, 我们都从数据库中随机批量抽样N个经历进行学习。随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率。

深度确定性梯度算法结构(图5)中演员(Actor)和评论家(Critic)分别有两个结构相同但参数不同的神经网络,分别是evalNN和targetNN。其中evalNN的神经网络具备最新的参数, 而targetNN的神经网络的参数则是在一定的训练次数之后再由evalNN的神经网络参数软更新而来。演员(Actor)的神经网络为:A-evalNN和A-targetNN。评论家(Critic)的神经网络为:C-evalNN和C-targetNN。

图5 深度确定性策略梯度算法结构图

如图5所示,深度确定性策略梯度算法结构得到状态矩阵st,这个状态矩阵st输入A-evalNN网络后输出是控制量at,经过控制执行器后导致环境变化,经过视觉传感器和图像特征处理器后得到状态矩阵st+1和奖励值rt,再将(st,at,rt,st+1)作为一组数据存入数据库中,然后将状态矩阵st+1输入到A-evalNN网络,A-evalNN网络输出是控制量at,...,如此循环往复将一组组数据填入数据库。

当记忆库的数据到达一定的数量时,则随机批量抽取数据库中的数据进行学习更新evalNN神经网络,而targetNN的神经网络的参数则是在一定的训练次数之后再由evalNN的神经网络参数软更新而来。

3.2 演员(Actor)和评论家(Critic)网络设计

如图6演员(Actor)神经网络设计:输入状态矩阵st经过卷积、激活函数和池化以后,再将三维矩阵变形成二维矩阵,再经过隐藏层和激活函数后,输出控制量at。如图6所示,经过actor网络运算后能得到一个2×1的值,而这就对应于机械臂的控制量at。

图6 Actor网络结构

如图7评论家(Critic)神经网络设计:输入状态矩阵st经过卷积、激活函数和池化以后,将三维矩阵变形成二维矩阵,再经过全连接层和激活函数后,输出一个300×1的矩阵,输入控制量at经过全连接层和激活函数后,输出一个300×1的矩阵,将两个矩阵做加法运算后经过激活函数后,再经过一个全连接层和激活函数输出1×1的值。

图7 Critic网络结构

4 仿真分析

根据图2结构图进行搭建的三种两自由度机械臂智能控制器,实验中机械臂运动规则如下:

一步:将机械臂得到一次控制执行器的关节力矩发生动作记作一步。

一回合:如果机械臂末端在200步内到达目标位置,则将这个过程记作一回合。如果机械臂末端在200步内没有到达目标位置,则将这200步记作一回合。

在实验当中,图像特征处理器将接收到的图像矩阵I进行颜色滤波函数留下机械臂末端的绿圆与目标蓝圆,再通过HoughCircles函数,得到绿圆圆心x1,y1,蓝圆圆心x2,y2。

其中,机械臂末端与目标位置距离值D的表达式为:

(3)

当D< 20(像素)时,则判定机械臂末端到达目标位置。

每一回合开始,目标随机出现在机械臂工作范围内任一位置,机械臂如果能在一回合内机械臂末端能够到达目标位置则记作回合成功。反之,则记作回合失败。

将该智能控制器分别就三种两自由度机械臂模型进行训练,根据训练途中产生的奖励值、机械臂末端与目标位置的距离值和测试中平均每回合的结束步数、每百回合成功率数据来判断该智能控制器对于三种两自由度机械臂的控制效果。值得注意的是,该智能控制器的设计之初的所有配置与神经网络未训练前的参数值都是相同的,将三个具有相同配置和参数值得智能控制器分别进行三种两自由度机械臂模型的训练,其中将rr机械臂模型对应的智能控制器称为rr智能控制器,其中将xr机械臂模型对应的智能控制器称为xr智能控制器,其中将xy机械臂模型对应的智能控制器称为xy智能控制器。

三种两自由度机械臂模型训练实验中奖励值与回合变化如图8所示,根据奖励值式(1)和训练过程中奖励值在训练中随着回合数的增多而增高,这表明rr、xr、xy智能控制器在进行有效的学习后,学习到机械臂的控制策略致使奖励值提高,而奖励值最终的趋势是在0上下小幅波动,这表明控制器学习到近乎饱和。

图8 训练过程中-奖励值与回合数

图9显示了机械臂末端与目标位置距离值(式3)在训练过程中随着训练的回合数越多,距离值越小,这表明三个智能控制器学习到了如何在一回合内接近目标。在训练14 000回合后三个智能控制器控制的机械臂末端与目标位置的每百回合距离值基本在D<20(像素)的位置,这说明智能控制器在训练14 000回合后达到了对机械臂的有效控制。而这其中xy智能控制器表现最为优秀,在训练14 000回合后的所有回合都是控制机械臂末端到达目标位置20个像素范围内。

图9 训练过程中-距离值与回合数

将三个智能控制器训练了20 000个回合后,再分别将三个智能控制器在同一环境下进行测试10 000回合(测试与训练规则相同,但是不更新网络参数进行学习)。

表1是在三个智能控制器测试10 000个回合过程中的平均步数,由前面所述,一回合中的最大步数是200步。由此可得,完成一个回合的运动步数越少,表明控制器的控制性能越好,由此可见,智能控制器对xy型机械臂控制性能最好。

表1 测试平均步数

图10显示了三个智能控制器测试过程中,在10 000个回合内每百回合成功率与回合数的关系,其中xy智能控制器控制成功率是完全的100%,rr智能控制器的成功率则是97%以上,xr智能控制器的成功率在94%以上。

图10 测试过程中-每百回合成功率

5 结论

本文在分析了计算机视觉技术与强化学习技术对控制技术的影响的基础上,设计了基于机器视觉的两自由度机械臂智能控制器。该智能控制器的仿真结果表明,在对不同结构的两自由度机械臂控制上具有通用性强、控制效果好的优势。尤其在对双滑动关节结构的两自由度的机械臂控制上取得了100%控制成功率,具有很高的理论价值和工程实践意义。

猜你喜欢
神经网络控制器机械
调试机械臂
神经网络抑制无线通信干扰探究
简单机械
基于神经网络的拉矫机控制模型建立
按摩机械臂
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器