执行器电机端的位置确定方法、装置、设备及存储介质与流程

文档序号:29621511发布日期:2022-04-13 13:26阅读:158来源:国知局
执行器电机端的位置确定方法、装置、设备及存储介质与流程

1.本发明实施例涉及机器人技术领域,特别涉及一种执行器电机端的位置确定方法、装置、设备及存储介质。


背景技术:

2.机器人、机械臂等在执行任务时,通常需要依赖执行器的位置进行控制,以便能够根据初始位置状态进行运动规划、根据运行位置在运行过程确定进行反馈控制、根据运行位置确定任务执行情况等。通常情况下,执行器输出端运动是执行器电机端带动的,即执行器电机端产生的动力经由减速箱输出到执行器输出端,带动执行器输出端运动,因此,为了确定执行器输出端的位置,通常是在执行器电机端上设置位置传感器,得到执行器电机端的位置,以根据执行器电机端位置确定执行器输出端的位置。
3.然而,位置传感器可能会出现掉电的情况,在掉电情况下,位置传感器无法对执行器电机端的运动进行记录,一旦执行器电机端的位置在掉电时发生变化,重新上电后,就会基于与实际位置之间存在偏差的掉电前的位置进行控制,这个位置偏差会导致控制出差,如任务失败、甚至是带来经济、人身上的伤害。


技术实现要素:

4.本发明实施例的目的在于提供一种执行器电机端的位置确定方法、装置、设备及存储介质,使得即使掉电后执行器电机端位置发生变动,仍然能够准确地确定出执行器电机端位置,从而能够确定处执行器输出端的位置,避免位置丢失。
5.为达到上述目的,本发明的实施例提供了一种执行器电机端的位置确定方法,所述执行器电机端上设置有电机编码器,由所述执行器电机端带动运动的执行器输出端上设置有输出端编码器,所述方法包括:获取所述输出端编码器记录的第一位置数据和所述电机编码器记录的第二位置数据;根据所述第二位置数据对所述第一位置数据进行校准,得到第三位置数据;根据所述第二位置数据和所述第三位置数据确定所述执行器电机端的多圈位置。
6.为达到上述目的,本发明的实施例还提供了一种执行器电机端的位置确定装置,包括:获取模块,用于获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据,其中,所述电机编码器设置于执行器电机端上,所述输出端编码器设置于由所述执行器电机端带动运动的执行器输出端上;校准模块,用于根据所述第二位置数据对所述第一位置数据进行校准,得到第三位置数据;计算模块,用于根据所述第二位置数据和所述第三位置数据确定所述执行器电机端的多圈位置。
7.为达到上述目的,本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的执行器电机端的位置确定方法。
8.为达到上述目的,本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的执行器电机端的位置确定方法。
9.本发明实施例提供的执行器电机端的位置确定方法,设置两个编码器分别测量执行器电机端和执行器输出端的位置,由于执行器输出端是由执行器电机端带动运动的,因此,执行器电机端的位置和执行器输出端的位置之间存在某种关联关系,即执行器电机端上设置的电机编码器记录的位置数据和执行器输出端上设置的输出端编码器记录的位置数据之间也存在该关联关系,从而当输出端编码器记录的位置由于掉电导致不准确的情况下,能够根据获取到的电机编码器记录的第二位置数据校准输出端编码器记录的第一位置数据,得到第三位置数据,从而根据校准得到的第三位置数据可以反算出执行器电机端的多圈位置。并且考虑到执行器输出端通常是通过减速器与执行器电机端连接,因此,执行器输出端的位置能够反映执行器电机端的多圈位置,但是反算出的位置不满一圈时可能会不太准确,因此,在反算时还引入第二位置数据,进一步提高反算出的多圈位置的准确性。
附图说明
10.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
11.图1是本发明一实施例中提供的执行器电机端的位置确定方法的流程图;
12.图2是本发明另一实施例中提供的执行器电机端的位置确定装置的流程图;
13.图3是本发明另一实施例中提供的电子设备的结构示意图。
具体实施方式
14.由背景技术可知,执行器中设置的位置传感器会由于掉电导致位置偏差,进而引起控制错误。
15.为解决上述问题,本发明实施例提供了一种执行器的位置确定方法,所述执行器输出端上设置有输出端编码器,带动所述执行器输出端运动的执行器电机端上设置有电机编码器,所述方法包括:获取所述输出端编码器记录的第一位置数据和所述电机编码器记录的第二位置数据;根据所述第二位置数据对所述第一位置数据进行校准,得到第三位置数据;根据所述第二位置数据和所述第三位置数据确定所述执行器电机端的多圈位置。
16.本发明实施例提供的执行器电机端的位置确定方法,设置两个编码器分别测量执行器电机端和执行器输出端位置,由于执行器输出端是由执行器电机端带动运动的,因此,执行器电机端的位置和执行器输出端的位置之间存在某种关联关系,即执行器电机端上设置的电机编码器记录的位置数据和执行器输出端上设置的输出端编码器记录的位置数据之间也存在该关联关系,从而当输出端编码器记录的位置由于掉电导致不准确的情况下,能够根据获取到的电机编码器记录的第二位置数据校准输出端编码器记录的第一位置数据,得到第三位置数据,从而根据校准得到的第三位置数据可以反算出执行器电机端的多圈位置。并且考虑到执行器输出端通常是通过减速器与执行器电机端连接,因此,执行器输出端的位置能够反映执行器电机端的多圈位置,但是反算出的位置不满一圈时可能会不太
准确,因此,在反算时还引入第二位置数据,进一步提高反算出的多圈位置的准确性。
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本发明所要求保护的技术方案。
18.以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
19.本发明实施例一方面提供了一种执行器的位置确定方法,应用于机器人、机械臂等具有执行器的设备上,且执行器输出端上设置有输出端编码器,执行器电机端设置有电机编码器。需要说明的是,输出端编码器和执行器电机端编码器可以是磁电式编码器,还可以是光电式编码器,如磁性编码器等,输出端编码器和执行器电机端编码器可以相同,也可以不同,本实施例不对输出端编码器和执行器电机端编码器进行限定。执行器的位置确定方法的具体流程如图1所示。
20.步骤101,获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据。
21.可以理解的是,输出端编码器和电机编码器记录的位置之间存在的关联关系是指同一时刻记录的数据之间的关联关系,而不是任一时刻的输出端编码器记录的位置和任一时刻的电机编码器记录的位置之间的,因此,获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据应该是同时获取的。
22.还可以理解的是,为了避免可能出现的位置偏差问题,应该在开始控制之前执行获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据的步骤,以避免出现问题。
23.在一个例子中,获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据,可以通过如下方式实现:在执行器输出端启动后,执行器电机端运动使能前,同时获取第一位置数据和第二位置数据。需要说明的是,在执行器输出端启动后,执行器电机端运动使能前,相当于在启动之后编码器记录的数据发生变化之前。特别地,若是步骤103也在执行器输出端启动后,执行器电机端运动使能前执行,则相当于每次被控制开始运动之前,都得到更加准确的执行器电机端位置,即进行位置校正。
24.需要说明的是,执行器电机端作为电机驱动速度和位置控制的数据反馈,采样频率要远高于速度环和位置环的调制频率,否则,电机编码器采集的数据可能根本无法准确地反映位置变化。
25.步骤102,根据第二位置数据对第一位置数据进行校准,得到第三位置数据。
26.可以理解的是,由于执行器输出端是由执行器电机端带动运动的,因此,执行器电机端的位置和执行器输出端的位置之间存在某种关联关系,即执行器电机端上设置的电机编码器记录的位置数据和执行器输出端上设置的输出端编码器的读数之间也存在该关联关系,该关联关系可以用于指示输出端编码器读数的变化值与电机编码器读数的变化值之间的比例关系。进一步地说,执行器电机端通过一个减速器与执行器输出端连接,也就是,正常情况下,执行器电机端的转动位置和执行器输出端之间的转动位置遵从如下表达式:k+a=b*c,其中,k为正整数,表示圈数,a为执行器电机端的多圈位置,b为执行器输出端的多
圈位置,c为减速器的标称的减速比,即执行器电机端和执行器输出端之间的减速比。而在位置出现错误的情况下,k+a'=b'*c+θ,其中,k为正整数,a'为输出端编码器记录的第一位置参数,b'为电机编码器记录的第二位置参数,c为执行器电机端和执行器输出端之间的减速比,θ为输出端编码器和执行器输出端实际转动位置之间的偏差。进而基于上述表达式可以实现数据校准。特别地,当θ=0时,表达式k+a'=b'*c+θ会退化成k+a=b*c,因此,每次执行步骤102进行第一位置数据校准时,可以直接使用a'=b'*c+θ实现,以确定出θ并根据θ完成校准。
27.可以理解的是,k是根据上述表达式中等号右边的值相应确定出来的,例如,在b=0.725圈,c=20的情况下,此时,b*c=14.5圈,则a应该是0.5圈,这是由编码器自身实际只能记录单圈位置的特性决定的,k=14圈;在b=0.825圈,c=40的情况下,此时,b*c=33圈,则a应该是0圈,k=33。
28.考虑到不同情况下,减速器标称的减速比通常各不相同,因此,在一个例子中,根据第二位置数据对第一位置数据进行校准,得到第三位置数据之前,执行器的位置确定方法还包括:根据执行器电机端相对于执行器输出端的减速比,确定位于执行器电机端的编码器和位于执行器输出端的编码器记录的位置数据之间的关联关系;即确定出上述表达式k+a'=b'*c+θ中c的取值。此时,根据第二位置数据对第一位置数据进行校准,得到第三位置数据,可以通过如下方式实现:根据关联关系和第二位置数据对第一位置数据进行校准,得到第三位置数据。
29.需要说明的是,上述说明均是以执行器电机端和执行器输出端之间的减速比为电机标称的减速比为例的,实际上还可以通过实际测量的方式确定,因此,在执行器输出端所在设备,或者,执行器输出端和执行器电机端等装配完成后,使其处于空载状态,先根据电机d轴校准得到电机编码器的零位后,完成电机闭环控制后,以电机减速比为参考,控制执行器电机端带动执行器输出端不断运动,通过不断测量标定出执行器电机端编码器每一圈对应输出端编码器的值。例如,控制执行器电机端不断运动,确定出执行器输出端实现转动一圈时执行器电机端转动的圈数,从而确定出减速比;或者,控制执行器电机端不断运动,确定出执行器输出端实现转动n(n为大于2的正整数)圈时执行器电机端转动的圈数,通过平均的方式,确定出减速比;或者,控制执行器电机端不断转动,确定出执行器输出端实现转动1,
……
,n(n为大于2的正整数)圈时执行器电机端转动的圈数,通过统计等方式,确定出减速比等。
30.进一步地,考虑到在执行器电机端带动执行器输出端运动时,可能存在抖动等干扰,以及执行器输出端为了保证中空走线,执行器输出端磁铁在一些执行器输出端中无法对中,还有一些类型的执行器输出端中还会进行偏置,从而导致执行器输出端数据不线性,因此,执行器电机端每运行一圈对应的执行器输出端的运行位置可能会存在差别,进而,根据第二位置数据对第一位置数据进行校准,得到第三位置数据之前,执行器电机端的位置确定方法还包括:多次获取执行器电机端通过机械零度时执行器电机端的运行位置;此时,根据执行器电机端相对于执行器输出端的减速比,确定位于执行器电机端的编码器和位于执行器输出端的编码器记录的位置数据之间的关联关系之后,执行器电机端的位置确定方法还包括:根据获取的若干运行位置更新关联关系;根据关联关系和第二位置数据对第一位置数据进行校准,得到第三位置数据,可以通过如下方式实现:根据更新后的关联关系和
第二位置数据对第一位置数据进行校准,得到第三位置数据。
31.需要说明的是,多次获取执行器电机端通过机械零度时执行器电机端的运行位置可以通过如下方式实现:在执行器电机端编码器运动到任何一圈的电机机械角度的零度后,进行大电流的锁轴动作。这样能够确保电机机械角度零度对应的执行器输出端角度足够稳定后,然后,多次采用滤波取均值。
32.在另一个例子中,根据关联关系和第二位置数据对第一位置数据进行校准,得到第三位置数据,可以通过如下方式实现:根据关联关系和第二位置数据确定执行器电机端指示的执行器输出端的参考位置,即通过如下表达式确定出参考位置:d=e*c+k,其中,d为参考位置,e为第二位置数据,c为执行器电机端和执行器输出端之间的减速比,k为任一正整数;根据执行器输出端的系统偏差和参考位置校准第一位置数据,得到第三位置数据。
33.需要说明的是,由于编码器的读数存在数据死区,因此,当输出端编码器的数据落在了第n圈和第n圈的边界位置,需要结合执行器电机端编码器数据进行判断。例如当输出端编码器读值为100时,可能由于系统偏差的存在,如输出端编码器的系统偏差为1的情况下,其真实的读值可能是99或者101,为此需要结合电机编码器记录的位置数据进行判断,电机编码器代表的一圈以内的数据,如果根据电机编码器的读数推算出执行器输出端未满一圈的那部分读数应该为0.9圈,那么执行器输出端的运动圈数应该为9.9圈,如果根据电机编码器的读数推算出执行器输出端未满一圈的那部分读数应该为0.1圈,那么执行器输出端的运动圈数应该为10.1。当然,不会认定执行器输出端的位置数据为10.9或者9.1,虽然小数位对上了,但是数据调整过大。其中,当确定读数是否位于边界位置,其实现方式是:根据实际测试结果,需要设定一个基于当前执行器输出端读值的阈值作为是否需要做边界判断的依据,例如,设定执行器输出端读值处于该圈的a%或者(1-a%)时认定落在了边界位置,此时,需要按照如上所述的方式在确定真实数据时考虑系统偏差和数据死区的影响。特别地,读数未落于边界位置时,显然,不需要与落于边界位置一样,反推数据是否正确,因此,可直接使用读数。
34.由此不难看出,步骤102实际是通过电机编码器对应的读数(即记录的执行器电机端的多圈位置)对输出端编码器的读数(即记录的执行器输出端的多圈位置)进行校准,以便后续能够根据准确的输出端编码器读数反算出电机端编码的多圈圈数。
35.需要说明的是,由于数据的非线性,执行器任意相邻两圈的差值不一定,因此,在考虑数据死区的问题时,还可以根据执行器输出端转动一周的过程中,执行器电机端所在圈数的不同,相应地确定出执行器输出端受到落于边界位置的影响下的准确位置,此处就不再一一赘述了。
36.步骤103,根据第二位置数据和第三位置数据确定执行器电机端的多圈位置。
37.本实施例中,根据第二位置数据和第三位置数据确定执行器电机端的多圈位置,可以通过如下方式实现:根据第二位置数据、第三位置数据和预设的位置约束关系确定执行器电机端的多圈位置,位置约束关系为如下表达式:
38.s=[x*α]+β,
[0039]
其中,s为执行器电机端的多圈位置,x为第三位置数据,α为执行器输出端与执行器电机端之间的减速比,[x*α]为对x*α进行取整的结果,β为第二位置数据。
[0040]
也就是说,最终得到的执行器电机端的多圈位置是由输出端编码器的读数(即记
录的执行器输出端的多圈位置)反算的记录的执行器输出端的多圈位置的整数部分,而执行器输出端的多圈位置的非整数部分通过电机编码器的读数确定的。即通过输出端编码器得到执行器电机端的多圈位置中的整圈数,而执行器电机端得到自身单圈的精确位置,从而结合得到实际位置。
[0041]
需要说明的是,本实施例中是考虑到,虽然根据校准后的反映执行器输出端位置的第三位置数据能够反推出执行器电机端的多圈位置,但是由于抖动、计算误差、系统误差等因素的影响,对执行器电机端未转满一圈的部分,利用执行器输出端的位置反推实际是不太准确的,因此,对于执行器输出端位置反推出来的执行器电机端的位置数据,只取其整数部分,即只使用执行器输出端所反映的执行器电机端转动的完整圈数,未满一圈的部分使用更加准确的执行器电机端的数据。显然,在其他实施例中实际也可以使用根据执行器输出端反推出来的执行器电机端的多圈位置,而不是用电机编码器记录的第二位置数据也可,只要满足相应的控制精度要求即可,此处就不再一一赘述了。
[0042]
特别地,输出端编码器满足如下精度条件:10n/(m*x)》3,其中,10n为输出端编码器的精度,m为执行器输出端与执行器电机端之间的减速比,x为根据输出端编码器的误差确定出来的数据死区。
[0043]
需要说明的是,在控制执行器输出端的控制精度要求不高的情况下,可以通过上述精度条件确定设置于执行器输出端上的编码器。但是若是精度要求较高时,由于实际生产和加工的带来的误差需要更大的余量,因此,可以选择精度更高的编码器,以得到更加准确的执行器电机端位置,从而实现准确控制。
[0044]
值得一提的是,利用两个分别位于执行器输出端和执行器电机端的编码器互相配合,执行器输出端上采用的编码器精度可以不太高,因为即使输出端编码器的精度不太高,使用电机编码器记录的数据进行校准就能够得到比较准确的数据。进而精度要求不高的情况下,编码器的结构就可以相应不那么复杂,器体积相应也可以缩小,即在执行器输出端上设置的编码器可以是一颗小体积低精度的编码器,此时,仍然能够实现确定出准确的执行器电机端位置从而在上电后能够实现精确的位置控制。
[0045]
由此不难看出,本实施例提供的执行器电机端的位置确定方法一方面通过输出端编码器的读数(即记录的执行器输出端的多圈位置)得到电机编码器对应的读数(即记录的执行器电机端的多圈位置),以实现对电机编码器读数的校准,另一方面,基于执行器电机端得到自身单圈的精确位置,从而结合上述两方面的结果得到准确真实的执行器电机端位置。
[0046]
此外,相对于目前常用的两个解决掉电带来的位置偏差的技术方案——在设置位置传感器的基础上,还设置有行程开关,以使得执行器输出端每次上电后都能够自动归零,然后再从零点开始重新进行运动和工作,上电后的位置不受掉电带来位置偏差的影响;以及,在设置位置传感器的基础上,还在驱动板内部增加一个低功耗芯片和纽扣电池,一旦主供电切断,就切换到低功耗芯片通过电池供电,来进行掉电后的位置变动记录。本实施例提供的执行器电机端的位置确定方法,不会出现由于每次上电都要回到固定位置,因此需要整机结构配合做一些定制化的工作,使用场景受限的问题;也不会出现由于低功耗芯片长时间关机电池会过放,导致低功耗芯片停止工作丢位置、维护不便的问题。
[0047]
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者
对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
[0048]
本发明实施例另一方面还提供了一种执行器的位置确定装置,如图2所示,包括:
[0049]
获取模块201,用于获取输出端编码器记录的第一位置数据和电机编码器记录的第二位置数据,其中,输出端编码器设置于执行器输出端上,电机编码器设置于带动执行器输出端运动的执行器电机端上。
[0050]
校准模块202,用于根据第二位置数据对第一位置数据进行校准,得到第三位置数据。
[0051]
计算模块203,用于根据第二位置数据和第三位置数据确定执行器电机端的多圈位置。
[0052]
不难发现,本实施例为与方法实施例相对应的装置实施例,本实施例可与方法实施例互相配合实施。方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在方法实施例中。
[0053]
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
[0054]
本发明实施例另一方面还提供了一种电子设备,如图3所示,包括:至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够执行上述任一方法实施例所描述的执行器的位置确定方法。
[0055]
其中,存储器302和处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传输给处理器301。
[0056]
处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器302可以被用于存储处理器301在执行操作时所使用的数据。
[0057]
本发明实施方式另一方面还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
[0058]
即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程
序代码的介质。
[0059]
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1