一种基于神经网络的机器人碰撞检测系统及方法与流程

文档序号:22811181发布日期:2020-11-04 05:14阅读:112来源:国知局
一种基于神经网络的机器人碰撞检测系统及方法与流程
本发明涉及定位方法
技术领域
,尤其涉及一种基于神经网络的机器人碰撞检测系统及方法。
背景技术
:随着科技的发展,机器人的应用深入到人类社会的方方面面。工业机器人可以代替工人高效精确地进行重复性体力劳动。相比机器人,工人具有更灵活的优势。因此,工人与机器人协同工作可以大大提高工作效率。协作机器人应当在非规则的、动态变化的环境工况中,面对不可预知的可能发生的碰撞保证工人及机器人自身的安全。人机协作式机器人产业发展必须突破的一个重要课题。在生产流程中,人机协作可以让机器人更好地和工人配合,适应更广泛的工作挑战。要想更深入地介入到人类生活中,人机协作水平的高低更是将成为衡量机器人优劣的重要指标。与协作机器人不同,传统工业机器人主要针对汽车等高端制造业的行业应用,往往体型巨大、安装编程周期长且价格昂贵。这些工业机器人在进入电子行业等生产周期短、以数月为单位更新换代产品的领域时,受体积限制,安全性限制及性价比等因素的影响,应用并不顺利。另一方面,这些大家伙通常需要关在工作笼子里,与人类隔绝,一旦安全门打开,机器便停止工作。这样的安全保障方式是非常低效的。在生产制造中,有许多工序在人与机器合作的情况下是最高效的,例如,机器人负责将重物搬到指定位置后,人工进行其他机器难以完成或者自动化成本高昂的工序,这就要求机器人与人共用一个工作空间,这也是传统工业机器人难以实现的。因此,以保护人类安全,实现人机共事为设计初衷的协作机器人应运而生。协作机器人重量轻,适应性强,成本低。一般制造业及中小型公司(smes)非常需要这种技术设备。以中国为例,我国企业版图中共拥有超过5000万家企业,其中中小企业就占了99%,而低成本自动化向来都是中小企业梦寐以求的生产模式。协作机器人与传统工业机器人的对比,参见表1。表1:协作机器人传统工业机器人购入成本10万-15万15万-几十万运营成本低三倍运营成本移动性易移动一经安装很难移动易用性简单示教,无需专业培训工程师长时间安装调试安全性安全,人机公用工作空间需围栏隔离据巴克莱银行的生产资料分析师估计,到2025年,全球协作机器人的市场规模将增至115亿美元。这将大致等同于目前整个工业机器人市场的规模。各大机器人生产企业看准这一市场,继universalrobots之后,kuka,abb,fanuc,yaskawa等大企业沿用其在工业机器人领域的优势,相继发布协作机器人。在人机协作中,碰撞事件可以分为7个环节——碰撞前,碰撞检测,碰撞隔离,碰撞辨识,碰撞分类,碰撞反馈,碰撞后策略。由于机器人工作环境的复杂性及工人运动的不确定性,想要在机器人发生碰撞之前规划一条保证避免碰撞的路径几乎是不可能的。因此碰撞检测就是碰撞事件中最基本的最重要的环节。只有精确的,可靠的机器人碰撞检测才能保证碰撞隔离,碰撞辨识,碰撞分类,碰撞反馈,碰撞后策略的有效进行。碰撞检测是协作机器人非常重要的功能。如何检测人与机器人间,机器人与机器人间的碰撞是人机协作中的一个重要问题。目前,现有的碰撞检测方法主要存在的缺陷如下:(1)基于关节电机电流或力矩阶跃尖峰来判断碰撞的方案简单,容易实现,但是非常容易造成误判断。在关节电机加减速过程中,关节电机电流或者力矩同样会出现阶跃,非常容易造成系统误判断为机器人发生了碰撞。(2)基于机器人逆动力学的方案主要缺陷有两方面:a.该方案对机器人动力学参数(关节位置、关节速度、关节加速度、惯量、连杆质量、摩擦力等)非常敏感,而这些参数很多是时变的且不容易获得的。这为准确计算关节力矩造成了困难。b.该方案的计算量很大。c.在实际力矩的测量中需要增加力传感器等额外的硬件设备(虽然有的方案可以通过算法观测力矩,但是观测的力矩与实际的力矩存在较大的误差,观测的精度远远不如传感器实测)。(3)基于皮肤传感器(压力传感器)的方案能很准确的检测出碰撞,但是该方案增加了机器人系统的复杂度,降低了机器人的灵活性,并且大大增加了系统的成本,实际应用中可推广性差。(4)基于视觉传感器的方案主要存在的缺陷包括:a.视觉传感器存在盲区。b.目前工业机器人的精度都非常高(重复定位精度通常在10-2mm量级),根据视觉传感器检测是否发生了物理接触的方案的精度可能完全不能满足检测碰撞的要求。c.视觉传感器的数据量巨大,处理时间较长,难以满足碰撞检测实时性的要求。(5)基于机器人系统能量或者广义动量的方案与基于机器人逆动力学的方案具有与基于机器人逆动力学的方案同样的缺陷。技术实现要素:针对现有技术中存在的问题,本发明主要提出了一种基于神经网络的机器人碰撞检测系统及方法,不需要对机器人增加额外的硬件设备,不需要力传感器、皮肤传感器、速度传感器、电流传感器信号,不需要知晓机器人动力学参数。该方案计算简单、高效、准确、实时性高,通用性好,可以应对变负载工况。为达到上述目的,本发明一方面提供一种基于神经网络的机器人碰撞检测系统,包括多个与关节电机一一对应的碰撞检测模块,每个碰撞检测模块包括数据采集单元、数据预处理单元、预测单元、判断单元;所述数据采集单元采集并存储对应关节电机的实际位置;所述数据预处理单元将关节电机的指令位置、指令速度、实际位置进行归一化、组合处理;所述预测单元基于预处理单元得到的数据作为神经网络的输入特征数据来预测当前时刻的关节电机位置;所述判断单元比较当前时刻的所述关节电机实际位置与预测关节电机位置的偏差,如果偏差超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。进一步地,定义第i个碰撞检测模块的碰撞检测函数ξi(t)为:机器人每个关节电机伺服系统都有一个与之对应的碰撞检测模块;ei(t)表示第i个碰撞检测模块获得的所述关节电机实际位置与预测电机位置的偏差,t为机器人系统采样时刻,表示第i个碰撞检测模块的偏差负项阈值上限,表示第i个碰撞检测模块的偏差阈值上限;碰撞检测函数cd(t)如下:cd(t)=ξ1(t)||ξ2(t)||...ξi(t)||...||ξn(t)双竖线表示或,当cd(t)为1时,判定机器人发生了碰撞,n表示关节电机数量。进一步地,所述预测单元内置神经网络,所述神经网络输入特征数据向量xn(t)为:其中,为指令位置向量,为指令速度向量以及为实际位置向量,t为机器人系统采样时刻,k为实际位置值滞后指令位置值的机器人系统指令周期数,是关节n在t时刻的指令位置值,为关节n在t时刻指令速度值,θn(t-p)为关节n在t-p时刻的实际位置值;p,s为常参数,神经网络训练过程中调整p,s,使得神经网络的预测精度提高。进一步地,所述神经网络为bp神经网络、rbf神经网络、循环神经网络或深度神经网络。进一步地,k值确定包括:tmax为机器人实际运行的一段非周期长轨迹所经历的机器人系统指令周期数;jmax为不大于50的正整数,j为正整数,取值范围为1~jmax。进一步地,还包括上层控制器,生成每个指令周期的指令并发送给关节电机伺服系统;关节电机伺服系统驱动关节电机运转;上层控制器将所述数据采集单元获得的关节电机的实际位置及控制器自己生成的指令位置、指令速度发送给数据预处理单元;数据预处理单元将数据进行归一化、组合预处理操作;处理后的数据作为输入特征数据发送给预测单元。本发明另一方面提供一种基于神经网络的机器人碰撞检测方法,包括:检测每个关节电机的实际位置;获取关节电机的指令位置和指令速度;基于关节电机的指令位置、指令速度、实际位置预测当前时刻的关节电机位置;比较当前时刻的所述关节电机实际位置与预测关节电机位置的偏差,如果偏差超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。进一步地,定义第i个碰撞检测模块的碰撞检测函数ξi(t)为:机器人每个关节电机伺服系统都有一个与之对应的碰撞检测模块;ei(t)表示第i个碰撞检测模块获得的所述关节电机实际位置与预测电机位置的偏差,t为机器人系统采样时刻,表示第i个碰撞检测模块的偏差负项阈值上限,表示第i个碰撞检测模块的偏差阈值上限;碰撞检测函数cd(t)如下:cd(t)=ξ1(t)||ξ2(t)||...ξi(t)||...||ξn(t)双竖线表示或,当cd(t)为1时,判定机器人发生了碰撞,n表示关节电机数量。进一步地,所述预测单元内置神经网络,所述神经网络输入特征数据向量xn(t)为:其中,为指令位置向量,为指令速度向量以及为实际位置向量,t为机器人系统采样时刻,k为实际位置值滞后指令位置值的机器人系统指令周期数,是关节n在t时刻的指令位置值,为关节n在t时刻指令速度值,θn(t-p)为关节n在t-p时刻的实际位置值p,s为常参数,神经网络训练过程中调整p,s,使得神经网络的预测精度提高。进一步地,所述预测单元内置神经网络,所述神经网络为bp神经网络、rbf神经网络、循环神经网络或深度神经网络。进一步地,所述神经网络模型的训练包括:控制机器人在正常工况下做非周期重复的无规律的长轨迹运动;运动过程中满足各个关节电机能够达到最大位置和最大速度;采集运动过程中机器人系统各个关节在各个时刻的实际位置,并存储各个时刻的指令位置、指令速度和实际位置。对所得到的指令位置、指令速度和实际位置数据进行归一化、组合处理;将处理后的数据作为神经网络的训练样本,以预处理后的指令位置、指令速度、实际位置的组合数据作为神经网络的输入特征数据,以当前时刻的实际位置作为神经网络的输出标签进行有监督的神经网络训练。本发明的上述技术方案具有如下有益的技术效果:(1)本发明不需要力(力矩)传感器、速度传感器、电流传感器信息或其他额外新增的硬件设备,仅仅需要机器人自有的位置传感器即可实现碰撞检测。同时,本方案也不需要知晓机器人的动力学参数。(2)本发明所提的碰撞检测方法具有优良的泛化能力,能很好的应对机器人变负载工况,在机器人加减速过程中也不会造成误判断。(3)本发明的检测方法具有碰撞检测精度高,算法简洁,计算简单,通用性好的优点,能够适用于目前市面上的机器人控制器。(4)本发明不仅仅适用于专用的协作机器人,也可以推广到目前工业中已经大量存在的普通工业机器人中,并且对硬件不需要做改动,仅仅需要对机器人算法进行改动。(5)本发明提供了高精度准确可靠的碰撞检测方案,为人机协作中后续的碰撞隔离、碰撞辨识、碰撞分类、碰撞反馈、碰撞后策略的进行打下了坚实基础。附图说明图1是机器人系统概述框图;图2机器人各个伺服碰撞检测方案示意图;图3基于神经网络的机器人碰撞检测方案框图;图4为碰撞检测方法流程图;图5为机器人碰撞检测实验结果示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。本发明提出了一种基于神经网络的机器人碰撞检测方案。具体为利用神经网络根据机器人指令信息及反馈的状态信息预测当前机器人伺服电机位置并与机器人伺服电机的实际位置做差比较,当偏差超过一定阈值时,判定机器人发生了碰撞。虽然机器人的种类多种多样,但是它们的基本系统可以归纳为如图1所示。对于机器人的伺服驱动系统,它从上层控制器获得一系列的指令值(位置指令θ*、速度指令ω*或电流指令i*)。由于机器人的伺服驱动系统包含“控制系统响应”、“机械系统响应”、“计算延迟”、“滤波环节”、“非线性因素”等,实际机器人输出的实际位置值θ、实际速度值ω和实际电流值i与指令值不完全一致。通常体现为实际值滞后于指令值数个指令周期并存在一定的噪声。目前,工业界中应用最广泛的是六自由度串联关节型机械臂。对于这类机器人,其伺服驱动系统中的“非线性因素”主要受电机减速器和摩擦力影响。减速器的非线性主要体现在齿轮间的机械间隙、非刚性因素、机械磨损等。摩擦力受转速、温度、湿度等因素的影响。机器人系统是一个非常复杂且强非线性的系统。想要写出一个准确的统一的指令值与实际值间的数学关系表达式是几乎不可能的。神经网络对于处理难以通过准确数学关系式表达的非线性问题具有优异的表现。本发明利用神经网络进行机器人的碰撞检测。如图3所示,机器人的上层控制器主要完成上层算法的执行并在每个指令周期给伺服系统发送指令。伺服系统驱动机器人运转。机器人的传感器(位置、速度、电流等)将机器人当前时刻的状态反传回伺服系统,伺服系统再将其传回上层控制器。设定机器人各个伺服驱动电机在t时刻的实际位置为θ(t)。同时,上层控制器根据机器人的指令信息及反馈的状态特征数据利用神经网络输出各个伺服电机在t时刻的预测位置为θ′(t)。因此,可以定义t时刻伺服驱动电机的实际位置与预测位置的误差为:e(t)=θ′(t)-θ(t)在正常工况下,实际位置θ(t)与预测位置θ′(t)同样存在误差。因此,需要设置一个合理的误差正阈值ep和误差负阈值en。当系统检测到误差e(t)超过正阈值或负阈值时则判定机器人发生了碰撞。机器人系统往往存在不止一个伺服驱动系统。如六自由度工业机器人存在6个不同的伺服驱动系统。这些伺服驱动系统的特性不完全一致。因此,机器人有多少个伺服驱动系统就需要设置相应个数的神经网络。如图2所示,特征数据[1]、特征数据[2]…特征数据[n]分别根据伺服系统1-n反馈的状态数据及机器人系统指令数据处理得到的特征数据,net[1]、net[2]…net[n]分别为对应伺服系统1-n的神经网络,θ1(t)、θ2(t)…θn(t)分别为对应伺服驱动电机1-n在t时刻的实际位置值,θ′1(t)、θ′2(t)…θ′n(t)分别为对应伺服驱动电机1-n在t时刻的预测位置值,e1(t)、e2(t)…en(t)分别为对应伺服驱动电机1-n在t时刻实际位置值与预测位置值的差,分别为对应伺服驱动电机1-n的负阈值与正阈值,其中机器人各个伺服驱动系统分别独立做预测,共同做碰撞检测。本发明一方面提供一种基于神经网络的机器人碰撞检测系统,包括多个与关节电机一一对应的碰撞检测模块,每个碰撞检测模块包括数据采集单元、数据预处理单元、预测单元、判断单元;所述数据采集单元采集并存储关节电机的实际位置;所述数据预处理单元将关节电机的指令位置、指令速度、实际位置进行归一化、组合等处理;所述预测单元基于预处理单元得到的数据作为神经网络的输入特征数据来预测当前时刻的关节电机位置;所述预测单元内置神经网络,所述神经网络包括但不限于bp神经网络、rbf神经网络、循环神经网络或深度神经网络。定义第i个碰撞检测模块的碰撞检测函数ξi(t)为:机器人每个关节电机伺服系统都有一个与之对应的碰撞检测模块;ei(t)表示第i个碰撞检测模块获得的所述关节电机实际位置与预测电机位置的偏差,t为机器人系统采样时刻,表示第i个碰撞检测模块的偏差负项阈值上限,表示第i个碰撞检测模块的偏差阈值上限;碰撞检测函数cd(t)如下:cd(t)=ξ1(t)||ξ2(t)||...ξi(t)||...||ξn(t)双竖线表示或,当cd(t)为1时,判定机器人发生了碰撞,n表示关节电机数量。所述判断单元计算当前时刻的所述实际位置与预测关节电机位置的偏差,如果超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。控制机器人在正常工况下做非周期重复的无规律的长轨迹运动;运动过程中满足各个关节电机能够达到最大位置和最大速度;采集运动过程中机器人系统各个关节在各个时刻的实际位置,并存储各个时刻的指令位置、指令速度和实际位置。对所得到的指令位置、指令速度和实际位置数据进行归一化、组合处理;将处理后的数据作为神经网络的训练样本,以预处理后的指令位置、指令速度、实际位置的组合数据作为神经网络的输入特征数据,以当前时刻的实际位置作为神经网络的输出标签进行有监督的神经网络训练。选择指令位置、指令速度、实际位置的组合作为神经网络的输入特征数据可以取得优异的结果。假设关节n在t时刻的输入特征数据向量为xn(t),其组合的公式如下:其中,t为机器人系统采样时刻,k为实际位置值滞后指令位置值的机器人系统指令周期数,是关节n在t时刻的指令位置值,为关节n在t时刻指令速度值,θn(t-p)为关节n在t-p时刻的实际位置值(其它参数同理类似),p,s为常参数,神经网络训练过程中调整p,s,使得神经网络的预测精度提高。可以看出输入特征数据向量xn(t)包括指令位置向量指令速度向量以及实际位置向量指令位置向量包括t-k时刻之前的3个采样周期至未来3个周期的指令位置,指令位置在机器人系统中是预先生成的,因此可以获得未来3个采样周期的指令位置。同样,指令速度向量包括t-k时刻之前的3个采样周期至未来3个周期的指令速度,指令速度在机器人系统中是预先生成的,因此可以获得未来3个采样周期的指令速度。实际位置向量采用目前所获得的实际位置的历史数据。在公式(1)中,如果t-k+3≤0,…,t-k≤0,…,t-k-3≤0,则令同样,如果t-p≤0,t-p-1≤0…t-p-s≤0则令θn(t-p)=θn(1),θn(t-p-1)=θn(1)…θn(t-p-s)=θn(1)。由于机器人每个关节伺服系统具有不同的特性,因此各个关节对应的神经网络的k,p,s参数通常是不同的。对于一个特定的关节伺服系统,可以让它先运行一段非周期的长轨迹并记录它每个机器人系统指令周期的指令位置值和实际位置值。通常来说,实际位置值滞后指令位置值的时间在数个到三十个机器人系统指令周期之间,即k的值通常在1-30之间,k为正整数。因此k值的选择可以使用如下的公式:其中,为机器人实际运行的非周期长轨迹所经历的机器人系统指令周期数;jmax为常参数,通常不大于50,可以取30。tmax>>jmax。结合图3,在一个实施例中,机器人包括上层控制器、n个伺服系统、n个关节电机,基于神经网络的机器人碰撞检测系统包括上层控制器、n个与关节电机一一对应的碰撞检测模块,每个碰撞检测模块包括数据采集单元、数据预处理单元、预测单元、判断单元;所述数据采集单元采集并存储关节电机的实际位置;机器人关节电机位置传感器实时采集电机实际位置并将其反馈传回伺服系统,伺服系统再将其传回上层控制器做处理或存储。所述数据预处理单元将关节电机的指令位置、指令速度、实际位置进行归一化、组合等处理;所述预测单元基于预处理单元得到的数据作为神经网络的输入特征数据来预测当前时刻的关节电机位置;所述预测单元内置神经网络,所述神经网络包括但不限于bp神经网络、rbf神经网络、循环神经网络或深度神经网络。所述上层控制器,生成每个指令周期的指令并发送给伺服系统;伺服系统驱动关节电机运转,进而实现机器人的运动。所述上层控制器将关节电机的指令位置、指令速度、实际位置进行归一化、组合等预处理。所述上层控制器将预处理单元得到的数据作为神经网络的输入特征数据发送给所述预测单元。判断单元比较当前时刻的所述实际位置与预测关节电机位置的偏差,如果偏差超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。本发明第二方面提供一种基于神经网络的机器人碰撞检测方法,结合图4,包括如下步骤:s1采集并存储每个关节电机的实际位置;s2将关节电机的指令位置、指令速度、实际位置进行归一化、组合等预处理;s3将预处理得到的数据作为神经网络输入特征数据来预测当前时刻的关节电机位置;定义第i个碰撞检测模块的碰撞检测函数ξi(t)为:机器人每个关节电机伺服系统都有一个与之对应的碰撞检测模块;ei(t)表示第i个碰撞检测模块获得的所述关节电机实际位置与预测电机位置的偏差,t为机器人系统采样时刻,表示第i个碰撞检测模块的偏差负项阈值,表示第i个碰撞检测模块的偏差阈值;碰撞检测函数cd(t)如下:cd(t)=ξ1(t)||ξ2(t)||...ξi(t)||...||ξn(t)双竖线表示或,当cd(t)为1时,判定机器人发生了碰撞,n表示关节电机数量。s4比较当前时刻的所述关节电机实际位置与预测关节电机位置的偏差,如果偏差超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。如图5所示,根据上述所提方案,利用bp神经网络进行的机器人碰撞检测实验。该机器人为六自由度普通工业机器人,人为在其正常运行过程中进行4次碰撞。可见,机器人能非常好的检测到所有碰撞,检测准确率100%;数十牛顿的碰撞力即可触发碰撞检测,检测精度高。综上所述,本发明涉及一种基于神经网络的机器人碰撞检测系统及方法,检测每个关节电机的实际位置;对关节电机的指令位置、指令速度、实际位置进行归一化、组合等预处理;将预处理得到的组合数据作为神经网络的输入特征数据来预测当前时刻的关节电机位置;比较当前时刻的所述关节电机实际位置与预测关节电机位置的偏差,如果偏差超过设定范围,则判断发生了碰撞;否则,判断未发生碰撞。本发明不需要力(力矩)传感器、速度传感器、电流传感器信息或其他额外新增的硬件设备,仅仅需要机器人自有的位置传感器即可实现碰撞检测。同时,本方案也不需要知晓机器人的动力学参数。本发明所提的碰撞检测方法具有优良的泛化能力,能很好的应对机器人变负载工况,在机器人加减速过程中也不会造成误判断。本发明的检测方法具有碰撞检测精度高,算法简洁,计算简单,通用性好的优点。应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1