机器人末端控制方法、装置、设备及存储介质与流程

文档序号:31530037发布日期:2022-09-14 19:08阅读:151来源:国知局
机器人末端控制方法、装置、设备及存储介质与流程

1.本技术涉及机器人示教技术领域,具体而言,涉及一种机器人末端控制方法、装置、设备及存储介质。


背景技术:

2.机器人末端工作空间(笛卡尔空间)拖拽或者碰撞,大部分是基于末端六维力传感器实现。对于工作空间拖拽,采用的是导纳控制方法,力传感器获取外力,利用导纳控制机器人末端的速度或位置。导纳控制无需机器人的动力学模型,避免了非线性因素的影响,便于在一般商业化的机器人上实现,但导纳控制精度仍依赖于底层位置的控制精度,不适用非导纳特性的环境。同时需要借助末端力传感器,传感器的成本比较高,相对于机器人,传感器也更容易损坏。


技术实现要素:

3.有鉴于此,本技术实施例的目的在于提供一种机器人末端控制方法、装置、设备及存储介质,通过将关节空间的关节采集位置、关节采集电流,经机器人关节转矩动力学模型计算、映射转换至末端工作空间的参数向量,进而基于参数向量实现机器人末端拖拽或者碰撞的控制,无需额外增加末端力传感器,降低了用户的使用成本,从而解决了上述技术问题。
4.第一方面,本技术实施例提供一种机器人末端控制方法,所述方法包括:对机器人的关节采集电流以及关节采集位置进行运算,获得末端受力向量;对所述末端受力向量进行映射转换,获得末端位置向量;根据所述末端受力向量以及末端位置向量对所述机器人末端的工作空间进行控制。
5.在上述实现过程中,通过将关节空间机器人各个关节的关节采集位置、关节采集电流,经运算、映射转换至末端工作空间的末端受力向量以及末端位置向量等参数向量,进而基于参数向量实现机器人末端拖拽或者碰撞的控制,无需额外增加末端力传感器,降低了用户的使用成本,可有效提升拖拽示教速度以及对机器人的保护作用。
6.可选地,所述对机器人的关节采集电流以及关节采集位置进行运算,获得末端受力向量,包括:基于机器人关节转矩动力学模型,对所述关节采集电流以及关节采集位置进行运算,获得关节外力矩;对所述关节外力矩进行雅克比矩阵转置,获得末端受力向量。
7.在上述实现过程中,通过将采集的关节位置和关节电流经关节转矩动力学模型等动力学方程求解运算得到关节力矩,并补偿至工作空间对应关节,实现拖拽示教或碰撞检测,提高了控制效率和控制精确度。
8.可选地,所述根据所述末端受力向量以及末端位置向量对所述机器人末端的工作空间进行控制,包括:根据所述末端受力向量,对所述机器人末端的工作空间进行运动碰撞控制;根据所述末端位置向量,对所述机器人末端的工作空间进行拖拽控制。
9.在上述实现过程中,通过基于机器人的关节电流、关节位置转化为末端受力向量、
末端位置向量进行控制,不依赖于力传感器,实现机器人末端的工作空间拖拽和碰撞检测,提升了人机交互体验,增加了机器人使用的安全性。
10.可选地,所述根据所述末端受力向量,对所述机器人末端的工作空间进行运动碰撞控制,包括:将所述末端受力向量的长度与预设碰撞力阈值进行比较;若所述末端受力向量的长度大于所述预设碰撞力阈值,则控制机器人停止运动;若所述末端受力向量的长度小于所述预设碰撞力阈值,则控制所述机器人继续运动。
11.在上述实现过程中,通过在运动模式下将机器人末端受力向量与预设碰撞力阈值进行比对,当超过阈值,机器人会停止运动,提高了机器人的安全检测性能,增加了机器人使用的安全性。
12.可选地,所述根据所述末端位置向量,对所述机器人末端的工作空间进行拖拽控制,包括:对所述末端位置向量进行运动学逆解,获得关节驱动指令;基于所述关节驱动指令控制所述机器人末端进行拖拽运动。
13.在上述实现过程中,通过在拖拽模式下将机器人末端位置向量转化为关节驱动指令,进而驱动机器人末端顺应外力进行运动,提升了机器人的人机交互体验。
14.可选地,所述基于所述关节驱动指令控制所述机器人末端进行拖拽运动之前,所述方法还包括:通过开关向量控制所述机器人末端是否允许在预设拖拽方向运动。
15.在上述实现过程中,通过开关向量控制机器人末端允许拖拽的方向或角度,进一步提升了人机交互体验。
16.可选地,所述开关向量的维度值为第一特征值表示所述预设拖拽方向允许运动,所述开关向量的维度值为第二特征值表示所述预设拖拽方向不允许运动。
17.在上述实现过程中,通过对开关向量的不同维度赋予不同的取值,进而控制机器人末端是否允许不同拖拽方向或角度可以拖动,简单、方便,进一步提升了人机交互体验。
18.第二方面,本技术实施例提供了一种机器人末端控制装置,所述装置包括:末端受力运算模块,用于对机器人的关节采集电流以及关节采集位置进行运算,获得末端受力向量;末端位置转换模块,用于对所述末端受力向量进行映射转换,获得末端位置向量;控制模块,用于根据所述末端受力向量以及末端位置向量对所述机器人末端的工作空间进行控制。
19.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
20.第四方面,本技术实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
21.为使本技术的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
22.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他相关的附图。
23.图1为本技术实施例提供的一种现有常规的导纳控制方法的控制框图;
24.图2为本技术实施例提供的第一种机器人末端控制方法的流程图;
25.图3为本技术实施例提供的第二种机器人末端控制方法的流程图;
26.图4为本技术实施例提供的机器人末端控制装置的功能模块示意图;以及
27.图5为本技术实施例提供机器人末端控制装置的电子设备的方框示意图。
28.图标:210-末端受力运算模块;220-末端位置转换模块;230-控制模块;300-电子设备;311-存储器;312-存储控制器;313-处理器;314-外设接口;315-输入输出单元;316-显示单元。
具体实施方式
29.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
31.请参阅图1,图1为本技术实施例提供的一种现有常规的导纳控制方法的控制框图。图中,fr是期望力;fc实际力,xc是实际位置;

f即是期望力和实际力之间的误差;根据

f可以算出

x,实际上就可以得到末端位置变化e。该方法对于工作空间拖拽模式、碰撞检测模式等两种模式的控制具体如下。对于工作空间拖拽模式,基于六维力传感器的导纳控制应用在拖动示教上,假设刚度系数为k,可具体分为k=0和k≠0两种情况。
32.其中,k=0时,该质量-弹簧-阻尼器系统模型可以为:
[0033][0034]
式中,f为机器人本体对底座的有效约束力参数,e为机器人末端位姿补偿值或者末端位置变化,m、b为导纳控制参数,s=σ+jω为复参变量,也称复频率。
[0035]
k≠0时,该质量-弹簧-阻尼器系统模型可以为:
[0036][0037]
式中,为位置变化的导数(速度),此时,机器人末端可视为一阶系统,输入f,输
出响应时间τ=m/b,幅值为f/b。为使机器人末端表现的更加柔顺,可减小b参数,为保证响应时间不变,可相应调小m参数。通过调节导纳控制参数,可以调整拖拽的难易程度。
[0038]
对于碰撞检测模式,一般设定机器人末端各个方向允许受力的阈值,当外力大于所设定阈值时,机器人控制器会立刻控制机器人停止运动,保护人或者物体。
[0039]
可见,导纳控制无需机器人的动力学模型,可以避免上述非线性因素的影响,便于在一般商业化的机器人上实现,且导纳控制器相当于一个二阶低通滤波器,一定程度上可以抑制力信号的高频噪声,但导纳控制精度仍依赖于底层位置的控制精度,且不适用与导纳特性的环境。为此,本技术提供了一种基于机器人关节电流的模型,克服了上述导纳控制的各种缺陷,并不需要额外增加末端力传感器,降低了用户的使用成本。
[0040]
请参阅图2,图2为本技术实施例提供的第一种机器人末端控制方法的流程图,该方法可以包括步骤100、步骤120、步骤140。
[0041]
步骤100:对机器人的关节采集电流以及关节采集位置进行运算,获得末端受力向量;
[0042]
步骤120:对末端受力向量进行映射转换,获得末端位置向量;
[0043]
步骤140:根据末端受力向量以及末端位置向量对机器人末端的工作空间进行控制。
[0044]
示例性地,关节采集电流、关节采集位置均是当前时刻采集机器人各个关节在关节空间的实时位置、实时电流;关节空间可以是所有关节矢量组成的空间,对于一个具有n个自由度的操作臂,它的所有连杆位置可由一组n个关节变量来确定,这样一组变量即为n
×
1的关节矢量;工作空间即可以是笛卡尔空间、任务空间或操作空间。关节空间到笛卡尔空间的映射转换可以是根据关节角度或关节位置计算机器人机械臂末端执行器的笛卡尔位置和姿态(角度)。
[0045]
通过将关节空间机器人各个关节的关节采集位置、关节采集电流,经运算、映射转换至末端工作空间的末端受力向量以及末端位置向量等参数向量,进而基于参数向量实现机器人末端拖拽或者碰撞的控制,无需额外增加末端力传感器,降低了用户的使用成本,可有效地提升拖拽示教速度以及对机器人的保护作用。
[0046]
在一个实施例中,步骤100可以具体包括:步骤101、步骤102。
[0047]
步骤101:基于机器人关节转矩动力学模型,对关节采集电流以及关节采集位置进行运算,获得关节外力矩;
[0048]
步骤102:对关节外力矩进行雅克比矩阵转置,获得末端受力向量。
[0049]
示例性地,基于拉格朗日或者牛顿欧拉法,推导出机器人动力学模型;机器人运动设定的激励轨迹,采集关节位置和关节电流,基于最小二乘法辨识出机器人的动力学参数。具体地,关节转矩向量τm可以由采集的关节电流得到:
[0050]
τm=k*i
[0051]
其中,i是关节采集电流,k是电机转矩系数;然后结合采集的关节位置,代入机器人关节转矩动力学模型,可计算出关节外力矩τ
ext
,具体运算公式如下:
[0052]
[0053]
其中,q、分别为关节角度(也即关节采集位置)、关节角速度和关节角加速度向量;为惯性力;为科氏力以及离心力;g(q)为重力;f为摩擦力;为回归矩阵,h
tot
为机器人的动力学参数向量,可具体包含连杆惯性参数、电机转子参数、关节摩擦参数,可由最小二乘法方法进行辨识。当q、h
tot
均估计准确时,即可获得关节外力矩的准确估计值:
[0054][0055]
假设在t时刻,机器人末端受到的外力是wt,且wt是一个六维向量,其包括三个方向的力ft和三个方向的力矩mt。且该时刻机器人的雅克比矩阵是jt,已知关节外力矩向量是τ
ext
,则:
[0056][0057]
其中,jt
t
是雅克比矩阵jt的转置,(jt
t
)-1
是jt
t
的逆矩阵。即通过对关节外力矩向量τ
ext
经雅克比矩阵转置求逆即可得到末端受力向量wt。
[0058]
通过将采集的关节位置和关节电流经上述关节转矩动力学模型等动力学方程求解运算得到关节力矩,并补偿至工作空间对应关节,实现拖拽示教或碰撞检测,提高了控制效率和控制精确度。
[0059]
请参阅图3,图3为本技术实施例提供的第二种机器人末端控制方法的流程图,在本实施例中,步骤140可以具体包括:步骤141、步骤142。
[0060]
步骤141:根据末端受力向量,对机器人末端的工作空间进行运动碰撞控制;
[0061]
步骤142:根据末端位置向量,对机器人末端的工作空间进行拖拽控制。
[0062]
示例性地,机器人处于运动模式下,机器人末端各个方向可能会因为碰撞受到外力,因而可通过控制末端受力向量的大小、方向从而控制机器人末端是否停止或继续运动,避免碰撞起到保护作用;机器人处于拖拽模式下,控制机器人末端关节各个位置受到的外力,使得机器人顺应外力运动,直到机器人末端不再受到拖拽力。通过基于机器人关节的电流转化为末端受力向量、末端位置向量进行控制,不依赖于力传感器,实现机器人末端的工作空间拖拽和碰撞检测,提升了人机交互体验,增加了机器人使用的安全性。
[0063]
在一个实施例中,步骤141可以具体包括:
[0064]
步骤141a:将末端受力向量的长度与预设碰撞力阈值进行比较;
[0065]
步骤141b:若末端受力向量的长度大于预设碰撞力阈值,则控制机器人停止运动;若末端受力向量的长度小于预设碰撞力阈值,则控制机器人继续运动。
[0066]
示例性地,机器人工作在运动模式,此时机器人末端受到外力,根据上述步骤102、步骤102,计算出机器人末端在t时刻的受力向量wt。根据设定的机器人末端碰撞力阈值w
_lim
,当|wt|》w
_lim
时,即受力向量wt的长度大小大于设定阈值时,则触发碰撞条件,机器人会立即停止运动,避免造成伤害;如果|wt|《w
_lim
,则机器人继续运动。
[0067]
通过在运动模式下将机器人末端受力向量与预设碰撞力阈值进行比对,当超过阈值,机器人会停止运动,提高了机器人的安全检测性能,增加了机器人使用的安全性。
[0068]
在一个实施例中,步骤142可以具体包括:
[0069]
步骤142a:对末端位置向量进行运动学逆解,获得关节驱动指令;
[0070]
步骤142c:基于关节驱动指令控制所述机器人末端进行拖拽运动。
[0071]
示例性地,基于关节空间到笛卡尔空间的映射转换φ,将机器人末端受力向量wt映射成末端位置向量xt,其中xt是一个六维向量,包括三个位移和三个角度,即可表示为:
[0072]
φ(wt)=xt
[0073]
将xt发给机器人控制器的运动控制模块,经过机器人运动学逆解,计算出该时刻机器人各个关节位置的关节驱动指令qt,机器人就会顺应外力按照相应驱动指令运动,直到机器人末端不再受到拖拽力。
[0074]
通过在拖拽模式下将机器人末端位置向量转化为关节驱动指令,进而驱动机器人末端顺应外力进行运动,提升了机器人的人机交互体验。
[0075]
在一个实施例中,步骤142c之前还可以包括:
[0076]
步骤142b:通过开关向量控制机器人末端是否允许在预设拖拽方向运动。
[0077]
示例性地,基于采集电流的机器人末端工作空间拖拽,通过在机器人控制器中设置一个开关向量o可以实现拖拽方向的解耦。由于机器人末端位姿有六个自由度,具体包括x方向、y方向、z方向上的三个位置和x方向、y方向、z方向上的三个姿态或角度,因此该开关向量可以是对应于末端受力向量三个力矩方向和三个力方向(六个拖拽方向)的六维向量,开关向量的取值决定六个拖拽方向是否允许拖动。通过开关向量控制机器人末端允许拖拽的方向或角度,进一步提升了人机交互体验。
[0078]
在一个实施例中,步骤142b中,开关向量的维度值为第一特征值表示预设拖拽方向允许运动,开关向量的维度值为第二特征值表示预设拖拽方向不允许运动。
[0079]
示例性地,第一特征值、第二特征值为开关向量六个维度的两种取值。某维度取值为第一特征值,即可为1时,代表该方向是打开的,意味着计算出的xt对应维度有值,对应维度就会顺着外力运动,达到拖动该方向的目的;如果某维度取值为第二特征值,即可为0时,即使对应xt有数值,该方向也不允许用户拖动机器人。例如:开关向量o为(1,0,0,0,0,1),表示允许末端x方向移动位置和z方向移动角度跟随外力变化,其余方向保持上一个时刻的位置或者角度。
[0080]
通过对开关向量的不同维度赋予不同的取值,进而控制机器人末端是否允许不同拖拽方向或角度可以拖动,简单、方便,进一步提升了人机交互体验。
[0081]
请参阅图4,图4为本技术实施例提供的一种机器人末端控制装置的功能模块示意图,该装置包括:末端受力运算模块210、末端位置转换模块220、控制模块230。
[0082]
其中,末端受力运算模块210,用于对机器人的关节采集电流以及关节采集位置进行运算,获得末端受力向量;
[0083]
末端位置转换模块220,用于对末端受力向量进行映射转换,获得末端位置向量;
[0084]
控制模块230,用于根据末端受力向量以及末端位置向量对机器人末端的工作空间进行控制。
[0085]
可选地,末端受力运算模块210可以用于:
[0086]
基于机器人关节转矩动力学模型,对关节采集电流以及关节采集位置进行运算,获得关节外力矩;
[0087]
对关节外力矩进行雅克比矩阵转置,获得末端受力向量。
[0088]
可选地,控制模块230可以用于:
[0089]
根据末端受力向量,对机器人末端的工作空间进行运动碰撞控制;
[0090]
根据末端位置向量,对机器人末端的工作空间进行拖拽控制。
[0091]
可选地,控制模块230可以用于:
[0092]
将末端受力向量的长度与预设碰撞力阈值进行比较;
[0093]
若末端受力向量的长度大于预设碰撞力阈值,则控制机器人停止运动;
[0094]
若末端受力向量的长度小于预设碰撞力阈值,则控制机器人继续运动。
[0095]
可选地,控制模块230可以用于:
[0096]
对末端位置向量进行运动学逆解,获得关节驱动指令;
[0097]
基于关节驱动指令控制机器人末端进行拖拽运动。
[0098]
可选地,控制模块230可以用于:
[0099]
通过开关向量控制机器人末端是否允许在预设拖拽方向运动。
[0100]
可选地,开关向量的维度值为第一特征值表示预设拖拽方向允许运动,开关向量的维度值为第二特征值表示预设拖拽方向不允许运动。
[0101]
请参阅图5,图5是电子设备的方框示意图。电子设备300可以包括存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对电子设备300的结构造成限定。例如,电子设备300还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
[0102]
上述的存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器313用于执行存储器中存储的可执行模块。
[0103]
其中,存储器311可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除只读存储器(erasable programmable read-only memory,简称eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称eeprom)等。其中,存储器311用于存储程序,所述处理器313在接收到执行指令后,执行所述程序,本技术实施例任一实施例揭示的过程定义的电子设备300所执行的方法可以应用于处理器313中,或者由处理器313实现。
[0104]
上述的处理器313可能是一种集成电路芯片,具有信号的处理能力。上述的处理器313可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0105]
上述的外设接口314将各种输入/输出装置耦合至处理器313以及存储器311。在一些实施例中,外设接口314,处理器313以及存储控制器312可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
[0106]
上述的输入输出单元315用于提供给用户输入数据。所述输入输出单元315可以
是,但不限于,鼠标和键盘等。
[0107]
上述的显示单元316在电子设备300与用户之间提供一个交互界面(例如用户操作界面)给用户参考。在本实施例中,所述显示单元316可以是液晶显示器或触控显示器。液晶显示器或触控显示器可以对处理器执行所述程序的过程进行显示。
[0108]
本实施例中的电子设备300可以用于执行本技术实施例提供的各个方法中的各个步骤。
[0109]
此外,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的步骤。
[0110]
本技术实施例所提供的上述方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中的步骤,具体可参见上述方法实施例,在此不再赘述。
[0111]
在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。在本技术实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0112]
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0113]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0114]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1