首页 > 五金工具 专利正文
机械臂运动控制方法、装置、存储介质及电子设备与流程

时间:2022-01-23 阅读: 作者:专利查询

机械臂运动控制方法、装置、存储介质及电子设备与流程

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.图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
29.为了使本领域普通人员更好地理解本技术的技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
30.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
31.图1示出了一种机械臂运动控制方法的应用环境,包括机械臂101和控制系统103。机械臂101包括机械臂本体、电机、驱动器,机械臂本体末端设有多个传感器,用于获取外力信息、关节角度、速度信息等,控制系统103包括力跟踪控制器、阻抗控制器、运动控制器及其他控制器,控制系统103可以与机械臂101集成为一体,也可以分开设置。机械臂本体末端的传感器采集机械臂当前数据,控制系统103基于机械臂当前数据和需融合的多个控制器的输出信息进行融合运算,获得机械臂在各自由度上的目标位姿,然后对目标位姿进行运动学逆解,获得期望关节角度,进而通过can(controller area network,控制器局域网络)总线向驱动器发送指令,驱动器接受指令带动控制电机旋转,驱动机械臂关节轴转动达到期望关节角度,实现对机械臂的位姿调整。机械臂可以是多关节机械臂和/或六轴机械臂。
32.本技术提供一种机械臂运动控制方法,可以由所述控制系统执行。请参见图2,所述机械臂运动控制方法包括步骤:
33.s201、获取机械臂至少两个控制器在目标自由度上的空间插补量,所述空间插补量为笛卡尔空间插补量或者关节空间插补量;
34.s203、根据所述空间插补量和预设模型,确定融合插补量;
35.s205、基于所述融合插补量和所述机械臂在所述目标自由度上的当前位姿,确定目标位姿;
36.s207、根据所述目标位姿控制所述机械臂在所述目标自由度上的运动。
37.在一个可能的实现方式中,步骤s201可以包括步骤s2011~s2013。
38.s2011、获取每个所述控制器在所述目标自由度上的当前输出信息和规划输出信息,所述规划输出信息为所述控制器基于所述当前输出信息在下一运动周期的输出信息。
39.s2013、根据所述当前输出信息和所述规划输出信息,确定每个所述控制器在所述目标自由度上的空间插补量。
40.多关节机械臂或者六轴机械臂具有多个自由度,通过对各自由度的控制,可以实现机械臂位姿调整。从多个自由度中确定一个目标自由度,该目标自由度可以是多个自由度中的任意一个自由度,确定需要在该目标自由度上融合的多个控制器以及要融合的坐标系{f}。通过机械臂末端传感器获取每个所述控制器在所述目标自由度上的当前输出信息,基于当前输出信息确定各控制器在下一运动周期的输出信息,将其作为规划输出信息。进而根据当前输出信息和规划输出信息,计算每个控制器在目标自由度上的空间插补量。
41.坐标系是为确定机器人的位置和姿态而在机器人或空间上进行定义的位置指标系统。机械臂坐标系分为关节坐标系和直角坐标系(即笛卡尔坐标系)。机器人的关节坐标系用来描叙机器人每个独立关节的运动,对于六轴串联型机械臂,关节类型均为转动关节;在关节坐标系下,将机器人末端移动到期望位置,可以依次驱动各关节运动,从而让机器人末端到达指定位置。常规的直角坐标系有基坐标系和工具坐标系,基坐标系是依据机械臂安装底座标定的坐标系,基坐标系的确立便于记录机械臂各轴运动位置的改变,工具坐标系根据机械臂所携带的执行工具不同而改变,工具坐标系的设定即建立tcp,将机械臂默认的法兰中心点设置为所持工件的执行点。要融合的坐标系{f}可以由用户根据具体工作场景选择确定。
42.在关节空间中,当前输出信息和规划输出信息可以表示为机械臂上关节的旋转角度,通过将规划输出信息与当前输出信息作差,可获得以关节角度表示的空间插补量。
43.在笛卡尔空间中,当前输出信息和规划输出信息可以表示为坐标系{f}中的坐标。可以先将当前输出信息和规划输出信息转化为笛卡尔空间数据,然后将规划输出信息与当前输出信息作差,得到目标自由度上的空间插补量,该空间插补量采用坐标数据表示。
44.以下以笛卡尔空间为例,就如何将控制器输出转换为空间插补量进行示例性说明。
45.(1)力跟踪控制器
46.tcp在坐标系{f}下有6个自由度,包括3个位置自由度和3个姿态自由度。假设在目标自由度上要跟踪的力/力矩为fd,实际的力为f,那么力跟踪误差为fe=f
d-f,该目标自由度上的插补量加速度为:
47.48.其中k
p k
i kd为pid参数。实际的笛卡尔空间插补量为
49.(2)阻抗控制器
50.令x表示tcp在坐标系{f}下目标自由度的值,比如可以是位置x,y或z,也可以是姿态变量。该目标自由度上的笛卡尔空间插补量为δx。
51.如果期望tcp在外力作用下表现质量-弹簧-阻尼模型的行为,该目标自由度上外力为f
ext
,则该目标自由度上的笛卡尔空间插补量为:
[0052][0053]
其中,m,b,k是质量-弹簧-阻尼模型参数,在机械臂运行过程中f
ext
是通过末端力/力矩传感器得到的,然后利用欧拉方法解微分方程(2)得到插补量。
[0054]
(3)运动控制器
[0055]
在一种可能的实现方式中,可以在笛卡尔空间做运动规划直接输出笛卡尔空间插补量,也可以在关节空间做运动规划,通过运动学正解得到笛卡尔空间插补量。这里的笛卡尔空间坐标系为需融合的坐标系{f}。
[0056]
(4)其他控制器
[0057]
任何能输出笛卡尔空间插补量的控制器均可融合,比如基于视觉反馈的控制器等。
[0058]
在一个可能的实现方式中,步骤s203可以包括下述步骤s2031~s2037。
[0059]
s2031、从所述至少两个控制器中确定一基准控制器。
[0060]
s2033、根据所述至少两个控制器的融合关系,确定所述预设模型的取值,所述融合关系表征各控制器输出指令之间的共存关系。
[0061]
s2035、当所述预设模型的取值为预设值时,确定所述融合插补量为所述基准控制器对应的插补量。
[0062]
s2037、当所述预设模型的取值为非预设值时,根据所述至少两个控制器各自对应的插补量确定所述融合插补量。
[0063]
在一个可能的实现方式中,可以预先根据各控制器输出指令之间的共存关系设置融合关系表,融合关系表可以包括代表控制器的数据项、表征控制器之间共存关系的数据项等。然后通过查表匹配的方式确定多个控制器之间的融合关系,进而根据融合关系确定预设模型的取值。预设模型可以是自定义的融合函数。
[0064]
其中,实施根据所述至少两个控制器各自对应的插补量确定所述融合插补量的步骤,可以包括以下两种方法:
[0065]
(1)将至少两个控制器各自对应的插补量作为融合插补量。即,每个控制器在目标自由度上均发挥作用,并且每个控制器在该目标自由度上的运动目标就是控制器的规划输出信息。
[0066]
(2)获取各控制器对应的权重;根据各控制器对应的权重和插补量,确定融合插补量。即,每个控制器在目标自由度上均发挥作用,但是每个控制器在目标自由度上运动目标不等同于规划输出信息,而是根据预设的权重占比进行运算后确定,从而抑制或放大部分控制器的控制作用。
[0067]
在一个可能的实现方式中,假设力跟踪控制器、阻抗控制器、运动控制器和其他控
制器在该自由度上的插补量分别为δx
tr
,δx
im
,δx
mov
,δx
other
,那么最终融合后该自由度上的插补量为:
[0068]
δx=f1(δx
tr
)+f2(δx
im
)+f3(δx
mov
)+f4(δx
other
)
ꢀꢀ
(3)
[0069]
其中,f
1-f4是自定义的融合函数。比如一种常见的简单的融合函数是f(x)的取值要么是0要么是x(x≠0);如果是0,那么对应的控制器在该自由度上不起作用,如果是x那么对应的控制器在该自由度上起作用。
[0070]
融合不同的控制器会有不同的物理意义,比如如果融合(3)中的f2和f3那么tcp在该自由度上表现为:如果不受外力则是纯粹的运动控制,如果受外力则是运动控制+阻抗控制,这可以保护机械臂末端在运动过程中遇到障碍物后表现一定的柔性。可见,单个自由度上融合不同的控制器最后会表现完全不同的效果。
[0071]
本技术实施例中的控制器融合包括两个方面,即:在每个自由度上可以融合不同的控制器,不同的自由度又可以搭配不同的控制器。从而丰富控制器融合选项,提供用户根据应用场景灵活调整融合策略的可能性,实现对机械臂每个自由度的精确控制,提升机械臂运动控制的准确性。
[0072]
在一个可能的实现方式中,步骤s205可以包括:确定机械臂在目标自由度上的当前位姿,将当前位姿与融合插补量进行求和运算,得到目标位姿。
[0073]
在笛卡尔空间下,融合插补量和机械臂当前位姿均采用笛卡尔坐标表示,通过将当前位姿与融合插补量进行求和运算,可以得到以笛卡尔坐标表示的目标位姿。进一步的,对笛卡尔空间坐标下的目标位姿到当前位姿进行规划,将规划好的路径通过逆运动学解算出要执行这条轨迹所应对应的关节轨迹,然后把关节轨迹输入给控制器,由控制器根据关节轨迹控制机械臂运动。
[0074]
在关节空间下,将当前位姿对应的关节角度与融合插补量进行求和运算,获得目标位姿,该目标位姿以关节角度表示,可以直接输入控制器,以使控制器控制机械臂运动。
[0075]
在一个可能的实现方式中,步骤s207可以包括步骤s2071~s2073。
[0076]
s2071、利用运动学逆解所述目标位姿,得到期望关节角度;
[0077]
s2073、根据所述期望关节角度控制所述机械臂在所述目标自由度上的运动。
[0078]
运动学逆解(analytical solution)是指根据已给定的满足工作要求的末端执行器相对参考坐标系的位置和姿态,求各关节的运动参数。运动学逆解有多种方法,一般分为两类:解析解(analytical solution)和数值解(numerical solutions)。解析解是根据严格的公式推导,给出任意的自变量就可以求出其因变量,然后可以利用这些公式计算相应的问题。解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。数值解是采用某种计算方法,如有限元法、数值逼近法、插值法等方法求出近似解,给出一系列对应的自变量和解。本发明实施例中,可以根据需要选择解析解或者数值解对目标位姿进行运动学逆解,求得期望关节角度,然后通过伺服电机控制机械臂运动。
[0079]
图3是根据一示例性实施例示出的笛卡尔空间下的机械臂运动控制流程示意图,请参见图3,该控制流程包括:获取当前机械臂状态信息,包括机械臂末端传感器采集的信息、用户指定坐标系{f}和机械臂当前位置;选定要融合的控制器,如图3所示,需要融合的控制器包括力跟踪控制器、阻抗控制器、运动控制器和视觉反馈控制器;确定需要融合的各控制器对应的tcp笛卡尔空间运动插补量;然后根据预设的融合参数和融合算法,将各控制
器对应的tcp笛卡尔空间运动插补量进行融合运算,获得tcp笛卡尔空间运动插补量,将tcp笛卡尔空间运动插补量转换为关节空间运动插补量;然后基于关节空间运动插补量对机械臂当前位置进行调整。图3所示控制流程融合多个控制器,使机械臂能够应用于更复杂的工作场景中。
[0080]
图4是根据一示例性实施例示出的关节空间下的机械臂运动控制流程示意图,请参见图4,该控制流程包括:获取当前机械臂状态信息,包括机械臂末端传感器采集的信息、用户指定坐标系{f}和机械臂当前位置;选定要融合的控制器(例如力跟踪控制器、阻抗控制器、运动控制器、视觉反馈控制器等);确定需要融合的各控制器对应的关节空间运动插补量;然后根据预设的融合参数和融合算法,将各控制器对应的关节空间运动插补量进行融合运算,获得融合后的关节空间运动插补量,根据融合后的关节空间运动插补量对机械臂当前位置进行调整。实现在关节空间下融合多个控制器的控制指令,提升机械臂面对复杂工况的能力。
[0081]
本发明思路还可以应用于力矩控制模式下的机械臂运动控制,基于力矩控制实现如下:
[0082]
机械臂动力学方程为:
[0083][0084]
其中τ为关节输入力矩,应用如下控制器可以实现笛卡尔坐标系下的运动控制,
[0085][0086]
其中xd是每个自由度上运动控制器规划的轨迹,通过改变xd可以实现不同传感器的融合。例如将xd更新为xd+δx(其中δx根据公式(3)得到),重新计算τ即可得到融合后的力矩。
[0087]
机械臂的运动模式包括位置模式和力矩模式,常规情况下,机械臂工作于位置模式下,即根据输入位置信息执行机械臂控制;当机械臂工作于力矩模式下时,可以通过设计一位置控制器,使输入信息为力矩时,通过控制力矩来控制位置。本技术实施例的方案基于对位置信息的处理来实现,通过将力矩控制转化为位置控制,使该方案既可以应用于位置模式,也可以应用于力矩模式。
[0088]
在一个可行的实现方式中,步骤s201之前还可以包括:确定所述机械臂的运动模式,所述运动模式包括位置模式和力矩模式;在所述机械臂工作于所述位置模式下时,获取所述机械臂至少两个控制器在目标自由度上的空间插补量;在所述机械臂工作于所述力矩模式下时,将所述机械臂的力矩输入转化为位置信息,以获取所述机械臂至少两个控制器在目标自由度上的空间插补量。
[0089]
本技术基于机械臂的当前运动参数,获取机械臂至少两个控制器在同一自由度上的空间插补量,然后结合预设模型,计算出融合插补量,之后根据融合插补量和机械臂的当前位姿,确定出目标位姿,进而将机械臂调整至目标位姿。该运动控制方案搭载了多个控制器的融合功能,可以融合不同的控制器参数,用户可以根据实际需求,选择融合不同的控制器,以应对如加工不规则曲面、避障等复杂场景,提升机械臂在关节空间或者笛卡尔空间内的运动控制效果。本技术简化了对机械臂运动数据的设置,降低了使机械臂完成复杂运动的操作门槛。图5是根据一示例性实施例示出的一种机械臂运动控制装置的框图。请参见图
5,机械臂运动控制装置包括:
[0090]
获取单元410,用于获取机械臂至少两个控制器在目标自由度上的空间插补量,所述空间插补量为笛卡尔空间插补量或者关节空间插补量;
[0091]
融合单元420,用于根据所述空间插补量和预设模型,确定融合插补量;
[0092]
确定单元430,用于基于所述融合插补量和所述机械臂在所述目标自由度上的当前位姿,确定目标位姿;
[0093]
控制单元440,用于根据所述目标位姿控制所述机械臂在所述目标自由度上的运动。
[0094]
在一个可行的实现方式中,获取单元410还用于:获取每个所述控制器在所述目标自由度上的当前输出信息和规划输出信息,所述规划输出信息为所述控制器基于所述当前输出信息在下一运动周期的输出信息;根据所述当前输出信息和所述规划输出信息,确定每个所述控制器在所述目标自由度上的空间插补量。
[0095]
在一个可行的实现方式中,融合单元420还用于:从所述至少两个控制器中确定一基准控制器;根据所述至少两个控制器的融合关系,确定所述预设模型的取值,所述融合关系表征各控制器输出指令之间的共存关系;当所述预设模型的取值为预设值时,确定所述融合插补量为所述基准控制器对应的插补量;当所述预设模型的取值为非预设值时,根据所述至少两个控制器各自对应的插补量确定所述融合插补量。
[0096]
其中,所述根据所述至少两个控制器各自对应的插补量确定所述融合插补量可以包括:将所述至少两个控制器各自对应的插补量作为所述融合插补量,或者,获取各控制器对应的权重;根据各控制器对应的权重和所述插补量,确定所述融合插补量。
[0097]
在一个可行的实现方式中,确定单元440还用于:利用运动学逆解所述目标位姿,得到期望关节角度;根据所述期望关节角度控制所述机械臂在所述目标自由度上的运动。
[0098]
所述机械臂运动控制装置还包括预处理模块,所述预处理模块用于:确定所述机械臂的运动模式,所述运动模式包括位置模式和力矩模式;在所述机械臂工作于所述位置模式下时,获取所述机械臂至少两个控制器在目标自由度上的空间插补量;在所述机械臂工作于所述力矩模式下时,将所述机械臂的力矩输入转化为位置信息,以获取所述机械臂至少两个控制器在目标自由度上的空间插补量。
[0099]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0100]
在示例性实施例中,本技术还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,所述计算机程序可由处理器执行以完成机械臂运动控制方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0101]
在示例性实施例中,本技术还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器存储有计算机程序;所述处理器用于执行所述存储器中的所述计算机程序,以实现上述的机械臂运动控制方法的各步骤。
[0102]
请参见图6,在一些实施例中,电子设备500可以包括处理器510、存储器520、输入/输出部件530和通信端口540。处理器(例如,cpu)510可以以一个或多个处理器的形式执行
程序指令。存储器520包括不同形式的程序存储器和数据存储器,例如,硬盘、只读存储器(rom)、随机存储器(ram)等,用于存储由计算机处理和/或传输的各种各样的数据文件。输入/输出部件530可以用于支持处理设备与其他部件之间的输入/输出。通信端口540可以与网络连接,用于实现数据通信。示例性的处理设备可以包括存储在只读存储器(rom)、随机存储器(ram)和/或其他类型的非暂时性存储介质中的由处理器510执行的程序指令。本说明书实施例的方法和/或流程可以以程序指令的方式实现。
[0103]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0104]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。