一种基于示教学习实现双臂协同作业任务的方法与流程
本发明涉及机器人示教学习技术以及工业机器人双臂协同作业技术,具体地说,涉及一种基于示教学习实现双臂协同作业任务的方法。
背景技术:
自第一台工业机器人诞生以来,机器人相关产品被用于多个方面。目前多数在作业线上部署的工业机器人是通过位置控制编程以遵循进行作业任务的所需轨迹的。这些机器人可以很好地处理结构良好的作业线内的已知物体,实现高度精确控制位置和速度,但是无法应对任何意外的变化作业操作,需要繁琐的重新编程以适应新的作业任务。因此对机器人的运动进行智能规划极为必要。一方面,机器人将面向数量更加庞大的非专业人群,但是传统机器人要求用户具备编程技能,极大的限制机器人的大规模推广。另一方面,目前的机器人大多使用在确定性的、与人隔开的工作车间,而未来机器人将越来越多的与人体及环境发生物理交互。在交互过程中,就要相关的控制算法能保证机器人动作执行的柔顺性和安全性。
机器人示教学习技术正是针对以上两点应用需求的一个发展方向。示教学习指的是通过示教者的动作示教和动作编码回归,得到一条优化的机器人轨迹。机器人在不同的起始点按照示教的轨迹进行运行,从而具有一定的智能性及自学习能力。示教学习不要求示教者对机器人有深刻的了解,只需要根据自己的任务要求进行轨迹示教,并通过相应的方式记录示教轨迹,此过程可以快速实现,省去了传统编程方式中的机器人标定、任务位置标定等环节。但是双臂协同作业在实现过程中涉及轨迹避障和轨迹同步等问题,具有较大的挑战性。
技术实现要素:
为了克服现有技术的不足,本发明的目的在于提供一种基于示教学习实现双臂协同作业任务的方法。本发明将示教学习技术与双臂协同作业技术相结合,能够实现具有较强的通用性与智能性的机械臂设备,完成双臂的协同作业,为日后的工厂流程和协同装备演示打下基础。
本发明是通过以下技术方案来实现的:
本发明公开了一种基于示教学习实现双臂协同作业任务的方法,包括以下步骤:
步骤1:搭建用于实现运动控制与仿真的双臂协同作业动力学模型;
步骤2:搭建演示编程系统的硬件环境,获取人体的演示数据,并将人体演示数据可视化;
步骤3:根据获得的人体演示数据,采用dmps算法进行示教路径的学习和平滑,生成预测轨迹;对预测轨迹进行坐标变换,得到机器人坐标系下的示教运动轨迹,所述的示教运动轨迹包括两个机械臂末端和肘部的示教运动轨迹;
步骤4:针对得到的机械臂末端和肘部的示教运动轨迹,进行欠自由度的逆运动学处理,将求解问题转化为已知机械臂肘部和手部位置的前提下,求解机械臂的关节角以最小化机械臂轨迹和示教运动轨迹的差距,最终得到双臂运动关节空间的目标轨迹;
步骤5:根据步骤4获得的双臂运动关节空间的目标轨迹,对步骤1搭建的双臂协同作业动力学模型进行仿真和碰撞检测,修复碰撞问题,得到仿真规划后的运动轨迹;通过预设接口实现仿真环境中的双臂协同作业动力学模型和硬件环境中的双臂机器人平台之间的通讯,将仿真规划后的运动轨迹迁移到双臂机器人平台中,完成示教任务。
进一步的,步骤3中预测轨迹的生成包括以下步骤:
步骤31:建立dmps模型,所述的dmps模型由规范系统模型和传递系统模型构成,其中规范系统模型表示为:
式中,τ系统运动时间,α为系统稳定性参数,s为相位变量,初始时s设置为1,在动作结束时收敛趋近于0;
传递系统模型表示为:
τa=k(gf-y)-dv+(gf-y0)f
式中,τ为系统运动时间,y为当前位置,y0为初始位置,
步骤32:对dmps模型进行训练,学习模型参数:
将人体演示数据的初始位置设置为系统初始位置y0,将人体演示数据的结束位置设置为系统目标位置gf,将相位变量s初始化为1;
将人体演示数据代入传递系统模型,得到非线性函数的目标值ftarget;
构造训练样本为(s,ftarget)和代价函数j=∑s(ftarget-f)2,通过最小化代价函数j,即可得到训练系统参数ωi;通过系统参数得到非线性函数的估计值,再根据非线性函数的估计值生成预测轨迹。
进一步的,步骤32中,系统参数ωi的训练采用局部加权回归算法,包括以下步骤:
采用高斯核函数作为权重函数,计算对角权重矩阵,公式如下:
w(s)=diag[ω1(s),ω2(s),…,ωn(s)]
式中,w(s)为对角权重矩阵,s为相位变量,n为非线性函数的阶数,ωi(s)为为非线性函数f的第i阶权重;
将训练样本数据转换为如下形式:
式中,si1为每个数据点对应的相位变量,sij对应人体演示数据第i个点的非线性函数f的第j阶;
计算出系统参数
提取s矩阵中的第i行数据,作为人体演示数据中某一条位姿轨迹的第i个点的运动过程相位变量序列si=[1,si1,si2,…,sin],将其代入系统参数的方程中求得
式中,
遍历s矩阵中的每一行数据,得到人体演示数据中某一条位姿轨迹各个点的非线性函数估计值
进一步的,根据非线性函数的估计值解算出预测轨迹,对预测轨迹进行坐标变换,得到机器人坐标系下的运动轨迹;具体为:
根据预测得到的
对预测轨迹
式中,yr表示机器人坐标系下的运动轨迹,r表示人体演示轨迹坐标系到机器人坐标系的旋转矩阵,t表示为人体演示轨迹坐标系到机器人坐标系的平移向量。
进一步的,所述的步骤4具体为:
步骤41:将双臂关节角求解问题转化为最优化问题:
qh=argmin||qh[0:2]-qe||2
其中,qh表示由已知手部位置获得的六个自由度关节角数据,qe表示由已知肘部位置获得的三个自由度关节角数据,[0:2]表示qh的前三个关节角,即从肩膀到肘部之间的三个关节角;
步骤42:从机器人坐标系下的目标运动轨迹中提取手部位置数据,求解已知手部位置的机械臂六自由度逆运动学,得到包含六个自由度的关节角;
步骤43:从机器人坐标系下的目标运动轨迹中提取肘部位置数据,求解已知肘部位置的机械臂三自由度逆运动学,所述三自由度包括肩部两个自由度和肘部一个自由度,得到包含肘部到肩部的三个自由度的关节角;
步骤44:利用步骤42和步骤43得到的关节角,将肘部到肩部的三个自由度的关节角和六个自由度的关节角最接近的一组解作为目标解,得到双臂运动关节空间的目标轨迹。
与现有技术相比,本发明的优点和积极效果至少包括:
本发明的方法能够使得两个机械臂协同控制共同完成作业任务,双臂协同作业使得机器人在生产线上能够比单臂机器人更加灵活高效地作业,并且可以代替人类岗位独立作业。相比于单臂,双臂协同作业能够减少执行时间,提高生产效率,最大化操作空间的使用,并且可以实现需要双手协同的复杂任务。
在示教过程中,本发明利用动作捕捉系统获取示教人双臂肘部和手部的示教轨迹,并将其转化为可以复现任务的机器人程序,从而控制机器人完成任务复现,并通过坐标转换,实现机器人的离线示教,为工业机器人的示教提供了一种简单高效的方法,降低了工业机器人的使用门槛;机器人演示编程利用任务演示代替了传统的编程过程,从而大大提高了编程效率,简化了机器人重编程任务,并且缩短了机器人重编程到投入生产使用的时间,对于机器人的推广应用具有重要意义
附图说明
图1为本发明一种基于示教学习实现双臂协同作业任务的方法的流程示意图;
图2为本发明一种基于示教学习实现双臂协同作业任务的方法的dmps算法的流程示意图;
图3为本发明一种基于示教学习实现双臂协同作业任务的方法的硬件系统示意图;
图4为本实施例的示教轨迹曲线;
图5为本实施例的精度曲线。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具的实施例对本发明的技术方案进行详细说明。需要指出的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于示教学习实现双臂协同作业任务的方法,主要包括以下步骤:
步骤1:完成双臂协同作业动力学模型的搭建,实现运动控制与仿真。
步骤2:完成演示编程系统的硬件环境搭建,并录制人完成作业任务的过程,完成示教任务的演示。
步骤3:利用dmps算法完成示教路径的学习和平滑。
步骤4:针对得到的机械臂末端和肘部的示教轨迹进行欠自由度的逆运动学解算处理,得到双臂运动的关节空间目标轨迹。
步骤5:机器人根据关节空间的目标轨迹,完成示教任务。
本发明的具体操作流程可以描述为:完成双臂协同动力学模型的搭建和硬件环境搭建后,于现实环境中人手演示作业任务,用kinect深度相机或者optitrack光学动作捕捉系统获取示教过程中人体双臂各关节的运动轨迹,提取肘部和手部的位置和姿态信息进行坐标系转换统一到机器人坐标系下,然后使用dmps算法进行处理,以得到光滑的示教路径。针对机械臂末端和肘部的示教轨迹进行欠自由度的逆运动学解算处理,使得到的关节空间目标轨迹。在rviz中进行仿真,进行碰撞检测和轨迹可视化并确认无误,最后向真实机械臂发送控制指令,控制两个ur5机械臂以和人相似的动作完成协同作业任务。
需要说明的是,在不脱离本发明原理和精神的前提下,在本发明的基础上不经过创造性劳动所获得的其他方法流程或者操作方式,也包括在本发明的保护范围之内。
在本发明的一项具体实施中,在步骤1中,所述的双臂协同作业动力学模型由两个ur5机械臂和两个robotiq2f-140夹爪构成,具体模型文件格式为urdf,并在ubuntu16.04中基于rosmoveit!模块进行建模、仿真和运动控制。
在步骤2中,所述的演示编程系统的硬件环境包括视觉传感器、可视化平台和双臂机器人平台;
所述的视觉传感器与可视化平台连接,通过视觉传感器采集示教者双臂手部和肘部的演示数据,所述的演示数据包含四条位姿轨迹数据;将四条位姿轨迹通过可视化平台显示,通过可视化进行数据的同步对准和调试;
具体的,如图3所示,所述的演示编程系统的硬件环境包括kinect深度相机或optitrack光学动作捕捉系统、一台ros动力学特性的ubuntu16.04笔记本电脑、两台ur5机械臂和两个robotiq2f-140夹爪构成的双臂机器人平台。所述的双臂机器人平台与双臂协同作业动力学模型中的双臂结构一致。
所述的kinect深度相机或optitrack光学动作捕捉系统作为视觉传感器采集视觉数据,具体为示教者双臂手部和肘部的四条位姿轨迹数据,其中每一条数据记为y,y为k*d为矩阵,其中k为整条轨迹数据点的个数,d表示数据维数,d=。
所述的笔记本电脑与所述的kinect摄像机或optitrack光学动作捕捉系统连接,以完成双臂动作的捕捉、数据可视化和处理。
步骤2所述的可视化平台为双臂演示数据的可视化平台,具体为采用rviz搭建的kinect骨架可视化系统或optitrack光学动作捕捉系统的可视化软件平台,通过可视化进行数据的同步对准和调试。
在本发明的一项具体实施中,,步骤3利用dmps算法完成示教路径的学习和平滑,是指利用dmps模型对人体演示数据进行学习,生成预测轨迹。对预测轨迹进行坐标变换,得到机器人坐标系下的示教运动轨迹,所述的示教运动轨迹包括两个机械臂末端和肘部的示教运动轨迹。
具体实现步骤如下:
步骤31:采用dmps算法进行示教轨迹的学习;
进一步地,在步骤31中,所述的dmps算法是一种运动学习方法,可以通过学习目标轨迹的运动信息使新生成的轨迹具有原轨迹的运动趋势。该方法以弹簧-质量-阻尼模型为基础,由规范系统和传递系统组成。
如图2所示,所述的规范系统是关于相位变量s的微分方程,形式如下:
式中τ为时间参数,也即系统运动时间,α是一个预先设置的参数,用于保证系统的稳定,并且初始时s设置为1,在动作结束时收敛趋近于0。
所述的传递系统可以看作一个加入非线性扰动影响的弹性系统,以一维离散运动为例,一阶线性弹性系统加入扰动的形式如下:
τa=k(gf-y)-dv+(gf-y0)f
式中τ为时间参数,y为当前位置,y0为初始位置,
式中ψi(s)为高斯基本函数,具体形式为ψi(s)=exp(-ρi(s-μi)2,μi为高斯基本函数的均值,ρi为高斯基本函数的方差的倒数;系统参数ωi为训练参数,n为非线性函数的阶数。
建立上述模型后,采用以下步骤进行模型参数的学习:
步骤321:将四条示教轨迹的初始位置设置为系统初始位置,即y→y0;
步骤322:设置四条示教轨迹的初始位置设置为系统目标位置gf;
步骤323:相位变量s重置为1;
步骤324:利用动作完成演示后记录的动作轨迹数据y(t),速度数据v(t),加速度数据a(t)以及运动时间τ学习模型参数,具体步骤如下:
将人体演示数据代入传递系统模型,得到非线性函数的目标值ftarget;
由于f是一个关于相位变量s的函数,因此训练样本构造为(s,ftarget),此外代价函数构造如下:
j=∑s(ftarget-f)2
通过最小化代价函数j,即可得到训练系统参数ωi;通过系统参数得到非线性函数的估计值,再根据非线性函数的估计值生成预测轨迹。
所述的系统参数ωi的训练采用局部加权回归算法,该算法的具体步骤如下:
选择合适的权重函数,如高斯核函数,计算对角权重矩阵,公式如下:
w(s)=diag[ω1(s),ω2(s),…,ωn(s)]
式中s为相位变量,n为非线性函数f的阶数,ωi(s)为非线性函数f的第i阶权重;将训练样本数据转换为如下形式:
式中,sij为人体演示数据第i个点对应的非线性函数f的第j阶;
计算出系统参数
提取s矩阵中的第i行数据,作为人体演示数据中某一条位姿轨迹的第i个点的运动过程相位变量序列si=[1,si1,si2,…,sin],将其代入系统参数的方程中求得
式中,
遍历s矩阵中的每一行数据,得到人体演示数据中某一条位姿轨迹各个点的非线性函数估计值
步骤32:根据预测得到的
步骤33:对预测轨迹
式中,yr表示机器人坐标系下的运动轨迹,r表示人体演示轨迹坐标系到机器人坐标系的旋转矩阵,t表示为人体演示轨迹坐标系到机器人坐标系的平移向量。
在本发明的一项具体实施中,根据上述步骤得到的双臂肘部和手部的目标轨迹,步骤4中通过逆运动学解算得到双臂关节角。本方案采用的ur5机械臂为六自由度协作式机器人,轻型而高度灵活,可自动化执行危险的重复性任务。由于ur5机械臂为六自由度,已知肘部和手部位置求解六个关节角可能存在奇异解,因此将此逆运动学问题转换为一个最优化问题,即在已知ur5机械臂肘部和手部位置的前提下,求解机械臂的关节角以最小化机械臂轨迹和目标轨迹的差距,具体步骤如下:
步骤41:求解已知手部位置的ur5机械臂六自由度逆运动学,解qh包含六个自由度的关节角;
步骤42:求解已知肘部位置的ur5机械臂三自由度逆运动学(其中三个自由度包括肩部两个自由度和肘部一个自由度),解qe包含肘部到肩部的三个自由度的关节角;
步骤43:利用以上两个步骤得到的qh和qe,求解qh中肘部到肩部的三个自由度的关节角和qe最接近的一组解,即为目标解,最优化问题定义如下:
qh=argmin||qh[0:2]-qe||2
在步骤5中,根据逆运动学解算得到的双臂关节空间的轨迹,在rviz中进行仿真,进行碰撞检测和规划,确认可行并且安全后,进一步利用ur5官方接口进行笔记本电脑和ur5机械臂的通讯,将轨迹迁移到实物执行。
在本发明的一项具体实施中,步骤5所述的碰撞检测包括以下步骤:
步骤51:采用rosmoveit!模块中planningscene插件的checkselfcollision接口在rviz仿真环境中进行碰撞检测;
步骤52:如果检测到碰撞,则取轨迹中距离碰撞点最近的两个轨迹点进行重新规划,直到不再检测到任何碰撞,修复碰撞问题,得到仿真规划后的运动轨迹;通过预设接口实现仿真环境中的双臂协同作业动力学模型和硬件环境中的双臂机器人平台之间的通讯,将仿真规划后的运动轨迹迁移到双臂机器人平台中,完成示教任务。
实验所采用的仿真软件为rviz,基于ros操作系统,在步骤1所述的双臂带夹爪模型上进行测试,得到示教轨迹和学习得到的轨迹如图4所示,精度数据如图5所示,图4展示了双臂肘部和手部的示教轨迹(实线)和dmp学习得到的轨迹(虚线),可见dmp得到的轨迹和示教轨迹的差距较小,由图5可知,所有轨迹的学习误差都在0.1%以内,精度较高。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除