一种电机轴控制方法、系统、机器人及存储介质与流程

专利检索2022-05-11  19



1.本技术涉及机器人控制技术领域,特别涉及一种电机轴控制方法、系统、一种机器人及一种存储介质。


背景技术:

2.随着经济的快速发展,机器人在工业现场的应用越来越广泛,已经成为了降低生产成本,提高生产效率和提升工业制造能力,实现智能制造的重要推动力。工业机器人是面向工业领域的多关节机械手或多自由度的机器装置,它能自动执行工作,是靠自身动力和控制能力来实现各种功能的一种机器。
3.当用户主动控制机器人的电机轴执行复位时,机器人先从伺服通信卡中将反馈的轴位置数据读取出来,更新到当前轴位置数据中,这样如果驱动的参数调节不是最优的,那么读取到的位置数据就会有些许的变化,这样每次的一点偏差就会由通信卡又下发到伺服驱动中,于是反复执行复位操作的时候,会发现电机轴抖动或者发出异响。
4.因此,如何避免电机轴在复位操作过程中产生抖动是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种电机轴控制方法、一种电机轴控制系统、一种机器人及一种存储介质,能够避免电机轴在复位操作过程中产生抖动。
6.为解决上述技术问题,本技术提供一种电机轴控制方法,该电机轴控制方法包括:
7.若接收到复位指令,则利用伺服驱动器采集轴位置数据;
8.将接收到所述复位指令后所述伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据;
9.利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,并控制所述电机轴执行所述插补数据对应的操作。
10.可选的,控制所述电机轴执行所述插补数据对应的操作,包括:
11.将所述插补数据存储至指令位置缓存中;
12.当接收到通讯卡发送的触发信号时,从所述指令位置缓存中将所述插补数据通过通讯卡下发至所述伺服驱动器,以便所述伺服驱动器控制所述电机轴执行所述插补数据对应的操作。
13.可选的,将所述插补数据存储至指令位置缓存中,包括:
14.将所述插补数据转化为对应的脉冲数据,并将所述脉冲数据存储至所述指令位置缓存中;
15.相应的,从所述指令位置缓存中将所述插补数据通过通讯卡下发至伺服驱动器,包括:
16.从所述指令位置缓存中将所述插补数据对应的脉冲数据通过所述通讯卡下发至
所述伺服驱动器。
17.可选的,利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,包括:
18.根据所述当前位置数据和复位目标位置数据生成复位运动轨迹数据;
19.利用所述插补器对所述复位运动轨迹数据执行插补操作得到所述插补数据。
20.可选的,在利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据之前,还包括:
21.将所述插补器的复位调用标志位由第一预设值修改为第二预设值;其中,当所述复位调用标志位为第二预设值时,所述插补器执行根据所述电机轴的当前位置数据生成所述插补数据的操作,当所述复位调用标志位为第一预设值时,所述插补器忽略所述伺服驱动器采集的轴位置数据。
22.可选的,在控制所述电机轴执行所述插补数据对应的操作之后,还包括:
23.将所述将插补器的复位调用标志位由所述第二预设值恢复为所述第一预设值。
24.可选的,还包括:
25.若接收到急停指令,则停止所述伺服驱动器对所述电机轴的控制操作并停止所述插补器的插补数据下发操作;
26.利用伺服驱动器采集所述电机轴的急停位置,并根据所述急停位置更新待下发插补数据;
27.若接收到急停恢复指令,则将更新后的待下发插补数据发送至所述伺服驱动器,以便所述伺服驱动器根据更新后的待下发插补数据对所述电机轴执行控制操作。
28.本技术还提供了一种电机轴控制系统,该电机轴控制系统包括:
29.轴位置数据采集模块,用于若接收到复位指令,则利用伺服驱动器采集轴位置数据;
30.当前位置数据确定模块,用于将接收到所述复位指令后所述伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据;
31.插补控制模块,用于利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,并控制所述电机轴执行所述插补数据对应的操作。
32.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述电机轴控制方法执行的步骤。
33.本技术还提供了一种机器人,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述电机轴控制方法执行的步骤。
34.本技术提供了一种电机轴控制方法,包括若接收到复位指令,则利用伺服驱动器采集轴位置数据;将接收到所述复位指令后所述伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据;利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,并控制所述电机轴执行所述插补数据对应的操作。
35.本技术在接收到复位指令之后,根据伺服驱动器采集的轴位置数据确定电机轴的当前位置数据。受伺服驱动器的调节参数影响,伺服驱动器每次采集的轴位置数据可能不相同,本技术仅将接收到复位指令之后伺服驱动器首次采集的轴位置数据作为电机轴的当
前位置数据,插补器只响应第一次的复位动作,避免了由于电机轴的当前位置数据的反复变化导致的电机轴的抖动现象。可见,本技术能够避免电机轴在复位操作过程中产生的抖动和异响。本技术同时还提供了一种电机轴控制系统、一种机器人和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
36.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例所提供的一种电机轴控制方法的流程图;
38.图2为相关技术中调用resetprogram函数实现复位的原理示意图;
39.图3为本技术实施例所提供的调用resetprogram函数实现复位的原理示意图;
40.图4为本技术实施例所提供的复位过程中插补数据生成方法的原理示意图;
41.图5为本技术实施例所提供的一种电机轴控制系统的结构示意图。
具体实施方式
42.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.下面请参见图1,图1为本技术实施例所提供的一种电机轴控制方法的流程图。
44.具体步骤可以包括:
45.s101:若接收到复位指令,则利用伺服驱动器采集轴位置数据;
46.其中,本实施例可以应用于机器人,机器人通过伺服驱动器控制电机轴按照预设轨迹运动实现各种动作。具体的,机器人系统在实现控制功能的过程如下:插补器线程在控制系统启动后一直循环执行,每个插补周期都会对控制程序(控制程序为控制系统软件提供的供用户使用的程序,用于控制机器人运动以及执行逻辑和io操作)中的运动指令转换生成的轨迹进行插补,然后将插补数据存入指令位置缓存(buffer)中,当通讯卡(通讯卡为用于连接控制系统软件和伺服驱动以及外部io设备)每个周期发出触发信号时候,控制系统软件将插补数据通过通讯卡下发到伺服驱动器中,以便伺服驱动器控制电机轴转动到指定的位置,从而控制机器人本体运动。
47.在本步骤之前还可以存在接收复位指令的操作,复位指令可以为用户下发的指令,也可以为机器人在运行过程中见检测到特定触发条件(如急停操作后预设时间内未检测到继续执行操作的指令)后由处理器下发的指令。在控制程序中的运动指令已经插补下发完成后,若控制系统检查到指令位置数据没有发生变化,则不再将新的插补数据下发给伺服驱动。当接收到复位指令时,插补器不会再发当时插补点的位置数据(即插补数据),可以直接返回;在执行复位程序的时候,插补器可以从伺服驱动中重新获取当时轴的位置,并更新电机轴的当前位置数据,以便在执行复位操作时不会因为上一次插补的最终位置和复位时候的位置不一致而导致电机轴位置跳动。本实施例在接收到复位指令之后,先获取伺
服驱动器采集的轴位置数据。
48.s102:将接收到所述复位指令后所述伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据;
49.其中,伺服驱动器可以实时采集电机轴的轴位置数据,插补器可以从伺服驱动器的通信卡中将反馈的轴位置数据读取出来,更新到当前轴位置数据中。若伺服驱动器的参数调节不是最优的,那么伺服驱动器每次读取到的位置数据可能存在变化,这样每次的一点偏差就会由插补器进行插补并通过通信卡下发到伺服驱动中,这样反复执行复位操作的时候,会出现电机轴抖动或者发出异响。为了解决该问题,本实施例提出在执行复位操作的时候,如果存在多次频繁操作复位,那么只响应第一次的复位动作,之后的复位操作仍然执行,但是对于插补器中的复位动作不再执行,这样就能保证其他程序解析器等的复位操作仍然正常执行。
50.本技术可以记录接收到复位指令的时刻,将伺服驱动器反馈的轴位置数据中采集时刻在复位指令接收时刻之后且距离复位指令接收时刻最近的轴位置数据作为电机轴的当前位置数据。上述过程中插补器不会多次获取伺服轴中反馈的轴位置数据,可以避免出现上面所述的因为驱动参数问题,而导致的位置数据不稳定引起的电机轴抖动或者发出异响。
51.s103:利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,并控制所述电机轴执行所述插补数据对应的操作。
52.其中,本实施例在确定电机轴的当前位置数据之后,利用插补器基于电机轴的当前位置数据执行插补操作得到插补数据。在接收到复位指令之前,插补器中存有电机轴的位置数据,为了避免复位过程中电机轴的位置跳动,本实施例在接收到复位指令之后,更新电机轴的位置数据(即,电机轴的当前位置数据)。具体的,根据当前位置数据执行插补操作得到插补数据的过程可以为:根据所述当前位置数据和复位目标位置数据生成复位运动轨迹数据;利用所述插补器对所述复位运动轨迹数据执行插补操作得到所述插补数据。复位目标位置为电机轴执行复位操作后最终停留的位置,根据当前位置数据和复位目标位置数据生成复位运动轨迹数据,通过对复位运动轨迹数据进行插补得到用于控制电机轴运动的插补数据。
53.本实施例在接收到复位指令之后,根据伺服驱动器采集的轴位置数据确定电机轴的当前位置数据。受伺服驱动器的调节参数影响,伺服驱动器每次采集的轴位置数据可能不相同,本实施例仅将接收到复位指令之后伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据,插补器只响应第一次的复位动作,避免了由于电机轴的当前位置数据的反复变化导致的电机轴的抖动现象。可见,本实施例能够避免电机轴在复位操作过程中产生的抖动和异响。在本实施例中若检测到多次频繁操作复位,可以只响应第一次的复位动作,之后的复位操作只是执行复位程序解析器等的相关动作,对于插补器中的复位动作不再执行。在本实施例中插补器可以仅在第一次复位的时候,插补器会去获取伺服轴中反馈的位置数据,并将其更新到当前轴位置,之后的频繁复位就不再去执行该操作,这样就不会出现因为驱动参数调节不合适,而导致不停调用复位函数resetprogram()的时候,伺服电机轴的位置数据不稳定,进而引起电机轴抖动或者发出异响。
54.作为对于图1对应实施例的进一步补充,s103中控制所述电机轴执行所述插补数
据对应的操作,包括:将所述插补数据存储至指令位置缓存中;当接收到通讯卡发送的触发信号时,从所述指令位置缓存中将所述插补数据通过通讯卡下发至所述伺服驱动器,以便所述伺服驱动器控制所述电机轴执行所述插补数据对应的操作。
55.具体的,将所述插补数据存储至指令位置缓存中的过程可以为:将所述插补数据转化为对应的脉冲数据,并将所述脉冲数据存储至所述指令位置缓存中。相应的,还可以从所述指令位置缓存中将所述插补数据对应的脉冲数据通过所述通讯卡下发至所述伺服驱动器。
56.请参见图2、图3和图4,图2为相关技术中调用resetprogram函数实现复位的原理示意图,图3为本技术实施例所提供的调用resetprogram函数实现复位的原理示意图,图4为本技术实施例所提供的复位过程中插补数据生成方法的原理示意图。复位操作可以通过rcs(robot control software)提供的接口函数resetprogram()来实现的,无论是通过示教器的显示界面操作复位图标,或是通过外部控制io来实现复位。该函数中除了要复位插补器,还要对程序解析器做一些复位操作。本实施例在每次操作该函数的时候,添加一个复位调用标志reset_label默认true,如果调用到该函数则将该标志设置成false,然后程序开始的时候,在将该标志设置成true,这样就能保证每次程序开始后,用户在调用复位的时候,插补器的复位操作,一定会被执行一次,然后在频繁多次复位的时候,由于标志已经变成false,那么也就不再响应复位插补的动作。本实施例提出在主动执行复位程序的时候,如果多次频繁操作复位,那么只响应第一次的复位动作,之后的复位操作只是执行复位程序解析器等的相关动作,对于插补器中的复位动作不再执行,这样只有第一次复位的时候,插补器会去获取伺服轴中反馈的位置数据,并将其更新到当前轴位置,之后的频繁复位就不再去执行该操作,这样就不会出现因为驱动参数调节不合适,而导致不停调用复位函数resetprogram()的时候,伺服电机轴的位置数据不稳定,进而引起电机轴抖动或者发出异响。
57.具体的,在利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据之前,将所述插补器的复位调用标志位由第一预设值(如:ture)修改为第二预设值(如:false);其中,当所述复位调用标志位为第二预设值时,所述插补器执行根据所述电机轴的当前位置数据生成所述插补数据的操作,当所述复位调用标志位为第一预设值时,所述插补器忽略所述伺服驱动器采集的轴位置数据(即插补器不执行伺服驱动器采集的轴位置数据对应的操作)。在控制所述电机轴执行所述插补数据对应的操作之后,还可以将所述将插补器的复位调用标志位由所述第二预设值恢复为所述第一预设值。上述实施方式提出机器人控制系统在多次频繁执行复位程序的时候,通过添加复位调用标志位,从而实现不会每次都执行插补复位操作(就是从伺服驱动中读取当时的轴位置数据,然后更新到当前轴位置数据中),而只是在第一次复位程序的时候仅执行一次该操作,可以避免多次执行复位时候,由于驱动参数调节不合适而导致轴位置出现偏差,然后又将该偏差重新通过通信卡下发给伺服驱动器,最终导致轴位置在不停的抖动,并发出吱吱的异响。
58.上述实施例提出在执行复位程序的时候,如果多次频繁操作复位,程序复位流程中的其他复位操作仍然执行,但是对于插补器中则只响应第一次的复位动作,获取伺服轴中反馈的位置数据,并将该数据转换成脉冲数,在通信卡的每个触发信号产生的时候,将该数据下发给伺服和驱动器。这样既保证了出现急停的时候复位程序的需要,也就是经由通
信卡从伺服驱动中重新获取当时轴的位置,更新当前轴位置,这样下次重新开始执行运动的时候,不会因为上一次插补的最终位置和紧急停止时候的位置不一致,进而导致下次启动机器人运动时候,机器人本体轴位置跳动。因为正常程序出现错误,紧急停止的时候复位只需要执行一次复位程序就可以了。如果用户要主动不停的复位程序,那么也只响应第一次的复位动作,之后的复位都可以认为是重复且无效的操作,可以不用响应插补中的复位动作,这样也解决了上面提到的不停复位时候,由于驱动器的参数调节的不合适,而导致的轴抖动或异响。
59.作为对于图1对应实施例的进一步介绍,在控制所述电机轴执行所述插补数据对应的操作的过程中,还可以存在以下操作:若接收到急停指令,则停止所述伺服驱动器对所述电机轴的控制操作并停止所述插补器的插补数据下发操作;利用伺服驱动器采集所述电机轴的急停位置,并根据所述急停位置更新待下发插补数据;若接收到急停恢复指令,则将更新后的待下发插补数据发送至所述伺服驱动器,以便所述伺服驱动器根据更新后的待下发插补数据对所述电机轴执行控制操作。
60.上述实施例在机器人出现告警紧急停止的时候,插补器不会再发当时插补点的位置数据直接返回,如果不从伺服驱动中重新获取轴位置,下次启动时候,当时轴的位置和紧急停止位置不一致,那么就会出现指令位置和本体轴位置差距较大从而引起位置跳动问题。本实施例通过在执行复位程序时从伺服驱动中重新获取当时轴的位置,以便更新当前轴位置,这样下次重新开始执行运动的时候,不会因为上一次插补的最终位置和紧急停止时候的位置不一致,进而导致下次启动机器人运动时候,机器人电机轴位置跳动。
61.请参见图5,图5为本技术实施例所提供的一种电机轴控制系统的结构示意图;
62.该系统可以包括:
63.轴位置数据采集模块100,用于若接收到复位指令,则利用伺服驱动器采集轴位置数据;
64.当前位置数据确定模块200,用于将接收到所述复位指令后所述伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据;
65.插补控制模块300,用于利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据,并控制所述电机轴执行所述插补数据对应的操作。
66.本实施例在接收到复位指令之后,根据伺服驱动器采集的轴位置数据确定电机轴的当前位置数据。受伺服驱动器的调节参数影响,伺服驱动器每次采集的轴位置数据可能不相同,本实施例仅将接收到复位指令之后伺服驱动器首次采集的轴位置数据作为电机轴的当前位置数据,插补器只响应第一次的复位动作,避免了由于电机轴的当前位置数据的反复变化导致的电机轴的抖动现象。可见,本实施例能够避免电机轴在复位操作过程中产生的抖动和异响。
67.进一步的,插补控制模块300包括:
68.缓存单元,用于将所述插补数据存储至指令位置缓存中;
69.数据下发单元,用于当接收到通讯卡发送的触发信号时,从所述指令位置缓存中将所述插补数据通过通讯卡下发至所述伺服驱动器,以便所述伺服驱动器控制所述电机轴执行所述插补数据对应的操作。
70.进一步的,缓存单元具体为用于将所述插补数据转化为对应的脉冲数据,并将所
述脉冲数据存储至所述指令位置缓存中的单元;
71.数据下发单元具体为用于从所述指令位置缓存中将所述插补数据对应的脉冲数据通过所述通讯卡下发至所述伺服驱动器的单元。
72.进一步的,插补控制模块300用于根据所述当前位置数据和复位目标位置数据生成复位运动轨迹数据;还用于利用所述插补器对所述复位运动轨迹数据执行插补操作得到所述插补数据。
73.进一步的,还包括:
74.标志位设置模块,用于在利用所述插补器根据所述电机轴的当前位置数据执行插补操作得到插补数据之前,将所述插补器的复位调用标志位由第一预设值修改为第二预设值;其中,当所述复位调用标志位为第二预设值时,所述插补器执行根据所述电机轴的当前位置数据生成所述插补数据的操作,当所述复位调用标志位为第一预设值时,所述插补器忽略所述伺服驱动器采集的轴位置数据;还用于在控制所述电机轴执行所述插补数据对应的操作之后,
75.将所述将插补器的复位调用标志位由所述第二预设值恢复为所述第一预设值。
76.进一步的,还包括:
77.急停控制模块,用于若接收到急停指令,则停止所述伺服驱动器对所述电机轴的控制操作并停止所述插补器的插补数据下发操作;还用于利用伺服驱动器采集所述电机轴的急停位置,并根据所述急停位置更新待下发插补数据;还用于若接收到急停恢复指令,则将更新后的待下发插补数据发送至所述伺服驱动器,以便所述伺服驱动器根据更新后的待下发插补数据对所述电机轴执行控制操作。
78.由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
79.本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
80.本技术还提供了一种机器人,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述机器人还可以包括各种网络接口,电源等组件。
81.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
82.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
转载请注明原文地址:https://win.8miu.com/read-1058673.html

最新回复(0)