发明内容
有鉴于此,本发明实施例提供了一种机器人舵机抖动抑制控制方法及装置,以解决在舵机及机器人关节结构虚位得不到合理控制时,机器人舵机抖动问题。
本发明实施例提供一种机器人舵机抖动抑制控制方法,包括:
在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数;
根据统计的所述机器人舵机角度位置的往复波动次数与一预设波动值,判断机器人舵机是否处于抖动状态;
若处于抖动状态,则通过调节机器人舵机的控制参数抑制机器人舵机抖动。
可选的,在统计预设周期内的机器人舵机角度位置的往复波动次数之前,包括:
检测机器人舵机当前运动角度与目标角度之差的偏差角度,比较偏差角度是否大于一预设偏差阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内。
可选的,统计预设周期内的机器人舵机角度位置的往复波动次数,包括:
在所述预设周期内,每隔单位时间,判断当前舵机波动方向是否与上次舵机波动方向一致,若不一致,则机器人舵机角度位置的往复波动次数加1;
其中,判断所述当前舵机波动方向,包括:判断当前舵机角度位置是否与上次舵机角度位置相同:若相同,说明当前舵机波动方向与上次舵机波动方向一致;若不相同,则判断当前舵机角度是否大于上次舵机角度,若大于,说明当前舵机波动方向是正向,若不大于,说明当前舵机波动方向是负向。
可选的,根据统计的所述机器人舵机角度位置的往复波动次数与预设波动值,判断机器人舵机是否处于抖动状态,包括:
判断机器人舵机角度位置的往复波动次数是否大于预设波动值;
所述机器人舵机角度位置的往复波动次数大于预设波动值时,判断机器人舵机处于抖动状态。
可选的,若处于抖动状态,则通过调节机器人舵机的控制参数抑制机器人舵机抖动,包括:
若处于抖动状态,则判断机器人舵机的控制参数是否已经达到下限;
若未达到下限,则将机器人舵机的控制参数减1。
本发明实施例提供一种机器人舵机抖动抑制控制装置,包括:
统计波动次数模块,用于在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数;
判断抖动模块,用于根据统计的所述机器人舵机角度位置的往复波动次数与一预设波动值,判断机器人舵机是否处于抖动状态;
调节模块,用于当机器人舵机处于抖动状态时,通过调节机器人舵机的控制参数抑制机器人舵机抖动。
可选的,统计波动次数模块还用于:
在统计预设周期内的机器人舵机角度位置的往复波动次数之前,检测机器人舵机当前运动角度与目标角度之差的偏差角度,比较偏差角度是否大于一偏差角度阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内。
可选的,所述统计波动次数模块,具体用于:
在所述预设周期内,每隔单位时间,判断当前舵机波动方向是否与上次舵机波动方向一致,若不一致,则机器人舵机角度位置的往复波动次数加1;
其中,判断所述当前舵机波动方向,包括:判断当前舵机角度位置是否与上次舵机角度位置相同,若相同,说明当前舵机波动方向与上次舵机波动方向一致;若不相同,则判断当前舵机角度是否大于上次舵机角度,若大于,说明当前舵机波动方向是正向,若不大于,说明当前舵机波动方向是负向。
可选的,判断抖动模块具体用于:
判断机器人舵机角度位置的往复波动次数是否大于预设波动值;
所述机器人舵机角度位置的往复波动次数大于预设波动值时,判断机器人舵机处于抖动状态。
可选的,调节模块具体用于:
若处于抖动状态,则判断机器人舵机的控制参数是否已经达到下限;
若未达到下限,则将机器人舵机的控制参数减1。
本发明实施例采用的技术方案与现有技术相比存在的有益效果是:本发明实施例,在机器人舵机进入锁位状态后,未达到第一预设时间时不做对机器人舵机是否处于抖动状态的检测,在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数,通过比较所述机器人舵机角度位置的往复波动次数与预设波动值的大小,检测机器人舵机锁位状态的抖动程度,并根据抖动程度调节机器人舵机的控制参数,实现对机器人舵机的抖动抑制。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的一种机器人舵机抖动抑制控制方法,包括:
步骤S101,在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数。
本实施例中,机器人舵机进入锁位状态中的锁位状态是对机器人舵机锁定后开始进行的工作状态,在机器人舵机进入锁位状态第一预设时间后,开始进行对机器人舵机是否处于抖动状态的检测,其中,首先对预设周期内的机器人舵机角度位置的往复波动次数进行统计。
可选的,在步骤S101之前,可以包括:检测机器人舵机当前运动角度与目标角度之差的偏差角度,比较偏差角度是否大于一预设偏差阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内。在本实施例中,所述控制参数为自动控制相关的算法的参数,包括但不限于PID控制,并通过该控制参数控制舵机刚性的变化。
本实施例中,机器人舵机的偏差角度是机器人舵机当前运动角度与目标角度之差的偏差角度,根据机器人舵机的偏差角度是否大于预设偏差阈值来决定机器人舵机的控制参数是否调回到正常值,并通过该步骤确保机器人舵机的最大偏差角度能得到有效控制。参见图1,开始检测机器人舵机的偏差角度,判断机器人舵机的偏差角度是否大于所述预设偏差阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内,即将机器人舵机的控制参数调回的正常值;若不大于,机器人舵机的控制参数将不做修正。
具体地,步骤S101中,统计预设周期内的机器人舵机角度位置的往复波动次数,包括:
在所述预设周期内,每隔单位时间,判断当前舵机波动方向是否与上次舵机波动方向一致,若不一致,则机器人舵机角度位置的往复波动次数加1;其中,判断所述当前舵机波动方向,包括:判断当前舵机角度位置是否与上次舵机角度位置相同:若相同,说明当前舵机波动方向与上次舵机波动方向一致;若不相同,则判断当前舵机角度是否大于上次舵机角度,若大于,说明当前舵机波动方向是正向,若不大于,说明当前舵机波动方向是负向。
本实施例中,设置第二预设时间,其中,所述第二预设时间等于所述第一预设时间加所述预设周期。参见图2,在机器人舵机进入锁位状态后开始计时加1,判断计时时间与第一预设时间的大小,若小于等于,则对所述预设周期内的机器人舵机角度位置的往复波动次数不做统计,避免刚进入锁位状态机器人舵机不稳定而处于抖动状态;若大于,判断当前舵机角度位置是否与上次舵机角度位置相同:
若相同,说明当前舵机波动方向与上次舵机波动方向一致,并将上次舵机波动方向设置为前舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同;
若不相同,则比较当前机器人舵机角度与上次机器人舵机角度的大小:若当前机器人舵机角度大于上次机器人舵机角度,说明当前机器人舵机波动方向是正向,若当前机器人舵机角度小于等于上次机器人舵机角度,说明当前机器人舵机波动方向是负向,继续判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致:若一致,则将上次机器人舵机波动方向设置为当前机器人舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同;若不一致,则机器人舵机角度位置的往复波动次数加1,并将上次机器人舵机波动方向设置为当前机器人舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同。
步骤S102,根据统计的所述机器人舵机角度位置的往复波动次数与一预设波动值,判断机器人舵机是否处于抖动状态。
具体地,步骤S102,包括:
判断机器人舵机角度位置的往复波动次数是否大于预设波动值;所述机器人舵机角度位置的往复波动次数大于预设波动值时,判断机器人舵机处于抖动状态。
本实施例中,参见图2,当所述锁位状态的计时时间大于第二预设时间时,将所述预设周期内统计的机器人舵机角度位置的往复波动次数与预设波动值进行比较:当机器人舵机角度位置的往复波动次数大于预设波动值时,说明当前机器人舵机状态为机器人舵机抖动状态,且将所述锁位状态的计时时间设置为第一预设时间,并将机器人舵机角度位置的往复波动次数清零,结束对机器人舵机是否处于抖动状态的检测。当机器人舵机角度位置的往复波动次数小于等于预设波动值时,将所述锁位状态的计时时间设置为第一预设时间,并将机器人舵机角度位置的往复波动次数清零,结束对机器人舵机是否处于抖动状态的检测。
参见图2,本实施例判断机器人舵机是否处于抖动状态可以通过步骤S201至步骤S219来实现:
步骤S201,开始;
步骤S202,机器人舵机进入锁位状态并计时加1;
步骤S203,判断锁位状态的计时时间是否大于第一预设时间,记作锁位状态的计时时间>第一预设时间?;
步骤S204,若是,判断当前舵机角度位置是否与上次舵机角度位置不相同,记作当前舵机角度位置!=上次舵机角度位置?;
步骤S205,若当前舵机角度位置与上次舵机角度位置不相同,则判断当前舵机角度是否大于上次舵机角度,记作当前舵机角度位置>上次舵机角度位置?;
步骤S206,若当前机器人舵机角度大于上次机器人舵机角度,说明当前机器人舵机波动方向是正向,记作当前舵机波动方向=正;
步骤S207,若当前机器人舵机角度小于等于上次机器人舵机角度,说明当前机器人舵机波动方向是负向,记作当前舵机波动方向=负;
步骤S208,判断当前机器人舵机波动方向是否与上次机器人舵机波动方向不一致,记作上次舵机波动方向!=当前舵机波动方向?;
步骤S209,将上次机器人舵机波动方向设置为当前机器人舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,记作上次舵机波动方向=当前舵机波动方向,上次舵机角度位置=当前舵机角度位置;
步骤S210,若一致,则执行步骤S209;
步骤S211,若不一致,则机器人舵机角度位置的往复波动次数加1,并执行步骤S209;
步骤S212,若当前舵机角度位置与上次舵机角度位置相同,说明当前舵机波动方向与上次舵机波动方向一致,并执行步骤S209;
步骤S213,判断所述锁位状态的计时时间是否大于第二预设时间,记作锁位状态计时时间>第二预设时间?;
步骤S214,若大于,判断机器人舵机角度位置的往复波动次数是否大于预设波动值,记作往复波动次数>预设波动值?;
步骤S215,当机器人舵机角度位置的往复波动次数大于预设波动值时,说明当前机器人舵机状态为机器人舵机抖动状态,记作机器人舵机状态=抖动;
步骤S216,将所述锁位状态的计时时间设置为第一预设时间,记作锁位状态的计时时间=第一预设时间;
步骤S217,将机器人舵机角度位置的往复波动次数清零;
步骤S218,当机器人舵机角度位置的往复波动次数不大于预设波动值时,执行步骤S216;
步骤S219,结束,且若锁位状态的计时时间不大于第二预设时间,结束对机器人舵机是否处于抖动状态的检测。
步骤S103,若处于抖动状态,则通过调节机器人舵机的控制参数抑制机器人舵机抖动。
进一步地,步骤S103,包括:
若处于抖动状态,则判断机器人舵机的控制参数是否已经达到下限;若未达到下限,则将机器人舵机的控制参数减1。
本实施例中,参见图1,当机器人舵机处于抖动状态时,判断所述机器人舵机的控制参数是否已经达到下限,若未达到下限,则将机器人舵机的控制参数减1,结束该次对述机器人舵机的控制参数的调节。
本发明实施例,所述控制方法在机器人舵机进入锁位状态后,未达到第一预设时间时不做对机器人舵机是否处于抖动状态的检测,在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数,通过比较所述机器人舵机角度位置的往复波动次数与预设波动值的大小,检测机器人舵机锁位状态的抖动程度,并根据抖动程度调节机器人舵机的控制参数,实现对机器人舵机的抖动抑制。
参见图3,本发明实施例提供的一种机器人舵机抖动抑制控制装置,包括:
统计波动次数模块301,用于在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数;
判断抖动模块302,用于根据统计的所述机器人舵机角度位置的往复波动次数与一预设波动值,判断机器人舵机是否处于抖动状态;
调节模块303,用于当机器人舵机处于抖动状态时,通过调节机器人舵机的控制参数抑制机器人舵机抖动。
本发明实施例,通过设置统计波动次数模块301、判断抖动模块302及调节模块303,在机器人舵机进入锁位状态后,未达到第一预设时间时不做对机器人舵机是否处于抖动状态的检测,在机器人舵机进入锁位状态第一预设时间后,统计预设周期内的机器人舵机角度位置的往复波动次数,通过比较所述机器人舵机角度位置的往复波动次数与预设波动值的大小,检测机器人舵机锁位状态的抖动程度,并根据抖动程度调节机器人舵机的控制参数,实现对机器人舵机的抖动抑制。
具体地,统计波动次数模块301还用于:在统计预设周期内的机器人舵机角度位置的往复波动次数之前,检测机器人舵机当前运动角度与目标角度之差的偏差角度,比较偏差角度是否大于一偏差角度阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内。
本实施例中,根据机器人舵机的偏差角度是否大于所述预设偏差阈值来决定机器人舵机的控制参数是否调回到正常值,并通过该步骤确保机器人舵机的最大偏差角度能得到有效控制。参见图1,开始检测机器人舵机的偏差角度,判断机器人舵机的偏差角度是否大于所述预设偏差阈值,若大于,将机器人舵机的控制参数调整在所述预设偏差阈值内,即将机器人舵机的控制参数调回的正常值;若不大于,机器人舵机的控制参数将不做修正。
可选的,所述统计波动次数模块301,具体用于:
在所述预设周期内,每隔单位时间,判断当前舵机波动方向是否与上次舵机波动方向一致,若不一致,则机器人舵机角度位置的往复波动次数加1;其中,判断所述当前舵机波动方向,包括:判断当前舵机角度位置是否与上次舵机角度位置相同,若相同,说明当前舵机波动方向与上次舵机波动方向一致;若不相同,则判断当前舵机角度是否大于上次舵机角度,若大于,说明当前舵机波动方向是正向,若不大于,说明当前舵机波动方向是负向。
本实施例中,设置第二预设时间,其中,所述预设周期为第一预设时间与第二预设时间之间的时间。参见图2,在机器人舵机进入锁位状态后开始计时加1,判断计时时间与第一预设时间的大小,若小于等于,则对所述预设周期内的机器人舵机角度位置的往复波动次数不做统计,避免刚进入锁位状态机器人舵机不稳定而处于抖动状态;若大于,判断当前舵机角度位置是否与上次舵机角度位置相同:
若相同,说明当前舵机波动方向与上次舵机波动方向一致,并将上次舵机波动方向设置为前舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同;
若不相同,则比较当前机器人舵机角度与上次机器人舵机角度的大小:若当前机器人舵机角度大于上次机器人舵机角度,说明当前机器人舵机波动方向是正向,若当前机器人舵机角度小于等于上次机器人舵机角度,说明当前机器人舵机波动方向是负向,继续判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致:若一致,则将上次机器人舵机波动方向设置为当前机器人舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同;若不一致,则机器人舵机角度位置的往复波动次数加1,并将上次机器人舵机波动方向设置为当前机器人舵机波动方向,且将上次舵机角度位置设置成当前舵机角度位置,作为下次判断当前机器人舵机波动方向是否与上次机器人舵机波动方向一致以及判断当前舵机角度位置是否与上次舵机角度位置相同。
可选的,判断抖动模块302具体用于:判断机器人舵机角度位置的往复波动次数是否大于预设波动值;所述机器人舵机角度位置的往复波动次数大于预设波动值时,判断机器人舵机处于抖动状态。
本实施例中,参见图2,当所述锁位状态的计时时间大于第二预设时间时,将所述预设周期内统计的机器人舵机角度位置的往复波动次数与预设波动值进行比较:当机器人舵机角度位置的往复波动次数大于预设波动值时,说明当前机器人舵机状态为机器人舵机抖动状态,且将所述锁位状态的计时时间设置为第一预设时间,并将机器人舵机角度位置的往复波动次数清零,结束对机器人舵机是否处于抖动状态的检测。当机器人舵机角度位置的往复波动次数小于等于预设波动值时,将所述锁位状态的计时时间设置为第一预设时间,并将机器人舵机角度位置的往复波动次数清零,结束对机器人舵机是否处于抖动状态的检测。
可选的,调节模块303具体用于:若处于抖动状态,则判断机器人舵机的控制参数是否已经达到下限;若未达到下限,则将机器人舵机的控制参数减1。
本实施例中,当机器人舵机处于抖动状态时,判断所述机器人舵机的控制参数是否已经达到下限,若未达到下限,则将机器人舵机的控制参数减1,结束该次对述机器人舵机的控制参数的调节。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。