1.本发明涉及机械臂自动化控制领域,特别涉及一种机械臂的碰撞保护方法、系统、机器人及存储介质。
背景技术:
2.在现有技术中,因为使用者的操作不当经常可能出现设备在运作过程中发生碰撞的情况,例如:机器人的机械臂在使用时可能会与其他设备发生碰撞,目前现有技术中,当机械臂发生碰撞时,一般是通过将机器人进行锁定,使得发生碰撞的机械臂无法移动,再由相关人员确认进行解锁操作,最后由相关人员进行人工复位,但在复位之前,发生碰撞的机械臂会持续停留在碰撞位置,极易造成持续损伤。
3.因此,如何在检测到碰撞信号控制机械臂返回安全位置,避免造成持续损伤成为了本领域技术人员目前需要解决的技术问题。
技术实现要素:
4.本发明的目的是提供一种机械臂的碰撞保护方法、系统、机器人及存储介质,能够在检测到碰撞信号控制机械臂返回安全位置防止造成持续损伤。
5.为实现上述目的,本发明提供一种机械臂的碰撞保护方法,包括:获取当机械臂碰撞时产生的碰撞信号;根据碰撞信号控制机械臂停止运动;根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据;根据运动数据确定机械臂在碰撞前所处的安全位置;控制机械臂运动至安全位置。
6.可选地,在根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据的步骤和在根据运动数据确定机械臂在碰撞前所处的安全位置的步骤之间,还包括:将运动数据按照预设时间间隔划分为多个运动子数据;其中,预设时间段被预设时间间隔划分为多个预设时间子段,预设时间子段和运动子数据一一对应;并且,根据运动数据确定机械臂在碰撞前所处的安全位置的步骤,包括:判断相邻两个预设时间子段所分别对应的运动子数据之间的误差;当误差小于预设误差范围时,获取该相邻两个预设时间子段所对应的运动子数据,并作为安全运动数据;根据安全运动数据确定出机械臂在碰撞前所处的安全位置。
7.可选地,根据运动数据确定机械臂在碰撞前所处的安全位置,包括:根据相邻两个预设时间子段分别对应的运动子数据,确定出该相邻两个预设时间子段内机械臂的关节角度值;根据关节角度值确定机械臂的多个关节角度误差值;根据机械臂的多个关节角度误差值,得到最小误差范围的关节角度值,并确定该
关节角度值所在预设时间子段内所处时刻的数据为最接近的安全运动数据。
8.可选地,控制机械臂运动至安全位置之前,还包括:获取控制机械臂运动至安全位置的控制指令;并且,控制机械臂运动至安全位置包括:根据控制指令控制机械臂运动至安全位置。
9.可选地,根据控制指令控制机械臂运动至安全位置,包括:根据机械臂在碰撞后的位置和安全位置计算机械臂的移动路径;控制机械臂按照移动路径进行运动。
10.可选地,根据机械臂在碰撞后的位置和安全位置计算机械臂的移动路径,包括:根据机械臂在碰撞后的位置对安全位置执行逆运动学计算,得到机械臂变换至安全位置的最短移动路径;并且,控制机械臂按照移动路径进行运动,包括:控制机械臂按照最短移动路径进行运动。可选地,根据安全位置对机械臂在碰撞后的位置执行逆运动学计算,得到机械臂变换至安全位置的最短移动路径,包括:运用二阶范数距离法并根据安全位置对机械臂在碰撞后的位置执行逆运动学计算,得到机械臂变换至安全位置的最短移动路径。
11.本发明提供一种机械臂的碰撞保护系统,包括:碰撞信号获取单元:用于获取当机械臂碰撞时产生的碰撞信号;预设运动停止单元:用于根据碰撞信号控制机械臂停止运动;运动数据提取单元:用于根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据;安全位置计算单元:用于根据运动数据确定机械臂在碰撞前所处的安全位置;移位操作控制单元:用于控制机械臂运动至安全位置。
12.本发明提供一种机器人,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现如上述机械臂的碰撞保护方法的步骤。
13.本发明提供一种存储介质,存储介质中存储有计算机可执行指令,计算机可执行指令被处理器加载并执行时,实现如上述机械臂的碰撞保护方法的步骤。
14.相对于上述背景技术,本发明提供了一种机械臂的碰撞保护的方法包括:获取当机械臂碰撞时产生的碰撞信号;根据碰撞信号控制机械臂停止运动;根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据;根据运动数据确定机械臂在碰撞前所处的安全位置;控制机械臂运动至安全位置。
15.可见,在实际应用中,采用本发明的方案,当机械臂发生碰撞时,不仅会控制机械臂停止运动,还会在机械臂停止运动之后,控制机械臂运动至安全位置,这样一来,机械臂在发生碰撞之后,可以及时运动到安全位置,避免机械臂停留在碰撞位置造成持续损伤。
16.本发明还提供了一种机械臂的碰撞保护系统、一种机器人及一种存储介质,具有上述有益效果。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
18.图1为本发明实施例所提供的机械臂的碰撞保护方法的一种具体实施方式的流程图;图2为本发明实施例所提供的机械臂的碰撞保护方法的另一种具体实施方式的流程图;图3为本发明实施例所提供的应用本方法的机械臂示意图;图4为本发明实施例所提供的一种机械臂的碰撞保护系统的结构框图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.为了使本技术领域的技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
21.本技术实施例所提供的一种机械臂的碰撞保护方法,请参见说明书附图1,其主要目的在于,当机械臂发生碰撞时,不仅能够及时控制机械臂停止运行,还能够在机械臂停止运行后,控制机械臂运动至在发生碰撞之前的安全位置,从而有效避免机械臂在碰撞位置处的持续时间过长,避免机械臂停留在碰撞位置造成持续损伤。
22.本文的机械臂的碰撞保护方法包括:步骤s1:获取当机械臂碰撞时产生的碰撞信号;当机械臂发生碰撞时,机械臂表面布置的力传感器短时间内接收到冲击力,从而产生碰撞信号,获取上述碰撞信号。
23.例如,机械臂在按照预定的轨迹运行时,倘若机械臂的运动轨迹上突然出现其他物体时,机械臂与该物体发生碰撞,此时机械臂势必会产生一定的冲击力,利用安装于机械臂的力传感器等检测部件可以检测到该冲击力,那么该冲击力所对应的电信号即可看做是碰撞信号。
24.步骤s2:根据碰撞信号控制机械臂停止运动;当接收到碰撞信号时,停止机械臂的运动;也即,碰撞信号可作为触发信号,控制机械臂停止当前的运行,此时机械臂会停留在发生碰撞的区域周围。
25.步骤s3:根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据;机械臂在运动时,始终记录并保存上次操作的运动数据,当接收到碰撞信号时,提取上次操作的运动数据;当获取到碰撞信号之后,及时调用在碰撞前的预设时间段内机械臂的运动数据。
26.这里需要指出的是,上述步骤s2和步骤s3的先后顺序并无具体限定,即当获取到碰撞信号之后,可以先执行步骤s2,再执行步骤s3,也可以先执行步骤s3,再执行步骤s2,还可以同时执行步骤s2和步骤s3。
27.也就是说,当机械臂发生碰撞并产生碰撞信号之后,只要获取到碰撞信号,则会执行两个步骤,其一是控制机械臂停止运动,其二是提取在碰撞前的预设时间段内机械臂的运动数据,至于上述两个步骤的前后关系,并无具体限制。
28.步骤s4:根据运动数据确定机械臂在碰撞前所处的安全位置;根据上述运动数据,确定机械臂在发生碰撞之前的安全位置。在执行该步骤s4之前,上述步骤s3应执行完毕,也即,在提取到在碰撞前的预设时间段内机械臂的运动数据的前提下,确定出安全位置,该安全位置显然应为机械臂不和任何物体发生接触的位置。
29.步骤s5:控制机械臂运动至安全位置。
30.控制机械臂运动至上述安全位置,避免碰撞位置持续接触造成损伤。显然,在执行该步骤s5之前,上述步骤s1至步骤s4应执行完毕,最后,控制机械臂从发生碰撞的区域周围运动至发生碰撞之前的安全位置,这样一来,机械臂便完成了由碰撞、到停止、最后移动至安全位置的全过程,如此设置的机械臂的碰撞保护方法,可以有效缩短机械臂位于碰撞区域的持续时间,最大限度的降低了因机械臂停留在碰撞位置而造成的持续损伤。
31.在一种具体实施方式中,参考说明书附图2,在步骤s3和步骤s4之间,还可包括步骤s31,步骤s31、将运动数据按照预设时间间隔划分为多个运动子数据,假设步骤s3中的预设时间段为100ms,即当获取碰撞信号后,提取在碰撞信号产生时的前100ms的运动数据,而过往100ms的所有运动数据均记录在系统的内存中,且调用时间消耗近乎为零。
32.以预设时间间隔设置成4ms为例,则100ms的预设时间段被平均分为25个预设时间子段,相对应的,在100ms内的运动数据亦被平均分为25个运动子数据,预设时间子段与上述运动子数据一一对应。
33.当然,上述预设时间段和预设时间间隔等可以根据实际需要设置不同的数值,本文不再展开。
34.与此同时,针对步骤s4,根据运动数据确定机械臂在碰撞前所处的安全位置包括:步骤s41、根据相邻两个预设时间子段所分别对应的运动子数据之间的差值,得到机械臂在碰撞前所处的安全时刻;其中,安全时刻位于预设时间段内;步骤s42、根据安全时刻对应的运动数据,得到机械臂在碰撞前所处的安全位置。
35.可以看出,依据相邻两个预设时间子段所分别对应的运动子数据之间的差值,从而判断出在预设时间段内中的安全时刻,并根据安全时刻所对应的运动数据,得到机械臂在碰撞前所处的安全位置。
36.在这里,可以通过依次计算全部相邻两个预设时间子段所分别对应的运动子数据之间的差值,找到差值最小的相邻两个预设时间子段,并以此得到安全时刻,安全时刻可以是该相邻两个预设时间子段中的任意时刻,也可以是该相邻两个预设时间子段的中间时刻,安全时刻对应有运动数据,该运动数据则对应着机械臂在碰撞前所处的安全位置。
37.除此之外,在依次计算全部相邻两个预设时间子段所分别对应的运动子数据之间的差值之后,找到小于等于预设误差范围的差值,并以该差值对应的相邻两个预设时间子段为依据,确定出机械臂在碰撞前所处的安全时刻,其具体实施方式如下:计算相邻两个预设时间子段所分别对应的运动子数据之间的差值;判断差值是否小于等于预设误差范围,若是,将该相邻两个预设时间子段中的任
意时刻作为机械臂在碰撞前所处的安全时刻。针对预设误差范围,其理解方式为:在机械臂未发生碰撞时,相邻两个运动子数据之差应在预设误差范围之内,在机械臂因碰撞而产生冲击力的情况下,相邻两个运动子数据之差超过了预设误差范围,即在碰撞前后的不同时间段内,两个运动子数据之差超过了正常的范围。由此可知,预设误差范围的具体取值反应了机械臂在正常(未发生碰撞)运行下,相邻两个运动子数据所应遵循的客观规律,预设误差范围的具体数值可以根据不同的机械臂类型以及机械臂的不同运行工况而定。
38.由此可知,对任意相邻的两个运动子数据的差值进行判断,当该差值小于误差范围时,则表明:此时的两个相邻的运动子数据所对应的机械臂状态是安全的,可以将该相邻两个预设时间子段中的任意时刻作为机械臂在碰撞前所处的安全时刻,从而确定安全时刻所对应的安全位置。
39.例如,相邻的两个预设时间子段分别是a和b,预设时间子段a所对应的运动子数据是a1,预设时间子段b所对应的运动子数据是b1;当判断出运动子数据a1和运动子数据b1之间的差值小于预设误差范围时,则表明:在预设时间子段a和预设时间子段b之间没有发生碰撞,机械臂没有产生冲击力,运动子数据a1和运动子数据b1之间的差值不会超过预设误差范围,由此,将预设时间子段a和预设时间子段b两者中的任意时刻作为机械臂在碰撞前所处的安全时刻,则安全时刻对应安全位置。
40.针对上文涉及的运动子数据,可进一步确定出机械臂的关节角度值,也即,根据运动数据确定机械臂在碰撞前所处的安全位置,包括:首先,根据相邻两个预设时间子段分别对应的运动子数据,确定出该相邻两个预设时间子段内机械臂的关节角度值;其中,运动子数据可包括:速度、加速度、位移等等,根据运动子数据结合机械臂的尺寸等参数即可计算得到各个关节角度值;当然,还可以直接在机械臂的各个关节处设置传感器,直接测得各个关节的角度值;然后,根据关节角度值确定机械臂的多个关节角度误差值;当机械臂各个关节的角度值确定后,对任意相邻的两个关节的角度值进行计算,得到多个关节角度的误差值;最后,根据机械臂的多个关节角度误差值,得到最小误差范围的关节角度值,并确定该关节角度值所在预设时间子段内所处时刻作为机械臂在碰撞前所处的安全时刻。
41.可以看出,当计算出多个关节角度误差值之后,可采用排序的方式,得到误差范围最小的关节角度值,从而确定出最小的关节角度值所在预设时间子段内所处时刻作为机械臂在碰撞前所处的安全时刻,进而得到对应安全时刻的安全位置。
42.在一种具体实施方式中,可参考说明书附图3,图3为本发明实施例所提供的应用本方法的机械臂示意图,其中,机械臂1的末端设置有滑台3,器械2安装于滑台3,机械臂1的关节位置数据是主要对比数据,对比碰撞前机械臂(即确定最接近的安全数据时刻状态的机械臂)关节末端位置数据与碰撞后的末端位置数据,通过运动学算法,求得一组关节姿态;对比碰撞前的机械臂1的姿态,找到运动距离最小的关节组合;将发生碰撞后机械臂1的关节姿态与发生碰撞后所确定的最接近的安全位置的机械臂1的关节姿态进行比较,确定对比碰撞前(即确定最接近的安全数据时刻状态的机械臂)关节末端位置与碰撞后的末端位置;
倒回预定时间段内多个单位时间段内的机械臂关节值,比对相邻时间段内关节值之间的误差,其标准为:关节电机之间的角度误差在0.3%
‑
5%的范围之内,即上文的预设误差范围可设定为0.3%
‑
5%,得到最小误差范围的关节值,确定该关节值时间段内所处时刻的数据为最接近的安全数据。
43.例如:将预定时间间隔设置为4ms,一个4ms的时间段内机械臂上关节电机的数据与上一个4ms的时间段内机械臂上关节电机的数据进行比对,且关节电机之间的角度误差在0.3%
‑
5%的范围之内最优。
44.假设t0为当前时刻、t0‑
4ms
为4ms之前的时刻、t0‑
4n
为n个4ms之前时刻、j=[j1,j2,j3,j4,j5,j6,j7,j8,j9,j
10
,j
11
],为所有关节的向量,j1至 j6是机械臂的关节,j7至j 11
是滑台 器械的关节;j(
t0
)为当前时刻所有关节变量;j(
t0 4ms
)为下一时刻所有关节变量;j(
t0
‑
4n
)为上n个时刻所有关节变量,当n=25,即前100ms的关节姿态。
[0045]
针对碰撞保护恢复的情况:如果碰撞发生时,则控制机械臂停在给定位置j*,其中,给定位置j*代表在安全位置时所有关节的向量;然后找到碰撞发生之前的n个时刻的数据;当判断出在上n个时刻所有关节变量j(
t0
‑
4n
)中,j(
t0
‑
4n
)和给定位置j*的误差范围在0.3%
‑
5%之间时,当| j(
t0
‑
4n
)
‑ꢀ
j*|<5%
×
| j*|,并且 | j(
t0
‑
4n
)
‑ꢀ
j*|>0.3%
×
|j*|时,则可以将在上n个时刻中的任意时刻作为安全时刻。
[0046]
而当运动过大时,发生碰撞预警的情况如下:如果下一时刻所有关节变量j(
t0 4ms
)和当前时刻所有关节变量j(
t0
)的差值的绝对值大于等于即所有关节的向量j的绝对值的5%,即| j(
t0 4ms
)
‑ꢀ
j(
t0
)|≥5%| j |,表明下一时刻的运动过大,有可能会发生碰撞,从而给出预警;针对预警的具体方式,本文不再展开。
[0047]
进一步的,控制机械臂运动之安全位置之前,还包括:根据上述方案根据运动数据获得机械臂在碰撞前所处的安全位置之后,发送控制指令,接收到控制指令的机械臂按指令移动到上述安全位置处。
[0048]
也就是说,当上述步骤s1至步骤s4执行完毕后,并非直接执行步骤s5,而是先执行“获取控制机械臂运动至安全位置的控制指令”,倘若获取到控制指令,则执行“根据控制指令控制机械臂运动至安全位置”。其中,控制指令可以通过触发按键的方式人为发出。
[0049]
例如,当碰撞发生后,有些情况下并不适合直接运动至安全位置,而是需要在碰撞位置进行一定的处理,再控制机械臂运动至安全位置,此时就需要机械臂暂时停在碰撞位置,待处理完毕后,通过发送控制指令,以便机械臂运动至安全位置。
[0050]
进一步的,针对上述步骤s5,控制机械臂运动至安全位置,包括:根据机械臂碰撞后的位置和上述安全位置计算机械臂的移动路径,并按照上述路径控制机械臂运动。
[0051]
进一步的,根据机械臂碰撞后的位置和上述安全位置进行逆运动学计算(逆运动学是决定要达成所需要的姿势所要设置的关节可活动对象的参数的过程),得到最短移动路径,控制机械臂按照上述最短移动路径运动。
[0052]
进一步的,根据安全位置对机械臂在碰撞后的位置执行逆运动学计算具体运用二阶范数距离法,得到机械臂变换至安全位置的最短移动路径。
[0053]
针对工业机器人和服务机器人等,如说明书附图3,机械臂1的末端设置有滑台3,
器械2安装于滑台3;其中,器械2可具体为:电焊、喷枪、超声刀、电钩、钳子、摄像头等,滑台3可具体为移动基座,用来安装器械2,针对器械2和滑台3的具体设置方式,均可参考现有技术,本文对此并未做出具体改进。当然,针对其他不同类型的机械臂,其计算方式与上述类似,本文此处不再展开。
[0054]
可以将上述范数距离的具体计算公式写为:;其中,j代表机械臂1在碰撞停止时所有关节的向量,j*代表在安全位置时所有关节的向量,则j
‑
j*的绝对值,即| j
‑
j*|表示机械臂在由碰撞停止时的位置移动至安全位置的距离;其中,j1至j6代表机械臂1在碰撞停止时各个关节的关节向量,j1*至j6*代表机械臂1在安全位置时各个关节的关节向量,j7至j
11
代表机械臂1在碰撞停止时滑台3和器械2的关节向量,j7*至j
11
*代表机械臂在安全位置时滑台3和器械2的关节向量。
[0055]
本发明实施例还提供一种机械臂的碰撞保护系统,其设置方法和工作过程可参考上述机械臂的碰撞保护方法,机械臂的碰撞保护系统可应用于上述机械臂的碰撞保护方法,其中,显示操作过程的系统的结构框图如说明书附图4所示,包括:碰撞信号获取单元101:用于获取当机械臂碰撞时产生的碰撞信号;预设运动停止单元102:用于根据碰撞信号控制机械臂停止运动;运动数据提取单元103:用于根据碰撞信号提取在碰撞前的预设时间段内机械臂的运动数据;安全位置计算单元104:用于根据运动数据确定机械臂在碰撞前所处的安全位置;移位操作控制单元105:用于控制机械臂运动至安全位置。
[0056]
进一步地,安全位置计算单元104,还用于:将运动数据按照预设时间间隔划分为多个运动子数据;其中,预设时间段被预设时间间隔划分为多个预设时间子段,预设时间子段和运动子数据一一对应;当判断出相邻两个预设时间子段所分别对应的运动子数据之差小于误差范围时,获取该相邻两个预设时间子段的重合时刻所对应的安全运动数据,其中,运动数据包括安全运动数据;根据安全运动数据确定出机械臂在碰撞前所处的安全位置。
[0057]
进一步地,移位操作控制单元105,还用于:根据机械臂在碰撞后的位置和安全位置计算机械臂的移动路径;控制机械臂按照移动路径进行运动。
[0058]
本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read
‑
only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0059]
本技术还提供了一种机器人,包括存储器、处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现上述机械臂的碰撞保护方法的步骤。当然机器人还可以包括各种网络接口,电源等组件。
[0060]
需要说明的是,在本说明书中,诸如第一和第二之类的关系术语仅仅用来将一个
实体与另外几个实体区分开来,而不一定要求或者暗示这些实体之间存在任何这种实际的关系或者顺序。
[0061]
以上对本发明所提供的一种机械臂的碰撞保护方法、系统、机器人及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
转载请注明原文地址:https://doc.8miu.com/read-1450032.html