一种舵机转子的回零方法、回零系统、舵机及机器人
技术领域
本发明属于自动控制技术领域,尤其涉及一种舵机转子的回零方法、回零系统、舵机及机器人。
背景技术
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机被广泛应用于机器人各类关节运动中。
单圈编码器和多圈编码器都是指绝对式编码器,绝对式编码器可以在任何时刻,尤其是在刚上电的时刻,就能感知当前的绝对角位置。单圈编码器只可以感知一圈之内的绝对角位置;多圈编码器不仅可以感知一圈之内的绝对角位置,而且可以感知编码器转过的圈数。
现有技术中,在舵机的电机输出端设置单圈编码器,用于测量电机输出轴的转动速度和电机转子的实时位置等,但是,当舵机系统中没有抱闸装置时,舵机接收到停止指令时,由于重力作用,机械臂会出现摆动而脱离原来的位置,由于当机械臂摆过一定角度,舵机转子的转动角度会超过360度,当再次启动舵机时,由于在电机输出端设置的是单圈编码器,则无法实现舵机转子的精确回零,然而,若通过多圈编码器来实现舵机转子的精确回零,则会导致成本较高。
因此,传统的技术方案中存在无法实现舵机转子精确回零的问题。
发明内容
有鉴于此,本发明实施例提供了一种舵机转子的回零方法、回零系统、舵机及机器人,以解决传统的技术方案中无法实现舵机转子精确回零的问题。
本发明实施例的第一方面提供了一种舵机转子的回零方法,所述舵机包括电机、与所述电机输出轴连接的减速器、与所述电机输出轴连接的第一编码器、与所述减速器输出轴连接的第二编码器以及存储器;所述第一编码器与所述第二编码器为单圈编码器;所述回零方法包括:
向所述电机输出启动指令,所述启动指令包括回零指令;
读取所述电机输出轴的零点位置w1和所述减速器输出轴的零点位置w2;
通过所述第二编码器检测所述减速器输出轴的当前位置w4;
比较所述w2和所述w4的大小;
若所述w2与所述w4不相等,则驱动所述电机输出轴回转直至所述w2等于所述w4;
通过所述第一编码器检测所述电机输出轴的当前位置w3;
比较所述w1和所述w3的大小;
若所述w1与所述w3不相等,则驱动所述电机输出轴回转直至所述w1等于所述w3。
在一种可选的方式中,所述驱动所述电机输出轴回转一直到所述w2等于所述w4的步骤包括:
向所述电机输出PWM电机控制指令;
所述电机接收所述控制指令运转以带动所述减速器输出轴回转直至所述w2等于所述w4。
在一种可选的方式中,所述若所述w1与所述w3不相等,则驱动所述电机输出轴回转一直到所述w1等于所述w3的步骤,包括:
计算所述w3与所述w1的偏差ε;
驱动所述电机输出轴回转直至所述偏差ε小于预设值。
在一种可选的方式中,所述预设值的取值范围为0.01°~0.1°。
本发明的第二方面提供了一种舵机转子的回零系统,所述舵机包括电机、与所述电机输出轴连接的减速器、与所述电机输出轴连接的第一编码器、与所述减速器输出轴连接的第二编码器以及存储器;所述第一编码器与所述第二编码器为单圈编码器;所述系统包括:
启动单元,用于向所述电机输出启动指令,所述启动指令包括回零指令;
零点获取单元,用于读取所述电机输出轴的预设零点位置w1和所述减速器输出轴的预设零点位置w2;
第一检测单元,用于通过所述第二编码器检测所述减速器输出轴的当前位置w4;
第一比较单元,用于比较所述w2和所述w4的大小;
第一驱动单元,用于若所述w2与所述w4不相等,则驱动所述电机输出轴回转直至所述w2等于所述w4;
第二检测单元,用于通过所述第一编码器检测所述电机输出轴的当前位置w3;
第二比较单元,用于比较所述w1和所述w3的大小;第二驱动单元,用于若所述w1与所述w3不相等,则驱动所述电机输出轴回转直至所述w1等于所述w3。
在一种可选的方式中,所述第一驱动单元包括:
指令发生模块,用于向所述电机输出PWM电机控制指令;
第一驱动模块,用于接收所述控制指令运转以驱动所述电机带动所述减速器输出轴回转直至所述w2等于所述w4。
在一种可选的方式中,所述第二驱动单元包括:
偏差计算模块,用于计算所述w3与所述w1的偏差ε;
第二驱动模块,用于驱动所述电机输出轴回转直至所述偏差ε小于预设值。
本发明的第三方面提供了一种舵机,包括
电机,用于接收启动指令,所述启动指令包括回零指令,并根据所述回零指令控制所述电机输出轴回零;
减速器,与所述电机输出轴连接,用于将所述电机的高转速输出转化为低转速输出;
第一编码器,与所述电机输出轴连接,用于检测所述电机输出轴的当前位置w3,所述第一编码器为单圈编码器;
第二编码器,与所述减速器输出轴连接,用于检测所述减速器输出轴的当前位置w4,所述第二编码器为单圈编码器;以及
电机控制器,与所述电机、所述第一编码器及所述第二编码器连接,用于输出所述启动指令,读取所述电机输出轴的预设零点位置w1和所述减速器输出轴的预设零点位置w2,比较所述w2和所述w4的大小,若所述w2与所述w4不相等,则驱动所述电机输出轴回转直至所述w2等于所述w4,比较所述w1和所述w3的大小,若所述w1与所述w3不相等,则驱动所述电机输出轴回转直至所述w1等于所述w3。
本发明的第四方面提供了一种机器人,所述机器人包括上述的舵机。
本发明在舵机启动时,先将减速器输出轴的当前位置与预设的减速器输出轴的零点位置进行比较,并驱动电机输出轴带动减速器输出轴运转使减速器输出轴到达零点位置,实现粗调,然后,将电机输出轴的当前位置与预设的电机输出轴的零点位置进行比较,并驱动电机输出轴回转至零点位置,从而实现舵机转子的精确回零。
附图说明
图1为本发明实施例舵机的结构图。
图2为本发明一实施例一种舵机转子的回零方法的方法流程示意图。
图3为本发明另一实施例一种舵机转子的回零方法的方法流程示意图。
图4为图2或图3所示本发明实施例一种舵机转子的回零方法的步骤S80的具体方法流程示意图。
图5为本发明实施例一种舵机转子的回零系统的系统结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明实施例中的舵机的结构图,所述舵机包括电机100、与所述电机100输出轴连接的减速器200、与所述电机100输出轴连接的第一编码器300、与所述减速器200输出轴连接的第二编码器400以及电机控制器500,电机控制器500包括存储器(未图示)。
请参阅图1和图2,本发明实施例中的舵机转子的回零方法包括:
步骤S10:向所述电机100输出启动指令,所述启动指令包括回零指令。
在本发明实施例中,为了更加清楚地描述本发明实施例提供的舵机转子的回零方法,下面首先对本发明实施例中涉及到的舵机作出解释,舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统,目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。所述舵机包括电机100、与所述电机100输出轴连接的减速器200、与所述电机100输出轴连接的第一编码器300、与所述减速器200输出轴连接的第二编码器400以及电机控制器500,所述电机控制器500包括存储器,所述第一编码器300与所述第二编码器400为单圈编码器。舵机转子指的是电机输出轴。
在本发明实施例中,在停止状态时,舵机的减速器200输出轴由于重力作用,会发生偏转,从而脱离原来的位置,而舵机的减速器200输出轴与电机输出轴存在一个减速比N,减速比N的大小通常为200至400间的取值,这样,当减速器200输出轴由于重力发生偏转时,减速器200输出轴仅仅偏转一个小小的角度,而电机输出轴的偏转角度为减速器200输出轴的偏转角度的N倍,使得电机输出轴在舵机停止时的偏转角度通常会超过360度,在这样的前提下,为了能够保证舵机转子位置编码的唯一性,在传统的技术方案中,主要通过两种方式来实现:
第一,通过设置抱闸装置来实现;抱闸装置在电机100处于断电状态时,限制电机100输出轴的转动,当电机处于通电状态时,解除对电机100输出轴的转动的限制,这样,在电机100接收停止指令后,电机100输出轴被抱闸装置固定,从而不会发生偏转,而电机100输出轴与减速器200输出轴是联动装置,减速器200输出轴偏转会带动电机100输出轴偏转,而电机100输出轴不发生偏转,减速器200输出轴也不会发生偏转,从而保证了下次启动时,舵机转子位置编码的唯一性,但有时在系统选型时,没有合适的抱闸装置,且抱闸装置需要对舵机的结构做出改变,在舵机中设置限位件、卡合部、锁位结构等,对结构的改变比较复杂。
第二,通过在电机100输出端设置多圈编码器来实现;多圈编码器不仅可以检测电机100输出轴当前的绝对位置,还可以记录电机100输出轴转动的圈数,这样当启动时,只需回转相应的圈数和角度,就可以使电机100输出轴回到上次停止时的位置,回到零点时的位置,从而实现位置编码的唯一性,实现舵机转子的精确回零,而多圈编码器的成本相较于单圈编码器的成本却高得多,多圈编码器的成本是单圈编码器的数十倍。
而在本发明实施例中,通过在原有的舵机结构的基础上,在减速器200的输出端设置一个单圈编码器,即可实现位置编码的唯一性,实现舵机转子的精确回零。
当需要启动舵机时,舵机的控制器发出启动指令,由于位置编码的唯一性,当我们需要舵机运动到某个具体的位置时,我们需要先将其回到一个预设的位置,而该预设位置我们将其取为零点位置,然后以该预设零点位置为基点,通过程序控制舵机的位置。因此,控制器输出的启动指令中还包括回零指令,控制舵机转子先回到预设的零点位置,然后通过用户输出的操作指令来进行进一步的,例如向左移动或向右移动等的操作。
步骤S20:读取所述电机100输出轴的预设零点位置w1和所述减速器200输出轴的预设零点位置w2。
在本发明实施例中,电机100接收启动指令后,我们需要控制舵机转子回到预设的零点位置,因此,我们需要先读取存储器中所存储的电机100输出轴的预设零点位置w1和减速器200输出轴的预设零点位置w2,所述w1和w2为预设的零点位置,预先设置并保存在存储器中,用户也可以在舵机停止运动时修改该存储器中预设的零点位置,之所以要读取预设的零点位置w1和w2,是因为要将其作为基准位置与后面的检测到的电机100输出轴的当前位置w3和减速器200输出轴的当前位置w4进行比较,电机100输出轴的预设零点位置w1可能与舵机上一次停止时的电机100输出轴的位置相同,也可能不同。
步骤S30:通过所述第二编码器400检测所述减速器200输出轴的当前位置w4。
在本发明实施例中,第二编码器400设置在减速器200的输出端,与减速器200输出轴连接,用来检测减速器200输出轴的当前位置,第二编码器400为单圈编码器,出于成本的考虑,优选地,该单圈编码器可以选用精度较低的12位分辨率绝对值编码器,它的最低分辨为360度/4096=0.087890625。在本发明实施例中,第二编码器400也可以选择其他精度的单圈编码器,本实施例不做限定。
步骤S40:比较所述w2和所述w4的大小。
在本发明实施例中,在检测到减速器200输出轴的当前位置w4之后,则将该位置w4与减速器200输出轴的预设零点位置w2进行比较,可以通过比较电路比较,例如,通过比较器比较w2和w4的模拟信号大小,也可采用通过数字信号的方式比较,并输出比较结果。
步骤S50:若所述w2与所述w4不相等,则驱动所述电机100输出轴回转直至所述w2等于所述w4。
在本发明实施例中,若w2与w4不相等,则驱动电机100输出轴回转,电机100输出轴的回转会带动减速器200输出轴回转,使用电机减速器输出端位置环调节,使减速器输出端重新等于w2,实现粗调。之所以先比较w2与w4的大小,是因为,减速器200输出轴和电机100输出轴存在一个减速比N,电机100输出轴的转动角度是减速器200输出轴的N倍,由于电机输出端设置的为单圈编码器,即使我们将电机100输出轴调节回转到预设零点位置,由于预设零点位置为绝对位置,我们无法保证当电机100输出轴回转到预设零点位置时,减速器200输出轴也能回到预设零点位置。电机100输出轴的零点位置对应着减速器200输出轴的多个位置,而多个位置中存在一个位置为减速器200输出轴的预设零点位置。因此,我们必须先保证减速器200输出轴回到预设零点位置w1,然后再控制电机100输出轴回到预设零点位置w2。
步骤S60:通过所述第一编码器300检测所述电机100输出轴的当前位置w3。
在本发明实施例中,第一编码器300设置在电机的输出端,与电机100输出轴连接,用来检测电机100输出轴的当前位置,第一编码器300为单圈编码器,出于成本的考虑,优选地,该单圈编码器可以选用精度较低的12位分辨率绝对值编码器,它的最低分辨为360度/4096=0.087890625。在本发明实施例中,第一编码器300也可以选择其他精度的单圈编码器,本实施例不做限定。
步骤S70:比较所述w1和所述w3的大小。
在本发明实施例中,在检测到电机100输出轴的当前位置w3之后,则将该位置w3与电机100输出轴的预设零点位置w1进行比较,可以通过比较电路比较,例如,通过比较器比较w1和w3的大小,也可采用通过程序的方式比较,并输出比较结果。
步骤S80:若所述w1与所述w3不相等,则驱动所述电机100输出轴回转直至所述w1等于所述w3。
在本发明实施例中,若w1与w3不相等,则驱动电机100输出轴回转,电机100输出轴的回转会带动减速器200输出轴回转,使用电机端位置作为位置环输入,实现精细调节,使电机端重新回到w1。之所以在使得减速器200输出轴到达预设零点位置之后还要比较w1与w3的大小,并驱动电机100输出轴回转使w3等于w1,是因为,减速器200输出轴和电机100输出轴存在一个减速比N,电机100输出轴的转动角度是减速器200输出轴的N倍,这就导致即使减速器200输出轴的检测结果是,减速器200输出轴的当前位置是预设零点位置w2,但是由于单圈编码器的精度的存在,例如,使用精度为12位的单圈编码器,则当减速器200输出轴处于预设零点位置w2时,电机100输出轴的当前位置w3与电机100输出轴的预设零点位置w1还可能存在0.087890625*N的角度误差,N为减速比,这个角度误差可以达到几十度,因此,我们还需要在减速器200输出轴处于预设零点位置w2后,再调节电机100输出轴的位置,使其到达预设零点位置w1,实现舵机转子回零的精确调节。
请参阅图1和图3,在更具体的实施方式中,步骤S50:驱动所述电机100输出轴回转一直到所述w2等于所述w4的步骤包括:
步骤S501:向所述电机输出PWM(Pulse Width Modulation,脉宽调制)电机控制指令;
在本发明实施例中,控制指令为周期为1ms的位置指令,传输到MCU之后,经过运算转化为功率开关管的占空比信号,在本发明实施例中,PWM电机控制指令是频率为16K的高低电平信号,MCU输出的占空比信号决定了高低电平时间的比值,所以可以形成不同的控制电压,从而驱动电机100的转速发生变化。
步骤S502:所述电机接收所述控制指令运转以带动所述减速器200输出轴回转直至所述w2等于所述w4。
在本发明实施例中,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。电机100接收控制指令后转动,并且带动减速器200的输出轴回转,直到w2等于w4。
请参阅图1和图4,在更具体的实施方式中,所述步骤S80,包括:
步骤S801:计算所述w3与所述w1的偏差ε;
在本发明实施例中,若所述w1与所述w3不相等,则驱动所述电机100输出轴回转,并通过第一编码器300实时检测电机100输出轴的当前位置w3,并将当前位置w3与电机100输出轴的预设零点位置w1比较,计算w3与w1的偏差ε,通过位置环自动控制w1与w3相等。
步骤S802:驱动所述电机100输出轴回转直至所述偏差ε小于预设值。
在本发明实施例中,当电机100输出轴的当前位置w3与预设零点位置w1不相等时,驱动电机100输出轴回转,直至所述偏差ε小于预设值,所述预设值的取值范围为0.01°~0.1°。
本发明在舵机启动时,先将减速器200输出轴的当前位置与预设的减速器200输出轴的零点位置进行比较,并驱动电机100输出轴带动减速器200输出轴运转使减速器200输出轴到达零点位置,实现粗调,然后,将电机100输出轴的当前位置与预设的电机100输出轴的零点位置进行比较,并驱动电机100输出轴回转至零点位置,从而实现舵机转子的精确回零。
此外,请参阅图1和5,还公开了一种舵机转子的回零系统,所述舵机包括电机100、与所述电机100输出轴连接的减速器200、与所述电机100输出轴连接的第一编码器300、与所述减速器200输出轴连接的第二编码器400以及电机控制器500,电机控制器500包括存储器,所述回零系统可以包括启动单元11、零点获取单元12、第一检测单元13、第一比较单元14、第一驱动单元15、第二检测单元16、第二比较单元17和第二驱动单元18。
启动单元11用于向所述电机输出启动指令,所述启动指令包括回零指令;零点获取单元12用于读取所述电机输出轴的预设零点位置w1和所述减速器200输出轴的预设零点位置w2;第一检测单元13用于通过所述第二编码器400检测所述减速器200输出轴的当前位置w4;第一比较单元14用于比较所述w2和所述w4的大小;第一驱动单元15用于若所述w2与所述w4不相等,则驱动所述电机100输出轴回转直至所述w2等于所述w4;第二检测单元16用于通过所述第一编码器300检测所述电机100输出轴的当前位置w3;第二比较单元17用于比较所述w1和所述w3的大小;第二驱动单元18用于若所述w1与所述w3不相等,则驱动所述电机100输出轴回转直至所述w1等于所述w3。
进一步地,在本实施例中,所述第一驱动单元15包括:
指令发生模块,用于向所述电机输出PWM电机控制指令;
第一驱动模块,用于接收所述控制指令运转以驱动所述电机带动所述减速器输出轴回转直至所述w2等于所述w4。
进一步地,在本实施例中,所述第二驱动单元18包括:
偏差计算模块,用于计算所述w3与所述w1的偏差ε;
第二驱动模块,用于驱动所述电机输出轴回转直至所述偏差ε小于预设值。
请参阅图1,本发明还提供一种舵机,包括电机100、减速器200、第一编码器300、第二编码器400和电机控制器500。
电机100用于接收启动指令,所述启动指令包括回零指令,并根据所述回零指令控制所述电机100输出轴回零;减速器200与所述电机100的输出轴连接,用于将所述电机100的高转速输出转化为低转速输出;第一编码器300,与所述电机100的输出轴连接,用于检测所述电机100的输出轴的当前位置,所述第一编码器300为单圈编码器;第二编码器400与所述减速器200的输出轴连接,用于检测所述减速器200的输出轴的当前位置,所述第二编码器400为单圈编码器;电机控制器500与所述电机100、所述第一编码器300及所述第二编码器400连接,用于输出所述启动指令,读取所述电机100输出轴的预设零点位置w1和所述减速器200输出轴的预设零点位置w2,比较所述w2和所述w4的大小,若所述w2与所述w4不相等,则驱动所述电机100输出轴回转直至所述w2等于所述w4,比较所述w1和所述w3的大小,若所述w1与所述w3不相等,则驱动所述电机100输出轴回转直至所述w1等于所述w3,所述电机控制器500包括存储器。
本发明通过在原有的舵机结构中,在减速器输出端设置一单圈编码器,即可实现舵机转子的精确回零,结构简单且成本低。
本发明还提供一种机器人,所述机器人包括电机100、减速器200、第一编码器300、第二编码器400和电机控制器500。
电机100用于接收启动指令,所述启动指令包括回零指令,并根据所述回零指令控制所述电机100输出轴回零;减速器200与所述电机100的输出轴连接,用于将所述电机100的高转速输出转化为低转速输出;第一编码器300,与所述电机100的输出轴连接,用于检测所述电机100的输出轴的当前位置,所述第一编码器300为单圈编码器;第二编码器400与所述减速器200的输出轴连接,用于检测所述减速器200的输出轴的当前位置,所述第二编码器400为单圈编码器;电机控制器500与所述电机100、所述第一编码器300及所述第二编码器400连接,用于输出所述启动指令,读取所述电机100输出轴的预设零点位置w1和所述减速器200输出轴的预设零点位置w2,比较所述w2和所述w4的大小,若所述w2与所述w4不相等,则驱动所述电机100输出轴回转直至所述w2等于所述w4,比较所述w1和所述w3的大小,若所述w1与所述w3不相等,则驱动所述电机100输出轴回转直至所述w1等于所述w3,所述电机控制器500包括存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、系统及装置,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可以采用软件功能单元的形式实现。
本发明通过在舵机启动时,先将减速器200输出轴的当前位置与预设的减速器200输出轴的零点位置进行比较,并驱动电机100输出轴带动减速器200输出轴运转使减速器200输出轴到达零点位置,实现粗调,然后,将电机100输出轴的当前位置与预设的电机100输出轴的零点位置进行比较,并驱动电机100输出轴回转至零点位置,实现精调,从而实现舵机转子的精确回零。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。