用于机器人低刚度运动控制的方法、装置和康复机器人与流程

文档序号:24063909发布日期:2021-02-26 12:03阅读:89来源:国知局
用于机器人低刚度运动控制的方法、装置和康复机器人与流程

[0001]
本申请涉及机器人技术领域,例如涉及一种用于机器人低刚度运动控制的方法、装置和康复机器人。


背景技术:

[0002]
目前,患者关节损伤、神经系统损伤、骨骼肌肉损伤等,导致关节技能障碍,患者需要进行康复训练,以恢复或改善关节机能。康复训练包括患者主动完成一系列训练动作,患者在康复治疗师的协助下完成一系列训练动作,或者,患者在辅助器械的协助下完成一系列的训练动作。为了节省人力,通常选择在辅助器械的协助下完成一系列的训练动作,例如患者在康复机器人的辅助下完成一系列的训练动作。康复机器人中设置有特定动作轨迹,以辅助患者完成特定动作,在这个过程中,需要对康复机器人的位置和速度进行控制,在常用的位置控制算法和速度控制算法的控制下,机器人运动刚度较高,导致患者无法获得较佳的训练体验,甚至无法获得较佳的训练效果。
[0003]
对此,公开号为cn111230867a的中国专利申请公开了一种机器人运动控制方法,该方法将机器人所受外部作用力矩反馈至预设姿态作用力矩,对外部作用力矩和预设姿态作用力矩进行综合处理,以获得机器人的目标角度偏转量,再将该角度偏转量输入至控制器,例如比例-积分-微分(proportional-integral-derivative control,pid)控制器,实现机器人的姿态控制。在整个控制过程中,预设作用力与机器人的位置具有对应关系,并且,在机器人的运动状态发生变化时,预设作用力的大小逐渐变化,例如在机器人在起始位置开始运动时,预设作用力逐渐变大,直至一设定驱动力;在机器人在终止位置停止运动时,预设作用力逐渐变小,直至零。该控制方法通过自主地设置机器人在不同姿态角度处的预设作用力矩的大小,实现低刚度运动控制及良好的人机共融。
[0004]
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
[0005]
在机器人持续运动过程中,即,在机器人的预设速度或预设位置不断变化的过程中,不存在严格的起始位置和终止位置,此时采用上述控制方法仍无法实现低刚度的运动控制。


技术实现要素:

[0006]
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0007]
本公开实施例提供了一种用于机器人低刚度运动控制的方法、装置和康复机器人,以解决现有技术中无法在机器人的持续运动中实现低刚度运动控制的技术问题。
[0008]
在一些实施例中,用于机器人低刚度运动控制的方法包括:获得与机器人的运动状态相关的特定外力;其中,所述运动状态是在所述机器人的执行机构的驱动下实现的;获得所述机器人的控制器的控制输出值;依据所述特定外力和所述控制输出值对所述执行机
构进行控制。
[0009]
可选地,依据所述特定外力和所述控制输出值对所述执行机构进行控制,包括:确定所述特定外力对应的补偿值,以将所述特定外力补偿至设定范围;根据所述补偿值与所述控制输出值之和,控制所述执行机构。
[0010]
可选地,获得与机器人的运动状态相关的特定外力,包括:获得表征所述运动状态的实际被控变量值;根据所述实际被控变量值确定所述特定外力;其中,所述实际被控变量值包括所述机器人的实际速度值和/或所述机器人的实际位置值。
[0011]
可选地,根据所述实际被控变量值确定所述特定外力,包括:根据所述机器人的实际速度值确定所述机器人所受摩擦力/摩擦力矩;和/或根据所述机器人的实际位置值确定所述机器人所受重力/重力矩。
[0012]
可选地,获得所述机器人的控制器的控制输出值,包括:获得表征所述运动状态的实际被控变量值;将所述实际被控变量值反馈至所述控制器的输入端;获得所述控制器的控制输出值;其中,所述实际被控变量值包括所述机器人的实际速度值和/或所述机器人的实际位置值。
[0013]
可选地,将所述实际被控变量值反馈至所述控制器的输入端,获得所述控制器的控制输出值,包括:
[0014]
计算预设位置值与实际位置值的差,获得位置差值;获得位置控制器根据所述位置差值计算的第一输出值;计算所述第一输出值与实际速度值的差,获得第一差值;获得速度控制器根据所述第一差值计算的第二输出值,以所述第二输出值作为所述控制输出值;或者
[0015]
计算预设速度值与实际速度值的差,获得速度差值;获得速度控制器根据所述速度差值计算的第三输出值;计算所述第三输出值与实际位置值的差,获得第二差值;获得位置控制器根据所述第二差值计算的第四输出值,以所述第四输出值作为所述控制输出值;
[0016]
其中,所述控制器包括所述位置控制器和所述速度控制器。
[0017]
可选地,将所述实际被控变量值反馈至所述控制器的输入端,获得所述控制器的控制输出值,包括:
[0018]
计算预设位置值与实际位置值的差,获得位置差值;获得控制器根据所述位置差值计算的所述控制输出值;或者
[0019]
计算预设速度值与实际速度值的差,获得速度差值;获得控制器根据所述速度差值计算的所述控制输出值。
[0020]
在一些实施例中,用于机器人低刚度运动控制的装置包括:
[0021]
第一获得模块,被配置为获得与机器人的运动状态相关的特定外力;其中,所述运动状态是在所述机器人的执行机构的驱动下实现的;
[0022]
第二获得模块,被配置为获得所述机器人的控制器的控制输出值;
[0023]
控制模块,被配置为依据所述特定外力和所述控制输出值对所述执行机构进行控制。
[0024]
在一些实施例中,用于机器人低刚度运动控制的装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行前述实施例提供的用于机器人低刚度运动控制的方法。
[0025]
在一些实施例中,康复机器人包括前述实施例提供的用于机器人低刚度运动控制的装置。
[0026]
本公开实施例提供的用于机器人低刚度运动控制的方法、装置和康复机器人,可以实现以下技术效果:
[0027]
将机器人所受特定外力前馈至执行机构的输入,与控制器的控制输出值共同作用,对执行机构进行控制。如此控制过程,控制器的计算过程无需涉及特定外力,即,控制器中的刚度参数可设置为较低值,例如pid控制器中的比例参数可设置为较低值,可以实现机器人的低刚度运动控制。此外,由于特定外力与机器人运动状态相对应,如此结合特定外力对机器人进行控制的方法,无论机器人处于持续运动状态还是间歇运动状态,均可实现机器人的低刚度运动控制。
[0028]
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
[0029]
一个或一个以上实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件视为类似的元件,并且其中:
[0030]
图1是本公开实施例提供的一种用于机器人低刚度运动控制的方法的示意图;
[0031]
图2是本公开实施例提供的一种依据特定外力和控制输出值对执行机构进行控制的过程的示意图;
[0032]
图3是本公开实施例提供的一种获得与机器人的运动状态相关的特定外力的过程的示意图;
[0033]
图4是本公开实施例提供的一种获得机器人的控制器的控制输出值的过程的示意图;
[0034]
图5是本公开实施例提供的一种用于将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程的示意图;
[0035]
图6是本公开实施例提供的一种用于将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程的示意图;
[0036]
图7是本公开实施例提供的一种将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程的示意图;
[0037]
图8是本公开实施例提供的一种将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程的示意图;
[0038]
图9是本公开实施例提供的一种机器人控制系统的系统框图;
[0039]
图10是本公开实施例提供的一种机器人控制系统的系统框图;
[0040]
图11是本公开实施例提供的一种机器人控制系统的系统框图;
[0041]
图12是本公开实施例提供的一种机器人控制系统的系统框图;
[0042]
图13是本公开实施例提供的一种机器人控制系统的系统框图;
[0043]
图14是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图;
[0044]
图15是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图;
[0045]
图16是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图;
[0046]
图17是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图;
[0047]
图18是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图。
具体实施方式
[0048]
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或一个以上实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
[0049]
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0050]
除非另有说明,术语“多个”表示两个或两个以上。
[0051]
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
[0052]
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
[0053]
在利用康复机器人辅助患者完成一系列康复训练动作的应用场景中,本公开实施例提供了一种用于机器人低刚度运动控制的方法,将机器人所受到的特定外力补偿至一符合预期控制精度的设定范围,这样在机器人的控制器对机器人的动作、运动轨迹进行控制时,无需考虑特定外力,可以将控制器中的刚度参数设置为较低值,从而实现了机器人的低刚度运动控制,使患者获得较佳的人机交互体验。
[0054]
图1是本公开实施例提供的一种用于机器人低刚度运动控制的方法的示意图。结合图1所示,用于机器人低刚度运动控制的方法,包括:
[0055]
s101、获得与机器人的运动状态相关的特定外力。
[0056]
这里的运动状态可以是机器人持续运动,例如机器人沿一特定轨迹持续运动,也可以是机器人保持在一特定位置,还可以是机器人间歇性运动。
[0057]
机器人运动控制系统中包括执行机构,执行机构的种类为一种或多种:例如,执行机构可将驱动信号转换为扭矩驱动并输出,如通过电机输出扭矩;或者,执行机构还可将驱动信号转换为阀门的开状态/关状态,如通过电磁阀、空气开关等输出开状态/关状态。机器人的运动状态是在执行机构驱动下实现的,例如通过控制电机的转速,以驱动机器人以特定速度进行运动,或者,通过控制电机的输出扭矩,使机器人维持在特定位置。
[0058]
本公开实施例中的特定外力指的是机器人所受特定外力,包括机器人所受重力、机器人所受摩擦力、机器人所受重力和摩擦力、机器人所受重力矩、机器人所受摩擦力矩、或者机器人所受重力矩和摩擦力矩。
[0059]
其中,机器人所受特定外力为机器人整体所受特定外力,或者,机器人上的运动部件所受特定外力,例如,在机器人为扫地机器人或者导盲机器人的情况下,机器人所受特定外力指的是机器人整体所受特定外力;在机器人为上肢康复机器人的情况下,上肢康复机器人包括固定的活动板和可移动的手托,机器人所受特定外力指的可以是手托所受特定外
力。
[0060]
在本公开实施例中,机器人所受重力指的是机器人所受的指向地心的重力,或者,机器人所受重力沿一方向的分力;机器人所受重力矩指的是机器人所受的指向地心的重力对旋转轴的重力矩,或者,机器人所受重力沿一方向的分力对旋转轴的力矩。
[0061]
在一些应用场景中,机器人为上肢康复机器人,该上肢康复机器人包括固定的活动板和可移动的手托,在执行机构(例如电机)的驱动下,手托可在活动板上任意移动。在活动板水平放置的情况下,特定外力指的可以是:手托运动过程中所受摩擦力;在活动板倾斜放置的情况下,特定外力指的可以是:手托所受摩擦力和重力沿倾斜面向下的分力,或者,手托所受摩擦力,或者,手托所受重力沿倾斜面向下的分力;在活动板竖直放置的情况下,特定外力指的可以是:手托所受摩擦力和重力,或者,手托所受摩擦力,或者,手托所受重力。
[0062]
在一些应用场景中,机器人为腕关节康复机器人,该腕关节康复机器人包括机座和手柄,手柄通过转轴与机座活动连接,其中,手柄可绕转轴做圆周运动。在手柄运动轨迹所在的平面为水平面的情况下,特定外力指的可以是手柄所受摩擦力矩;在手柄运动轨迹所在的平面为倾斜平面的情况下,特定外力指的可以是:手柄所受摩擦力矩和重力沿倾斜平面向下的分力的力矩,或者,手柄所受摩擦力矩,或者,手柄所受重力沿倾斜平面向下的分力的力矩;在手柄运动轨迹所在的平面为竖直平面的情况下,特定外力指的可以是:手柄所受重力矩和摩擦力矩;或者,手柄所受重力矩;或者,手柄所受摩擦力矩。
[0063]
在上述两个应用场景中,以机器人上的运动部件所受特定外力进行示例性说明。应当理解的是,在本公开实施例提供的用于机器人低刚度运动控制的方法应用在可独立运动的机器人(例如扫地机器人或导盲机器人)的情况下,机器人整体所受特定外力与机器人的运动平面的倾斜程度、机器人运动方式(直线运动或曲线运动)相关,机器人整体所受特定外力的分析方式与前述两个应用场景中的特定外力的分析方式类似,这里不再一一赘述。
[0064]
特定外力与运动状态相关,在确定出机器人的运动状态后,即可获得与运动状态相关的特定外力。其中,特定外力与运动状态相关,包括:机器人所受摩擦力/摩擦力矩与机器人的运动状态相关,机器人所受重力/重力矩与机器人的运动状态相关。
[0065]
可预先设置不同运动状态下对应的特定外力,并存储在存储器中,如此,在确定出机器人的运动状态后,便可依据该运动状态,在存储器中读取与该运动状态相关的特定外力。
[0066]
在一些应用场景中,预先设置机器人所受摩擦力/摩擦力矩与运动状态的一一对应关系,在机器人运动过程中,获得机器人的运动状态,确定出与运动状态相对应的摩擦力/摩擦力矩,同时,还可以获得机器人的控制器的控制输出值,并依据控制输出值与摩擦力/摩擦力矩对执行机构进行控制。
[0067]
可选地,预先设置机器人所受重力/重力矩与运动状态的一一对应关系,在机器人运动过程中,在机器人运动过程中,获得机器人的运动状态,确定出与运动状态相对应的预设重力/重力矩,同时,还可以获得机器人的控制器的控制输出值,并依据控制输出值和重力/重力矩对执行机构进行控制。
[0068]
s102、获得机器人的控制器的控制输出值。
[0069]
本公开实施例中的控制器,指的是具有消除偏差功能的由软件、硬件或二者结合形成的控制器。可以是pid控制器、线性二次型调节器(linear quadratic regulator,lqr)等经典控制器。控制器用于将机器人的实际运动状态调节至预设运动状态,例如,将机器人的实际速度值调节至预设速度值,或者,将机器人的实际位置值调节至预设位置值,或者,同时将机器人的实际速度值和实际位置值调节分别调节至预设速度值和预设位置值。机器人控制系统通常为闭环控制系统,在机器人的运动过程中,控制器的控制输出实时变化。
[0070]
在实际应用过程中,可以如图1所示,先获得与机器人的运动状态相关的特定外力,再获得机器人的控制器的控制输出值;或者,可以先获得控制输出值再获得特定外力;或者,可以同时执行获得特定外力以及获得控制输出值的步骤。具体可结合实际使用需求而定,本公开实施例对两个步骤的执行顺序可不做具体限定。
[0071]
s103、依据特定外力和控制输出值对执行机构进行控制。
[0072]
在机器人处于保持一设定位置的状态的情况下,依据特定外力和控制输出值对执行机构进行控制,可以使机器人在执行机构的驱动下,保持在该一特定位置;在机器人沿一特定轨迹运动的情况下,机器人在执行机构的驱动下,可以进入沿该一特定轨迹的下一个运动状态。
[0073]
将机器人所受特定外力前馈至执行机构的输入,与控制器的控制输出值共同作用,对执行机构进行控制。如此控制过程,控制器的计算过程无需涉及特定外力,即,控制器中的刚度参数可设置为较低值,例如pid控制器中的比例参数可设置为较低值,可以实现机器人的低刚度运动控制。此外,由于特定外力与机器人运动状态相对应,如此结合特定外力对机器人进行运动控制的方案,无论机器人处于持续运动状态还是间歇运动状态,均可实现机器人的低刚度运动控制。
[0074]
在机器人的调试阶段,可预先设置不同运动状态对应的特定外力,并存储在存储器中。可依次获得每个运动状态对应的特定外力,直至遍历机器人的全部运动状态后,即可获得全部运动状态与特定外力的一一对应关系。
[0075]
例如可通过有限次试验获得一个运动状态对应的特定外力,直至遍历机器人的全部运动状态后,即可获得全部运动状态与特定外力的一一对应关系。
[0076]
还可通过如下方式获得一个运动状态所对应的特定外力:在机器人在一个运动状态的持续时长远远大于执行用于机器人低刚度运动控制的方法所需时长的情况下,例如持续时长是所需时长的20倍以上,此时在机器人的运动状态改变之前,本方法可成功计算出特定外力,获得与机器人的运动状态相关的特定外力,包括:
[0077]
获得机器人的控制器的临时输出值,其中,临时输出值和临时外力之和用于控制机器人的执行机构,机器人的运动状态是在执行机构的驱动下实现的,临时外力可通过有限次试验获得;
[0078]
在临时输出值不满足特定条件的情况下,根据临时输出值对临时外力进行迭代;
[0079]
在临时输出值满足特定条件的情况下,确定此时的临时外力为机器人的运动状态相关的特定外力。
[0080]
其中,在临时输出值的绝对值小于第一设定值的情况下,临时输出值满足特定条件,第一设定值用于表示控制精度,第一设定值越小,控制精度越高。这样,在临时输出值的绝对值小于第一设定值,进入控制死区,无需时时进行迭代,可节省计算资源。
[0081]
在机器人控制系统中,控制器对机器人的运动状态进行实时控制,使机器人的运动状态动态的跟随预设运动状态。在本公开实施例中,机器人的运动状态维持不变,指的是机器人的运动状态动态跟随一个不变的预设运动状态,例如,机器人维持在一预设位置值,或者,机器人维持在一预设速度值。此外,在机器人的宏观运动过程中,例如在控制机器人按照预设轨迹进行运动的过程中,预设轨迹的改变情况通常以秒为单位进行衡量,而现有控制芯片兆级甚至更快的运算速度,在预设轨迹改变之前,可执行多次上述临时外力的迭代过程,故,上述机器人的运动状态动态跟随一个不变的预设运动状态还包括在预设运动状态改变之前已计算出特定外力的应用场景。
[0082]
本公开实施例中的临时输出值指的是在获得一个运动状态所对应的特定外力的过程中的控制器的控制输出值,在这个过程中,临时外力循环迭代,临时输出值实时受临时外力的改变的影响。临时输出值和临时外力同时作用于机器人的执行机构,在对临时外力进行迭代计算后,临时外力的数值改变,导致机器人的运动状态出现微调,控制器在接收到该微调的信号后,改变临时输出值,使机器人的运动状态继续跟随预设运动状态。
[0083]
通过上述步骤可见,机器人每处于一个运动状态,均可确定出一个与运动状态相对应的特定外力,遍历机器人的全部运动状态,可获得机器人的全部运动状态与特定外力的一一对应关系。在获得机器人的全部运动状态与特定外力的一一对应关系后,机器人即可进入正式工作状态,此时每获得机器人的一个运动状态,即可依据对应关系获得一个特定外力。
[0084]
上述获得与机器人的运动状态相关的特定外力的过程不仅可应用于机器人的调试阶段,还可应用于机器人的正式工作过程中。
[0085]
在一些应用场景中,上述获得与机器人的运动状态相关的特定外力的过程应用于机器人的正式工作过程中,获得与机器人的运动状态相关的特定外力,包括:
[0086]
获得机器人的控制器的临时输出值,其中,临时输出值和临时外力之和用于控制机器人的执行机构,机器人的运动状态是在执行机构的驱动下实现的;在前述实施例中已经确定了机器人的全部运动状态与特定外力的一一对应关系,本步骤中的临时外力为依据对应关系确定的与机器人的运动状态(这里的运动状态指的是机器人实际的运动状态,与对应关系中的运动状态不同)相关的特定外力,即,在机器人的正式工作过程中,通过下述步骤对特定外力进行进一步的迭代校正;
[0087]
在临时输出值不满足特定条件的情况下,根据临时输出值对临时外力进行迭代;
[0088]
在临时输出值满足特定条件的情况下,确定此时的临时外力为机器人的运动状态相关的特定外力。
[0089]
在将上述获得与机器人的运动状态相关的特定外力的技术方案直接应用于机器人的正式工作过程后,实现了对特定外力的再次校正,进一步提高了特定外力的准确度。
[0090]
可选地,根据临时输出值对临时外力进行迭代,包括:
[0091][0092]
其中,f(t)为迭代后的临时外力,f(t-1)为迭代前的临时外力,f
e
(t)为临时输出值,α为系数,β为系数,m为第二设定值。α和β反映迭代步长,α和β取值越大,则迭代速度越快,迭代最终获得的特定外力的准确度越低,α和β取值越小,则迭代速度越慢,迭代最终获
得的特定外力的准确度越高,可依据对迭代速度以及迭代准确度的需求设置α和β的具体数值,本公开实施例对α和β的具体数值不做具体限定。第二设定值为趋近于零的一个数值,例如,第二设定值的数值范围为[-0.5,0.5],第二设定值可以是0、0.1、0.2、0.3、0.4和0.5中的任意一个。
[0093]
在特定外力包括摩擦力/摩擦力矩的情况下,f(t)为摩擦力/摩擦力矩。这样可获得更加准确的摩擦力/摩擦力矩,进而实现对机器人更加精确的控制。
[0094]
在特定外力包括重力的情况下,f(t)=g(t),f(t-1)=g(t-1),g(t)为迭代后的重力或重力沿一方向的分力,g(t-1)为迭代前的重力或重力沿一方向的分力。
[0095]
在特定外力包括重力矩的情况下,f(t)=g(t)
×
sinθ,f(t-1)=g(t-1)
×
sinθ,θ为机器人的机械臂(例如前述腕关节机器人中手柄与转轴之间的机械臂)与竖直方向的角度,g(t)为迭代后的重力或重力沿一方向的分力,g(t-1)为迭代前的重力或重力沿一方向的分力。
[0096]
在实际应用中,机器人的质量有所损失,或者,机器人的负载发生变化,采用上述技术方案可获得更加准确的重力/重力矩,进而实现对机器人更加准确的控制。
[0097]
在控制器的数量为一个的情况下,根据该一个控制器的临时输出值对摩擦力/摩擦力矩进行迭代,和/或,根据该一个控制器的临时输出值对重力/重力矩进行迭代。
[0098]
在控制器的数量为两个的情况下,根据速度控制器的速度临时输出值对摩擦力/摩擦力矩进行迭代;根据位置控制器的位置临时输出值对重力/重力矩进行迭代。
[0099]
图2是本公开实施例提供的一种依据特定外力和控制输出值对执行机构进行控制的过程的示意图。结合图2所示,依据特定外力和控制输出值对执行机构进行控制,包括:
[0100]
s201、确定特定外力对应的补偿值,以将特定外力补偿至设定范围。
[0101]
其中,设定范围的上限值远远小于特定外力的数值,定范围下限远远小于特定外力的具体数值,例如,设定范围的上限值可以是特定外力的数值的1/20及以下,设定范围的下限值可以是特定外力的数值的1/20及以下。设定范围可表示补偿精度,设定范围的上限值越大,可表示补偿精度越差,设定范围的下限值越低,可表示补偿精度越高,例如,设定范围的下限值可为零。本公开实施例仅对设定范围的取值范围做示例性说明,可依据实际需求选择设定范围的具体范围。
[0102]
依据机器人正向运动学对补偿值进行运算,获得执行机构输出的驱动力,计算该驱动力与特定外力的矢量差,若该矢量差的绝对值在设定范围以内(矢量差的绝对值大于或等于设定范围的下限值,且小于或等于设定范围的上限值),则可表示该补偿值已将特定外力补偿至设定范围;若该矢量差的绝对值在设定范围以外,则表示该补偿值未将特定外力补偿值设定范围。
[0103]
在一些具体应用中,在获得具体的特定外力后,依据机器人逆向运动学计算出特定外力施加在执行机构上的作用,例如计算出特定外力施加在电机上扭矩,再依据特定外力施加在执行机构上的作用的反作用,计算出需要施加在执行机构上的驱动信号的计算值,例如计算出需要施加在电机上的电压或脉冲,再结合机器人的控制器可输出的控制输出值的最小刻度,取一最临近上述驱动信号的计算值的值,作为补偿值(该补偿值可将特定外力补偿值设定范围);其中,最小刻度为控制器的实际参数,最小刻度越小,表示控制器的控制精度越高。
[0104]
s202、根据补偿值与控制输出值之和,控制执行机构。
[0105]
执行机构在接收到补偿值与控制输出值之和后,输出与该和相对应的驱动力,进而将特定外力施加在机器人上的作用(力或力矩)补偿至设定范围。
[0106]
在上述整个过程中,确定特定外力对应的补偿值可将特定外力补偿至设定范围,特定外力不影响控制器内部的计算过程,即,控制器在计算过程中只需消除机器人的预设被控变量值(速度值或位置值)与机器人的实际被控变量值(速度值或位置值)之间的差值,而无需消除特定外力与零之间的差值,控制器中表征刚度的参数可设置为较小值,进而实现机器人低刚度运动控制。
[0107]
图3是本公开实施例提供的一种获得与机器人的运动状态相关的特定外力的过程的示意图。结合图3所示,获得与机器人的运动状态相关的特定外力,包括:
[0108]
s301、获得表征运动状态的实际被控变量值。
[0109]
其中,实际被控变量值包括:机器人的实际速度值,或者,机器人的实际位置值,或者,机器人的实际速度值和实际位置值。
[0110]
在一些实际应用中,通过位置传感器检测机器人的实际位置值,或者,利用电机的转动角度,通过机器人正向运动学计算出机器人的实际位置值;通过速度传感器检测机器人的实际速度值,或者,利用电机的转动速度,通过机器人正向运动学计算出机器人的实际速度值。
[0111]
s302、根据实际被控变量值确定特定外力。
[0112]
该确定特定外力的过程包括:根据机器人的实际速度值确定机器人所受摩擦力/摩擦力矩;或者,根据机器人的实际位置值确定机器人所受重力/重力矩;或者,根据机器人的实际速度值确定机器人所受摩擦力/摩擦力矩,且根据机器人的实际位置值确定机器人所受重力/重力矩。对于可在平面内做任意运动的机器人,例如前述上肢康复机器人,需确定机器人所受重力,或者,摩擦力,或者,重力和摩擦力;对于可在平面内沿以旋转轴做圆周运动的机器人,例如前述腕关节康复机器人,需确定机器人所受重力矩,或者,摩擦力矩,或者,重力矩和摩擦力矩。
[0113]
图4是本公开实施例提供的一种获得机器人的控制器的控制输出值的过程的示意图。结合图4所示,获得机器人的控制器的控制输出值,包括:
[0114]
s401、获得表征运动状态的实际被控变量值。
[0115]
s402、将实际被控变量值反馈至控制器的输入端。
[0116]
s403、获得控制器的控制输出值。
[0117]
控制器依据其内部预设控制算法,有输入端输入的值计算出控制输出值。
[0118]
通过上述过程即可获得控制器的控制输出值。
[0119]
具体而言,在机器人控制系统的系统框图不同的情况下,采取不同的方式获得控制控制器的控制输出值。
[0120]
图5是本公开实施例提供的一种用于将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程的示意图。结合图5所示,在控制器包括位置控制器和速度控制器的情况下,将实际被控变量值反馈至控制器的输入端,获得控制器的控制输出值,包括:
[0121]
s501、计算预设位置值与实际位置值的差,获得位置差值。
[0122]
s502、获得位置控制器根据位置差值计算的第一输出值。
[0123]
s503、计算第一输出值与实际速度值的差,获得第一差值。
[0124]
s504、获得速度控制器根据第一差值计算的第二输出值,以第二输出值作为控制输出值。
[0125]
通过将上述过程即可获得控制器的控制输出值,并且,此时可对机器人的实际位置值和实际速度值实现较佳的控制。
[0126]
在控制器包括位置控制器和速度控制器的情况下,还有一种获得控制器的控制输出值的过程,如图6所示,将实际被控变量值反馈至控制器的输入端,获得控制器的控制输出值,包括:
[0127]
s601、计算预设速度值与实际速度值的差,获得速度差值。
[0128]
s602、获得速度控制器根据速度差值计算的第三输出值。
[0129]
s603、计算第三输出值与实际位置值的差,获得第二差值。
[0130]
s604、获得位置控制器根据第二差值计算的第四输出值,以第四输出值作为控制输出值。
[0131]
通过上述过程即可获得控制器的控制输出值,并且,此时可对机器人的实际位置值和实际速度值实现较佳的控制。
[0132]
除了上述获得控制器的控制输出值的过程意外,在控制器的数量为一个的情况下,如图7所示,将实际被控变量值反馈至控制器的输入端,获得控制器的控制输出值,包括:
[0133]
s701、计算预设位置值与实际位置值的差,获得位置差值。
[0134]
s702、获得控制器根据位置差值计算的控制输出值。
[0135]
其中,控制器的数量为一个。
[0136]
通过上述过程即可获得控制器的控制输出值,并且,此时可对机器人的实际位置值实现较佳的控制。
[0137]
在控制器的数量为一个的情况下,本公开实施例还提供了一种将实际被控变量值反馈至控制器的输入端并获得控制器的控制输出值的过程,结合图8所示,将实际被控变量值反馈至控制器的输入端,获得控制器的控制输出值,包括:
[0138]
s801、计算预设速度值与实际速度值的差,获得速度差值;
[0139]
s802、获得控制器根据速度差值计算的控制输出值。
[0140]
其中,控制器的数量为一个。
[0141]
通过上述过程即可获得控制器的控制输出值,并且,此时可对机器人的实际速度值实现较佳的控制。
[0142]
前述用于机器人低刚度运动控制的方法应用于机器人控制系统中。结合图9所示,机器人控制系统包括控制器10、执行机构20。其中,机器人的运动状态是在执行机构20的驱动下实现的,可以获得该运动状态下的特定外力,并确定出特定外力对应的补偿值,再计算控制器10的控制输出值与补偿值的和,并根据控制输出值与补偿值的和对执行机构20进行控制。
[0143]
结合图10所示,在另一些应用场景中,机器人控制系统包括位置控制器11、速度控制器12和执行机构20;依据机器人的实际位置值pm确定重力/重力矩,以及重力/重力矩对
应的补偿值;根据机器人的实际速度值vm确定摩擦力/摩擦力矩,以及摩擦力/摩擦力矩对应的补偿值;获得预设位置值pr与实际位置值pm的差值,获得位置差值pe;获得位置控制器11根据位置差值pe计算的第一输出值vr;计算第一输出值vr与实际速度值vm的差值,获得第一差值ve;获得速度控制器12根据第一差值ve计算的第二输出值τr,计算第二输出值τr、重力/重力矩对应的补偿值、摩擦力/摩擦力矩对应的补偿值三者之和,根据三者之和对执行机构20进行控制。
[0144]
结合图11所示,在又一些应用场景中,机器人控制系统包括速度控制器12、位置控制器11和执行机构20;依据机器人的实际位置值pm确定重力/重力矩,以及重力/重力矩对应的补偿值;根据机器人的实际速度值vm确定摩擦力/摩擦力矩,以及摩擦力/摩擦力矩对应的补偿值;计算预设速度值vr与实际速度值vm的差,获得速度差值ve;获得速度控制器12根据速度差值ve计算的第三输出值pr;计算第三输出值pr与实际位置值pm的差,获得第二差值pe;获得位置控制器11根据第二差值pe计算的第四输出值τr,计算第四输出值τr、重力/重力矩对应的补偿值、摩擦力/摩擦力矩对应的补偿值三者之和,根据三者之和对执行机构20进行控制。
[0145]
结合图12所示,在还有一些应用场景中,机器人控制系统包括控制器10和执行机构20;依据机器人的实际位置值pm确定重力/重力矩,以及重力/重力矩对应的补偿值;根据机器人的实际速度值vm确定摩擦力/摩擦力矩,以及摩擦力/摩擦力矩对应的补偿值;计算预设速度值vr与实际速度值vm的差,获得速度差值ve;获得控制器10根据速度差值ve的控制输出值τr,计算控制输出值τr、重力/重力矩对应的补偿值、摩擦力/摩擦力矩对应的补偿值三者之和,根据三者之和对执行机构20进行控制。
[0146]
结合图13所示,机器人控制系统包括控制器10和执行机构20;依据机器人的实际位置值pm确定重力/重力矩,以及重力/重力矩对应的补偿值;计算预设位置值pr与实际位置值pm的差,获得位置差值pe;获得控制器10根据位置差值pe计算的控制输出值τr,计算控制输出值τr、重力/重力矩对应的补偿值、摩擦力/摩擦力矩对应的补偿值三者之和,根据三者之和对执行机构20进行控制。
[0147]
图14是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图。结合图14所示,用于机器人低刚度运动控制的装置,包括:第一获得模块141、第二获得模块142和控制模块143;其中,第一获得模块141被配置为获得与机器人的运动状态相关的特定外力,运动状态是在机器人的执行机构的驱动下实现的,第二获得模块142被配置为获得机器人的控制器的控制输出值,控制模块143被配置为依据特定外力和控制输出值对执行机构进行控制。
[0148]
结合图15所示,控制模块143包括:第一确定单元1431和控制单元1432,其中,第一控制单元1431被配置为确定特定外力对应的补偿值,以将特定外力补偿至设定范围;控制单元1432被配置为根据补偿值与控制输出值之和,控制执行机构。
[0149]
结合图16所示,第一获得模块141包括:第一获得单元1411和第二确定单元1412,其中,获得单元1411被配置为获得表征运动状态的实际被控变量值;第二确定单元1412被配置为根据实际被控变量值确定特定外力;实际被控变量值包括机器人的实际速度值和/或机器人的实际位置值。
[0150]
可选地,第二确定单元1412被具体配置为根据机器人的实际速度值确定机器人所
受摩擦力/摩擦力矩;和/或根据机器人的实际位置值确定机器人所受重力/重力矩。
[0151]
结合图17所示,第二获得模块142包括:第二获得单元1421、反馈单元1422和第三获得单元1423;其中,第二获得单元1421被配置为获得表征运动状态的实际被控变量值;反馈单元1422被配置为将实际被控变量值反馈至控制器的输入端;第三获得单元1423被配置为获得控制器的控制输出值;实际被控变量值包括机器人的实际速度值和/或机器人的实际位置值。
[0152]
可选地,第三获得单元1423被具体配置为计算预设位置值与实际位置值的差,获得位置差值;获得位置控制器根据位置差值计算的第一输出值;计算第一输出值与实际速度值的差,获得第一差值;获得速度控制器根据第一差值计算的第二输出值,以第二输出值作为控制输出值;其中,控制器包括位置控制器和速度控制器。
[0153]
可选地,第三获得单元1423被具体配置为计算预设速度值与实际速度值的差,获得速度差值;获得速度控制器根据速度差值计算的第三输出值;计算第三输出值与实际位置值的差,获得第二差值;获得位置控制器根据第二差值计算的第四输出值,以第四输出值作为控制输出值;其中,控制器包括位置控制器和速度控制器。
[0154]
可选地,第三获得单元1423被具体配置为计算预设位置值与实际位置值的差,获得位置差值;获得控制器根据位置差值计算的控制输出值;
[0155]
可选地,第三获得单元1423被具体配置为计算预设速度值与实际速度值的差,获得速度差值;获得控制器根据速度差值计算的控制输出值。
[0156]
图18是本公开实施例提供的一种用于机器人低刚度运动控制的装置的示意图。结合图18所示,用于机器人低刚度运动控制的装置包括:
[0157]
处理器(processor)181和存储器(memory)182,还可以包括通信接口(communication interface)183和总线184。其中,处理器181、通信接口183、存储器182可以通过总线184完成相互间的通信。通信接口183可以用于信息传输。处理器181可以调用存储器182中的逻辑指令,以执行前述实施例提供的用于机器人低刚度运动控制的方法。
[0158]
此外,上述的存储器182中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0159]
存储器182作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器181通过运行存储在存储器182中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
[0160]
存储器182可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器182可以包括高速随机存取存储器,还可以包括非易失性存储器。
[0161]
本公开实施例提供了一种康复机器人,包含前述实施例提供的用于机器人低刚度运动控制的装置。
[0162]
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行前述实施例提供的用于机器人低刚度运动控制的方法。
[0163]
本公开实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计
算机执行前述实施例提供的用于机器人低刚度运动控制的方法。
[0164]
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
[0165]
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或一个以上指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例中方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机读取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
[0166]
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
[0167]
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0168]
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0169]
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或一个以上用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1