本发明属于肌肉骨骼机器人控制领域,具体涉及了一种非线性肌肉骨骼机器人控制方法、系统及设备。
背景技术:
目前,在自动化生产装配领域,不仅对执行操作的机器手臂的控制精度有很高要求,对机器人的灵活性以及鲁棒性也有很高得要求。现有机械臂已经具有较高的位置控制精度,但是其灵活性以及柔性较差,难以完成精细的操作任务,例如3c行业对于各种电子器件的组装,是非常困难的。目前对于该领域的组装工作主要依赖人工完成,快速且重复性的劳动对人的身心是一种摧残。为了更大程度的解放这一类劳动力,开发出一种具有类人柔顺性的机械手臂并设计一种鲁棒的控制器是至关重要的。
现有针对提升机械臂柔性和灵活性的方案一般有两种:一是通过改进传统关节连杆电机的控制方法,使其作业具有柔性,例如采用阻抗控制;但此方法需要较高的力传感精度,且控制频率要求很高,通信要求严格,因此其鲁棒性难以保证。二是通过仿生结构实现类人肌肉骨骼机械臂,希望借鉴人的结构特性和肌肉驱动特性实现柔性以及灵活性装配操作。现存仿生肌肉骨骼系统一般采用简化的类人肌肉排布和气动肌肉进行驱动,其缺点在于无法精确模拟生物肌肉的驱动特性,且气动控制精度较低,受气压和温度影响较大;还有采用电机拉线作为驱动和传动系统的机械臂,已经有一定的发展,但其控制精度和类人柔顺性较差,不具备装配作业能力。
技术实现要素:
为了解决现有技术中的上述问题,即现有拉线式骨骼机器人拉线布局不合理,拉线力输出特性仿生程度不够,冗余度低,控制精度低、难度大的问题,本发明提供了一种非线性肌肉骨骼机器人控制方法,该方法包括:
步骤s10,根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
步骤s20,基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
步骤s30,基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
步骤s40,基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
步骤s50,以将tj时刻期望关节角与响应关节角的误差作为pid控制器的输入信号,通过所述pid控制器tj 1时刻的输出信号进行所述机器人前馈控制器输出信号的调整;
步骤s60,基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
在一些优选的实施例中,所述机器人的关节转矩,其计算方法为:
其中,τ代表机器人的关节转矩,m代表连杆惯性矩阵,c代表科里奥利力与离心力矩阵,g代表重力变化矩阵,θ、
在一些优选的实施例中,所述机器人每条肌肉的肌肉力,其计算方法为:
ftd=w-1τ
其中,ftd代表肌肉力,τ代表机器人的关节转矩,w代表力臂矩阵,w-1为w的逆矩阵。
在一些优选的实施例中,所述机器人每条肌肉的肌纤维长度,其计算方法为:
lm=(lmt-ltd)/cosα
其中,lm代表肌纤维长度,lmt代表肌肉长度,ltd代表肌腱长度,α代表羽状角。
在一些优选的实施例中,所述肌纤维变化速度,其计算方法为:
其中,im(t)代表时间t为变量的肌纤维变化速度,lm(t)和lm(t-1)分别代表t时刻和t-1时刻的肌纤维长度,δt代表t时刻和t-1时刻的时间变化量。
在一些优选的实施例中,所述机器人前馈控制器激活信号模型为:
其中,a(t)为t时刻机器人前馈控制器控制信号,lm(t)和im(t)分别代表t时刻的肌纤维长度和肌纤维变化速度,ftd(t)代表t时刻的肌肉力,fpe代表肌纤维被动伸长产生的力,fl代表力-长度系数,fv代表力-速度系数。
在一些优选的实施例中,所述pid控制器tj 1时刻的输出信号,其表示为:
其中,kp为比例系数,ki为积分系数,kd为微分系数,utj为pid控制器tj时刻的输出信号,
在一些优选的实施例中,所述fpe、fl、fv通过thelen2003肌肉动力学模型的函数关系获取。
本发明的另一方面,提出了一种非线性肌肉骨骼机器人控制系统,该系统包括以下模块:
肌肉力获取模块,配置为根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
肌肉长度获取模块,配置为基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
肌纤维变化速度获取模块,配置为基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
前馈控制器构建模块,配置为基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
反馈调整模块,配置为以将tj时刻期望关节角
机器人控制模块,配置为基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
本发明的第三方面,提出了一种非线性肌肉骨骼机器人控制设备,包括:
至少一个处理器;以及
与至少一个所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的非线性肌肉骨骼机器人控制方法。
本发明的有益效果:
(1)本发明非线性肌肉骨骼机器人控制方法,为了提高现存拉线式机器人仿生特性,引入了生物肌肉动力学,将肌肉力输出与激活(控制)信号、肌肉长度、肌肉收缩速度(肌纤维变化速度)等状态相结合,融合多个空间的变量,提升整个系统的整体性和鲁棒性,使其具有更好的控制性能。
(2)本发明非线性肌肉骨骼机器人控制方法,针对现存机器人冗余度低,并结合生物肌肉力只输出拉力的特性,对每个自由度增加了拮抗肌肉对,提升了整个系统的冗余性,使得任务完成具有多组控制信号的可能。
(3)本发明非线性肌肉骨骼机器人控制方法,考虑其强非线性和多解问题,结合生物肌肉动力学和拮抗肌肉对的冗余特性,给出了控制信号解空间,确定了系统轨迹跟踪控制的鲁棒范围,实现了精准的轨迹跟踪控制。
(4)本发明非线性肌肉骨骼机器人控制方法,将期望关节角和响应关节角之间的误差作为pid控制器的输入,通过pid控制器的输出进行前馈控制器的输出调整,最终可以提高模型的鲁棒性,并有效提高了轨迹跟踪的稳定性,减小了实时误差。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明非线性肌肉骨骼机器人控制方法的前馈控制与pid控制融合控制的示意图;
图2是本发明非线性肌肉骨骼机器人控制方法的肌肉骨骼机器人模型;
图3是本发明非线性肌肉骨骼机器人控制方法的肌肉骨骼机器人动力学模型框图;
图4是本发明非线性肌肉骨骼机器人控制方法的肌肉控制信号解空间示意图;
图5是本发明非线性肌肉骨骼机器人控制方法一种实施例的期望轨迹与实际运动轨迹对比示意图;
图6是本发明非线性肌肉骨骼机器人控制方法一种实施例的加入pid控制后机器人仿真控制示意图;
图7是本发明非线性肌肉骨骼机器人控制方法一种实施例的加入pid控制后机器人仿真结果中末端位置实时误差图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明提供一种非线性肌肉骨骼机器人控制方法,本方法针对现有拉线式肌肉骨骼机器人系统主要存在拉线布局不合理,拉线力输出特性仿生程度不够等问题,进行了肌肉着力点的排布设计,并引入生物肌肉力-长度-速度-激活信号模型,保留生物肌肉非线性,强耦合等特性,使得整个系统具有更高的冗余度以及鲁棒性,从而提升系统的灵活性,以及控制稳定性,为实现灵巧的3c行业装配作业提供技术和理论支撑。根据本发明所建立的系统,提出一种鲁棒的前馈控制器,结合pid调节,可以实现精准的轨迹跟踪控制;并结合系统的冗余特性,给出了控制信号解空间,确定了系统轨迹跟踪控制的鲁棒范围。
本发明的一种非线性肌肉骨骼机器人控制方法,该方法包括:
步骤s10,根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
步骤s20,基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
步骤s30,基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
步骤s40,基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
步骤s50,以将tj时刻期望关节角与响应关节角的误差作为pid控制器的输入信号,通过所述pid控制器tj 1时刻的输出信号进行所述机器人前馈控制器输出信号的调整;
步骤s60,基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
为了更清晰地对本发明非线性肌肉骨骼机器人控制方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。
本发明第一实施例的非线性肌肉骨骼机器人控制方法,包括步骤s10-步骤s60,各步骤详细描述如下:
步骤s10,根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度。
机器人的关节转矩,其计算方法如式(1)所示:
其中,τ代表机器人的关节转矩,m代表连杆惯性矩阵,c代表科里奥利力与离心力矩阵,g代表重力变化矩阵,θ、
机器人每条肌肉的肌肉力,其计算方法如式(2)所示:
ftd=w-1τ(2)
其中,ftd代表肌肉力,τ代表机器人的关节转矩,w代表力臂矩阵,w-1为w的逆矩阵。
步骤s20,基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度。
步骤s30,基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度。
机器人每条肌肉的肌纤维长度,其计算方法如式(3)所示:
lm=(lmt-ltd)/cosα(3)
其中,lm代表肌纤维长度,lmt代表肌肉长度,ltd代表肌腱长度,α代表羽状角。
肌纤维变化速度,其计算方法如式(4)所示:
其中,
步骤s40,基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器。
机器人前馈控制器激活信号模型如式(5)所示:
其中,a(t)为t时刻机器人前馈控制器控制信号,lm(t)和
fpe、fl、fv通过thelen2003肌肉动力学模型的函数关系获取。
如图2所示,为本发明非线性肌肉骨骼机器人控制方法的肌肉骨骼机器人模型,包含由六条拉线肌肉驱动的两个旋转关节,其动力学模型框图如图3所示,采用本发明所提出的前馈控制器设计方法,对所构建的机器人进行建模,得出图4所示的解空间,并进行轨迹跟踪任务,其实现的轨迹跟踪效果如图5所示。
图5上图表示完成此轨迹跟踪任务,肌肉1和肌肉2可以取的激活信号解空间,图5中图表示肌肉3、4的激活信号空间,图5下图表示肌肉5和6的激活信号部分解空间,其特征在于沿着时间轴任取一条空间内的曲线,均可以配合其他肌肉完成此任务。
图4的控制信号解空间,通过所设计的前馈控制器计算方法获得的控制信号,并不是一个特定的解,而是一个范围,则再此范围内的所有控制信号组合,均可以完成此项轨迹跟踪任务。假设控制信号受到干扰,但仍然在所示空间内,则控制任务仍可以被完成,从而体现出本发明前馈控制器的鲁棒性。
图4中深色的线表示,在此空间中任取了一组控制信号,给到所建立的六肌肉双关节系统中,图5中虚线为重合的末端轨迹和期望轨迹,可见本发明方法跟踪效果良好。
步骤s50,以将tj时刻期望关节角与响应关节角的误差作为pid控制器的输入信号,通过所述pid控制器tj 1时刻的输出信号进行所述机器人前馈控制器输出信号的调整。
pid控制器tj 1时刻的输出信号,其表示如式(6)所示:
其中,kp为比例系数,ki为积分系数,kd为微分系数,
步骤s60,基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
本发明通过仿真方法验证pid在实际应用中的作用,如图6所示,为本发明非线性肌肉骨骼机器人控制方法一种实施例的加入pid控制后机器人仿真控制示意图,所搭建的仿人肌肉臂模型具备7自由度:分别是肩关节3个自由度、轴关节1个自由度、小臂扭转1个自由度、腕关节2个自由度。记第i关节在t时刻的角位移为
图6中机械臂末端几乎完全重合的线为机械臂末端期望轨迹和机械臂末端实时响应轨迹,图7为本发明非线性肌肉骨骼机器人控制方法一种实施例的加入pid控制后机器人仿真结果中末端位置实时误差图,从图中可以看出,本发明方法可以实现在4mm实时误差下的轨迹跟踪,可见本发明方法控制的机械臂模型具备较为稳定的运动。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
本发明第二实施例的非线性肌肉骨骼机器人控制系统,该系统包括以下模块:
肌肉力获取模块,配置为根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
肌肉长度获取模块,配置为基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
肌纤维变化速度获取模块,配置为基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
前馈控制器构建模块,配置为基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
反馈调整模块,配置为以将tj时刻期望关节角
机器人控制模块,配置为基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的非线性肌肉骨骼机器人控制系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种非线性肌肉骨骼机器人控制设备,包括:
至少一个处理器;以及与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的非线性肌肉骨骼机器人控制方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
1.一种非线性肌肉骨骼机器人控制方法,其特征在于,该方法包括:
步骤s10,根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
步骤s20,基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
步骤s30,基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
步骤s40,基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
步骤s50,以将tj时刻期望关节角与响应关节角的误差作为pid控制器的输入信号,通过所述pid控制器tj 1时刻的输出信号进行所述机器人前馈控制器输出信号的调整;
步骤s60,基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
2.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述机器人的关节转矩,其计算方法为:
其中,τ代表机器人的关节转矩,m代表连杆惯性矩阵,c代表科里奥利力与离心力矩阵,g代表重力变化矩阵,θ、
3.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述机器人每条肌肉的肌肉力,其计算方法为:
ftd=w-1τ
其中,ftd代表肌肉力,τ代表机器人的关节转矩,w代表力臂矩阵,w-1为w的逆矩阵。
4.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述机器人每条肌肉的肌纤维长度,其计算方法为:
lm=(lmt-ltd)/cosα
其中,lm代表肌纤维长度,lmt代表肌肉长度,ltd代表肌腱长度,α代表羽状角。
5.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述肌纤维变化速度,其计算方法为:
其中,
6.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述机器人前馈控制器激活信号模型为:
其中,a(t)为t时刻机器人前馈控制器控制信号,lm(t)和
7.根据权利要求1所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述pid控制器tj 1时刻的输出信号,其表示为:
其中,kp为比例系数,ki为积分系数,kd为微分系数,
8.根据权利要求1-7任一项所述的非线性肌肉骨骼机器人控制方法,其特征在于,所述fpe、fl、fv通过thelen2003肌肉动力学模型的函数关系获取。
9.一种非线性肌肉骨骼机器人控制系统,其特征在于,该系统包括以下模块:
肌肉力获取模块,配置为根据拉格朗日动力学的逆,前馈控制器输入,计算机器人的关节转矩,并结合机器人的力臂矩阵获取机器人每条肌肉的肌肉力;所述前馈控制器输入包括期望关节角和期望关节角速度;
肌肉长度获取模块,配置为基于thelen2003肌肉动力学模型的肌肉力与肌腱长度的函数关系,获取机器人每条肌肉的肌腱长度,并根据机器人肌肉在骨骼上的几何分布关系获取机器人每条肌肉长度;
肌纤维变化速度获取模块,配置为基于所述机器人每条肌肉长度和肌腱长度,计算机器人每条肌肉的肌纤维长度,并通过后向差分获取肌纤维变化速度;
前馈控制器构建模块,配置为基于所述机器人每条肌肉的肌肉力、肌纤维长度和变化速度,构建机器人前馈控制器;
反馈调整模块,配置为以将tj时刻期望关节角
机器人控制模块,配置为基于调整后的tj 1时刻的控制信号,控制机器人按照期望轨迹运动。
10.一种非线性肌肉骨骼机器人控制设备,其特征在于,包括:
至少一个处理器;以及
与至少一个所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现权利要求1-8任一项所述的非线性肌肉骨骼机器人控制方法。
技术总结