一种仿鱼游动机器人运动控制装置及方法转让专利

申请号 : CN200910082083.2

文献号 : CN101870109B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 喻俊志丁锐杨清海谭民

申请人 : 中国科学院自动化研究所

摘要 :

本发明为一种仿鱼游动机器人运动控制装置及方法,由尾部关节CPG单元和胸鳍CPG单元耦合而成的CPG模型,该模型由十个非线性振荡器构成,各个振荡器的激励门限值不尽相同。通过饱和函数调节各个振荡器的频率和幅值,协调CPG模型的输入激励信号,改变CPG网络的输出行为,控制机器人实现不同的运动模式。将这种控制方法最终在嵌入式微处理器中集成,能够在线实现仿鱼游动机器人的水下运动控制。

权利要求 :

1.一种仿鱼游动机器人运动控制装置,包含仿鱼游动机器人的左胸鳍、右胸鳍和多个尾部摆动关节,左胸鳍、右胸鳍位于头部左右两侧,其特征在于:具有多个CPG单元,包括:左胸鳍CPG单元、右胸鳍CPG单元和多个关节CPG单元;CPG为中枢模式发生器;

具有多个模块化仿鱼推进的关节JN构成机器人的尾部;

具有一饱和函数单元接收外部输入激励信号在线计算处理生成各个CPG单元的控制信号;

所述左胸鳍CPG单元和所述右胸鳍CPG单元分别固设于左胸鳍、右胸鳍上,所述左胸鳍CPG单元和右胸鳍CPG单元与饱和函数单元连接,在控制信号的控制下左胸鳍CPG单元和右胸鳍CPG单元控制左胸鳍和右胸鳍运动;

所述多个关节JN依仿鱼游动机器人的纵轴方向及头部的一端顺序设置多个关节;并且多个关节JN间相互动连接,在每个关节上设有一个关节CPG单元,所有的关节CPG单元在控制信号的作用下产生机器人推进的鱼体波,实现仿鱼机器人的游动,其中N自然数;

所述多个关节CPG单元分别与左胸鳍CPG单元和右胸鳍CPG单元之间连接,多个关节CPG单元向包括左胸鳍CPG单元和右胸鳍CPG单元的胸鳍CPG单元提供耦合权值和相位差,实现该关节的仿生控制。

2.根据权利要求1所述的仿鱼游动机器人运动控制装置,其特征在于,所述多个关节JN的数量,是根据仿鱼游动机器人身体结构特征调整关节的数量。

3.根据权利要求1所述的仿鱼游动机器人运动控制装置,其特征在于,所述每个关节CPG单元设有一对关节振荡器,所述一对关节振荡器之间的相位差设定为π;每对关节振荡器分别对应于该关节运动的屈肌和伸肌,每对关节振荡器根据它们之间的耦合权值和相位差相互抑制,实现该关节的仿生控制;每个关节振荡器所采用的振荡器数学模型如下所示:式中,θi和ai为振荡器i状态变量,分别表示振荡器i的相位和幅值,θj和aj为振荡器j状态变量,分别表示振荡器j的相位和幅值, 和 为其一阶导数, 为二阶导数;fi和Ai决定振荡器i的内在频率和幅值;τi为时间常量,决定ai收敛到Ai的速度;振荡器i和振荡器j间的耦合关系由耦合权值wij和相位差φij确定,xi为振荡器i的输出。

4.根据权利要求3所述的仿鱼游动机器人运动控制装置,其特征在于,所述左胸鳍CPG单元和右胸鳍CPG单元分别设有一个左胸鳍振荡器和一个右胸鳍振荡器,采用同关节振荡器相同的振荡器数学模型。

5.根据权利要求1所述的仿鱼游动机器人运动控制装置,其特征在于,所述多个CPG单元接收的输入激励信号通过对各摆动关节设置不同门限值,随着输入激励信号增大各关节按自后向前的顺序逐渐参与到摆动中,实现关节摆动的长度控制,利用摆动长度实现多关节仿鱼游动机器人的运动控制。

6.一种使用权利要求3所述的仿鱼游动机器人运动控制装置的控制方法,其特征在于,

首先利用饱和函数单元接收来自外部的输入激励信号drive,经饱和函数单元调节处理后输出具有一振荡频率f和一振幅信号A的控制信号;

然后具有振荡频率f和振幅信号A的控制信号控制左胸鳍振荡器和右胸鳍振荡器及尾部各关节振荡器的摆动;

振荡器i和振荡器j间的耦合关系通过振荡器的数学模型中的耦合权值wij和相位差φij决定;

再根据各个振荡器间的耦合关系对振荡频率f和振幅信号A进行调整,生成控制左胸鳍、右胸鳍和尾部的多个关节JN振荡的振荡信号,用于使仿鱼游动机器人产生由前到后传播的行波推进,实现仿鱼游动。

7.根据权利要求6的控制方法,其特征在于,尾部关节CPG单元和胸鳍CPG单元之间的耦合关系由权值wij和相位差φij确定,是根据一个有效激励值进行调整,当输入激励信号低于有效激励值时,胸鳍CPG单元和尾部关节CPG单元无耦合,其权值为0;反之,当输入激励信号达到有效激励值时,胸鳍CPG单元将“受迫”以尾部关节CPG单元的频率振荡,胸鳍CPG单元与尾部关节CPG单元两者协调摆动,尾部关节CPG单元单向抑制胸鳍CPG单元,其权值为30。

8.根据权利要求6的控制方法,其特征在于,所述左胸鳍CPG单元和右胸鳍CPG单元及尾部各关节CPG单元设有振荡器,对所述的各个振荡器控制参数最终在嵌入式微处理器上根据欧拉法采用C语言编程实现了在线计算,实时获得各个振荡器的频率和幅值,实现在舵机驱动能力、嵌入式微处理器处理速度的物理条件限制下最连续的位置控制。

9.根据权利要求8的控制方法,其特征在于,该左胸鳍CPG单元和右胸鳍CPG单元及尾部各关节CPG单元通过嵌入式微处理器实现了仿鱼游动机器人的水下运动控制;通过调节该运动控制装置的输入激励信号,将产生机器人的直行、转弯、上浮和下潜运动模式;当左右输入激励信号相同且大于激励门限值时,机器人直行;当左右输入激励信号不同且大于输入激励信号门限值时,机器人转弯,其中,当左输入激励信号大于右输入激励信号时,机器人右转,反之左转;另外,直行游动时,左右胸鳍初始时保持水平,初始偏转角度为0;采用与直行游动相同的控制方法,当给左右胸鳍同时附加一个向上的初始偏转角度时,实现仿鱼游动机器人的下潜运动;当给左右胸鳍同时附加一个向下的初始偏转角度时,实现仿鱼游动机器人的上浮运动。

说明书 :

一种仿鱼游动机器人运动控制装置及方法

技术领域

[0001] 本发明属于机电一体化领域,涉及多关节仿鱼游动机器人的水下运动控制方法,属于机电一体化领域。

背景技术

[0002] 常见的机器人运动控制方法主要有三种,一种是基于模型的方法:采用精确建模—最佳运动轨迹规划—反馈机制控制的思路,使机器人运动尽可能趋近理想轨迹;一种是基于行为的方法:采用感知—反射的控制思路,将一些漫无目的的局部动作合成有意义的生物行为,运动简单、灵活;还有一种是基于生物的控制方法,模拟自然界中动物最常见的节律运动。基于模型的控制方法比较复杂,基于行为的方法映射最直接,其智能水平取决于“基本能力”的多少,但“基本能力”一般不可修改;而生物控制方法能够协调多个运动自由度,根据接收的指令准确反应,并且具有经历自然界考验的复杂环境适应机制。随着工程技术的发展,生物控制方法中的基于中枢模式发生器(Central Pattern generator,CPG)越来越受到研究人员的关注。国内外将CPG应用于机器人控制中的有:日本九州工业大学采用的Matsuoka和Kimura模型应用于具有12个自由度的四足机器人在地面上的行走。中科院沈阳自动化研究所提出了采用循环抑制连接方式构成的CPG模型,应用在蛇形机器人上;L.O.Chua和Yang提出的CNN模型,用来组建大规模模拟信号处理系统;Ijspeert等人针对火蜥蜴的爬行和游泳双模运动,提出了由体CPG和肢CPG组成的耦合非线性振荡器模型。现有技术多立足于特定的仿生对象,CPG模型网络结构与仿生对象密切相关,而对多关节仿鱼游动机器人的仿生控制研究较少,本发明就是在此基础上提出了一种新的CPG模型网络结构,用来实现多关节仿鱼游动机器人的仿生运动控制。

发明内容

[0003] 本发明的目的是提供一种基于CPG模型的多关节仿鱼游动机器人水下运动控制装置及方法,以解决一种由胸鳍和尾部构成的仿鱼游动机器人在水下的运动控制。该方法充分利用机器人尾部和胸鳍协调推进的特点,提出了由尾部CPG和胸鳍CPG构成的CPG网络模型,包括模型的结构框架和非线性振荡器间的耦合关系。利用该CPG模型,能够实现仿鱼游动机器人的水下运动控制。
[0004] 为达到上述目的,本发明的一种仿鱼游动机器人运动控制装置,技术解决方案是:包含仿鱼游动机器人的左胸鳍、右胸鳍和多个尾部摆动关节,左胸鳍、右胸鳍位于头部左右两侧,还具有:
[0005] 多个CPG单元,包括:左胸鳍CPG单元、右胸鳍CPG单元和多个关节CPG单元;
[0006] 多个模块化仿鱼推进的关节JN构成机器人的尾部;
[0007] 一饱和函数单元接收外部输入激励信号在线计算处理生成各个CPG单元的控制信号;
[0008] 所述左胸鳍CPG单元和所述右胸鳍CPG单元分别固设于左胸鳍、右胸鳍上,所述左胸鳍CPG单元和右胸鳍CPG单元与饱和函数单元连接,在控制信号的控制下左胸鳍CPG单元和右胸鳍CPG单元控制左胸鳍和右胸鳍运动;
[0009] 所述多个关节JN依仿鱼游动机器人的纵轴方向及头部的一端顺序设置多个关节;并且多个关节JN间相互动连接,在每个关节上设有一对关节CPG单元,所有的关节CPG单元在控制信号的作用下运动,实现仿鱼机器人的游动;
[0010] 所述多个关节CPG单元分别与左胸鳍CPG单元和右胸鳍CPG单元之间连接,多个关节CPG单元向胸鳍CPG单元提供耦合权值和相位差,实现该关节的仿生控制。
[0011] 优选地,所述多个关节JN的数量,是根据仿鱼游动机器人身体结构特征调整关节的数量。
[0012] 优选地,所述每个关节CPG单元设有一对关节振荡器,所述一对关节振荡器之间的相位差设定为π;每对关节振荡器分别对应于该关节运动的屈肌和伸肌,每对关节振荡器根据它们之间的耦合权值和相位差相互抑制,实现该关节的仿生控制。每个关节振荡器所采用的振荡器数学模型如下所示:
[0013]
[0014] 式中,θi和ai为振荡器状态变量,分别表示振荡器i的相位和幅值, 和 为其一阶导数, 为二阶导数;fi和Ai决定振荡器i的内在频率和幅值;τi为时间常量,决定ai收敛到Ai的速度;振荡器i和振荡器j间的耦合关系由耦合权值wij和相位差φij确定,xi为振荡器i的输出。
[0015] 优选地,所述左胸鳍CPG单元和右胸鳍CPG单元分别设有一个左胸鳍振荡器和一个右胸鳍振荡器,采用同关节振荡器相同的振荡器数学模型。
[0016] 优选地,所述多个CPG单元接收的输入激励信号通过对各摆动关节设置不同门限值,随着输入激励信号增大各关节按自后向前的顺序逐渐参与到摆动中,实现关节摆动的长度控制,利用摆动长度实现多关节仿鱼游动机器人的运动控制。
[0017] 为达到上述目的,本发明的一种仿鱼游动机器人运动的控制方法,技术解决方案是:首先利用饱和函数单元接收来自外部的输入激励信号drive,经饱和函数单元调节处理后输出具有一振荡频率f和一振幅信号A的控制信号;然后具有振荡频率信号f和振幅信号A的控制信号控制左胸鳍振荡器和右胸鳍振荡器及尾部各关节振荡器的摆动;振荡器i和振荡器j间的耦合关系通过振荡器的数学模型中的耦合权值wij和相位差φij决定;
[0018] 再根据各个振荡器间的耦合关系对振荡频率f和振幅信号A进行调整,生成控制左胸鳍、右胸鳍和尾部的多个关节JN振荡的振荡信号,用于使仿鱼游动机器人产生由前到后传播的行波推进,实现仿鱼游动。
[0019] 优选地,尾部关节CPG单元和胸鳍CPG单元之间的耦合关系由权值wij和相位差φij确定,是根据一个有效激励值进行调整,当输入激励信号低于有效激励值时,胸鳍CPG单元和尾部关节CPG单元无耦合,其权值为0;反之,当输入激励信号达到有效激励值时,胸鳍CPG单元将“受迫”以尾部关节CPG单元的频率振荡,胸鳍CPG单元与尾部关节CPG单元两者协调摆动,尾部关节CPG单元单向抑制胸鳍CPG单元,其权值为30。
[0020] 优选地,所述左胸鳍CPG单元和右胸鳍CPG单元及尾部各关节CPG单元设有振荡器,对所述的各个振荡器控制参数最终在嵌入式微处理器上根据欧拉法采用C语言编程实现了在线计算,实时获得各个振荡器的频率和幅值,实现在现有舵机驱动能力、嵌入式微处理器处理速度的物理条件限制下最连续的位置控制。
[0021] 优选地,该左胸鳍CPG单元和右胸鳍CPG单元及尾部各关节CPG单元的仿鱼游动游动机器人水下运动控制在嵌入式微处理器上得以实现;通过调节该运动控制装置的输入激励信号,将产生机器人的直行、转弯、上浮下潜运动模式;当左右输入激励信号相同且大于激励门限值时,机器人直行;当左右输入激励信号不同且大于输入激励信号门限值时,机器人转弯,其中,当左输入激励信号大于右输入激励信号时,机器人右转,反之左转;另外,直行游动时,左右胸鳍初始时保持水平,初始偏转角度为0,采用与直行游动相同的控制方法,当给左右胸鳍同时附加一个向上的初始偏转角度时,实现仿鱼游动机器人的下潜运动;当给左右胸鳍同时附加一个向下的初始偏转角度时,实现仿鱼游动机器人的上浮运动。
[0022] 本发明的有益效果:提出CPG网络模型,结合具体的控制装置,最终在我们研制的机器人平台上集成,进行了多关节仿鱼游动的物理实验。实验结果表明了所提出的CPG模型的有效性,很好地模仿了生物鱼类的真实游动,具有一定的理论参考价值。

附图说明

[0023] 图1是多关节仿鱼游动机器人身体结构示意图;
[0024] 图21是多关节仿鱼游动机器人CPG网络模型;
[0025] 图22激励门限值示意图;
[0026] 图3是控制装置硬件结构示意图;
[0027] 图4是控制方法的流程图;
[0028] 图5是输入激励信号为1时直行游动波形对比结果示意图;
[0029] 图6是输入激励信号为1.5时直行游动波形对比结果示意图;
[0030] 图7是输入激励信号为2时直行游动波形对比结果示意图;
[0031] 图8是输入激励信号为2.5时直行游动波形对比结果示意图;
[0032] 图9是直行游动输入激励信号和游动速度关系示意图;
[0033] 图10是左右输入激励信号差异与转弯半径的关系示意图。

具体实施方式

[0034] 下面结合附图对基于中枢模式发生器(CPG)模型的多关节仿鱼游动机器人水下运动控制方法做出说明。
[0035] 一、仿鱼游动机器人CPG网络结构
[0036] 神经振荡器是CPG模型的基本组成单元,所采用的振荡器数学模型如公式(1)所示:
[0037]
[0038] 式中,θi和ai为振荡器状态变量,分别表示振荡器i的相位和幅值, 和 为其一阶导数, 为二阶导数;fi和Ai决定振荡器i的内在频率和幅值;τi为时间常量,决定ai收敛到Ai的速度;振荡器i和振荡器j间的耦合关系由权值wij和相位差φij确定,xi为振荡器i的输出。
[0039] 为了使多关节仿鱼游动机器人的游动性能更加接近于真实鱼类,需要一种更符合生物原型的控制方法来实现胸鳍和尾部的协调控制,从而获得快速高效的游动性能。
[0040] 图1给出了本发明方法使用的多关节仿鱼游动机器人身体结构示意图,包括一对胸鳍推进机构,如图1示出的胸鳍包含左胸鳍2、右胸鳍3,左胸鳍2、右胸鳍3位于头部1左右两侧,其往复摆动能驱动机器人水下前进;由多个模块化仿鱼推进的关节JN构成尾部4,依纵轴方向在头部1后方顺序布置,相互动连接,其协调摆动实现仿鱼游动,机器人是依靠头部1、左胸鳍2、右胸鳍3和尾部4的协调摆动产生由前到后传播的行波推进。其中,关节JN数量不固定,根据应用需求调整关节JN的数量。因此,针对多关节仿鱼游动机器人身体结构特征,得到多关节仿鱼游动机器人CPG网络的基本结构。
[0041] 如图21所示的多关节仿鱼游动机器人CPG网络结构,其中:在左胸鳍2和右胸鳍3上对应设置一个左胸鳍CPG单元和右胸鳍CPG单元,左胸鳍CPG单元和右胸鳍CPG单元中设置有一个振荡器;所述振荡器为非线性振荡器;尾部4包括多个模块化仿鱼推进的关节JN:采用N个关节JN,N为自然数,例如当实施例选用N=4个关节时,所述关节JN为第一关节J1、第二关节J2、第三关节J3和第四关节J4,实施关节JN数量的选择不再详细赘述;
实施所述关节JN时,每个关节JN对应有一个CPG单元,所述四个关节CPG单元包括:第一关节CPG单元41、第二关节CPG单元42、第三关节CPG单元43和第四关节CPG单元44。每个关节CPG单元各含有一个左关节振荡器和一个右关节振荡器,其中:所述第一关节CPG单元
41含有关节振荡器411和关节振荡器412;所述第二关节CPG单元42含有关节振荡器421和关节振荡器422;所述第三关节CPG单元43含有关节振荡器431和关节振荡器432;所述第四关节CPG单元44含有关节振荡器441和关节振荡器442。
[0042] 由上述知胸鳍和尾部两部分共有十个振荡器,所述的十个振荡器结构相同。
[0043] 图21中CPG网络的输入量为输入激励信号(drive),输入激励信号分为左右两部分:左输入激励信号dleft和右输入激励信号dright,将左输入激励信号dleft和右输入激励信号dright经饱和函数单元调节处理后得到各个振荡器的振荡频率信号f和振幅信号A。其中,左输入激励信号dleft驱动机器人头部1的左胸鳍2和尾部4的左侧身体,右输入激励信号dright驱动机器人头部1的右胸鳍3和尾部4的右侧身体。输入激励信号只有在转弯运动时才采用dleft和dright分别表示身体左右两侧输入激励信号的不同,否则统一以drive表示,以下不再赘述。图21中弧形线条代表各个振荡器之间存在连接关系,箭头为连接方向。
[0044] 机器人头部1左右两个对称的左胸鳍CPG单元、右胸鳍CPG单元构成胸鳍CPG,所述胸鳍具有单自由度,可以做往复摆动,运动形式比较简单,而实际鱼类胸鳍的摆动也仅限于鳍基的局部肌肉活动。鉴于胸鳍结构简单,为了便于描述尾部4的关节CPG单元和胸鳍CPG单元间的耦合关系,在实际中将左胸鳍CPG单元、右胸鳍CPG单元分别用一个非线性振荡器来表示,如图21;生物鱼类游动时,其左胸鳍2、右胸鳍3一般为同相摆动,因此将两个振荡器的相位差设定为0,它们之间为同相关系。此外,每个振荡器的输出作为其所在CPG单元的输出。
[0045] 仿生学研究表明,动物运动效应器官的屈肌和伸肌控制神经元由所述的一对非线性振荡器的互相抑制来表示。在尾部4的关节CPG中,各关节JN左右两侧的非线性关节振荡器分别对应于该关节运动的屈肌和伸肌,它们之间通过耦合权值wij和相位差φij相互抑制,实现该关节的仿生控制。尾部4的关节振荡器与胸鳍振荡器结构基本相同,各个关节振荡器相互协调产生尾部波状摆动的节律运动,它们的连接关系定义为三种,分别为自下而上、自上而下以及横向连接,如图21中弧形线条所示。这里,连接关系包括抑制权值和基于鱼体波传播方向的相位差。其中,横向连接的两个关节振荡器之间为反相关系,其关节振荡器输出的差值作为该关节CPG单元的输出,如图21中横向连接有关节振荡器411和关节振荡器412、关节振荡器421和关节振荡器422、关节振荡器431和关节振荡器432、关节振荡器441和关节振荡器442,其横向连接的两个振荡器的输出的差值作为其所处关节CPG单元的输出,而左胸鳍振荡器和右胸鳍振荡器的输出分别作为左胸鳍CPG单元和右胸鳍CPG单元的输出。
[0046] 仿鱼游动机器人在水下运动时,依靠左胸鳍2、右胸鳍3和尾部4的协调摆动推进,尾部的关节CPG单元和左胸鳍CPG单元、右胸鳍CPG单元之间存在某种耦合关系。当高速前进时,左胸鳍、右胸鳍和整个尾部4的波动保持一致,推动鱼体;当低速前进时,则靠左、右胸鳍单独波动或与尾部4微小的波动协调推进。可见,两者的连接关系中,尾部4的关节CPG单元对左胸鳍CPG单元、右胸鳍CPG单元起到抑制作用,因此,令尾部4的关节CPG单元单向抑制左胸鳍CPG单元、右胸鳍CPG单元,如示出单向抑制振荡器的弧形线条箭头指向,图21中含有关节振荡器411、关节振荡器421、关节振荡器431、关节振荡器441单向指向左胸鳍2,关节振荡器412、关节振荡器422、关节振荡器432、关节振荡器442单向指向右胸鳍3。
[0047] 二、CPG模型振荡器的激励门限值
[0048] 在自然界,大多数鱼类采用摆动频率和摆动幅值相协调的方法来实现速度调节。在缓慢游动时,只有尾部4的部分或胸鳍在小幅值摆动而产生推进力;当其加速游动或高速游动时,身体的摆动部全部参与高速波动。
[0049] 考虑到仿生对象的这种游动机制,并为了在低速游动时节约机器人能量,仿鱼游动机器人采用摆动部长度控制。如图22所示,当输入激励信号drive逐渐增加,但小于输入激励信号的最小门限值dlow(与第四关节J4的门限值dlow,4相等,且各关节左、右两侧关节振荡器的门限值相同,以下不再赘述)时,图21中的所有振荡器不起振,机器人保持静止;当输入激励信号drive达到第四关节J4的低门限值dlow,4时,图21中的关节振荡器441和关节振荡器442以及左胸鳍振荡器和右胸鳍振荡器开始振荡(左胸鳍振荡器门限值、右胸鳍振荡器门限值和第四关节J4门限值相同,也为门限值dlow,4),尾鳍是第四关节J4和左胸鳍
2、右胸鳍3摆动,机器人缓慢游动;输入激励信号drive增大到门限值dlow,3时,振荡频率增大,尾柄是第三关节J3参与到摆动中,关节振荡器431和关节振荡器432也开始振荡;输入激励信号drive继续增大到门限值dlow,2时,第二关节J2的左右关节振荡器421和关节振荡器422也参与摆动;当输入激励信号drive增大为门限值dlow,1时,图21中的所有振荡器起振,机器人左胸鳍2、右胸鳍3和尾部4都作为摆动部,驱动机器人游动。因此,通过给胸鳍和尾部各关节J1、J2、J3和J4分别设置不同的激励门限值dlow,1、dlow,2、dlow,3和dlow,4,实现利用摆动部长度获得机器人的水下仿鱼运动控制。
[0050] 三、CPG模型的饱和函数
[0051] 鱼类在水下游动时,其身体各部分的摆动频率和幅值一般不同。其胸鳍主要用于平衡身体和掌握运动方向,而依靠尾部后方三分之一处产生游动所需的动力。因此,仿鱼游动机器人各个振荡器在相同输入激励下具有不同的摆动频率和幅值,且尾鳍关节J4摆动幅值最大。在CPG模型中,我们通过定义一种饱和函数单元,并设置其参数来实现上述功能,具体实施如下:
[0052] 输入激励信号drive从门限值dlow,4开始逐渐增大的过程中,各个振荡器的频率f和幅值A也逐渐增加,表现为各关节摆动频率和幅值的增大。为了模仿鱼类的真实游动,各摆动部参与摆动的幅值不相同,表现为,尾鳍关节J4摆动幅值最大。当达到激励的高门限值dhigh时,振荡频率和幅值都达到最大值,机器人游动速度最快。当左、右输入激励信号dleft、dright大于高门限值dhigh时,振荡器并不停止,而是以高门限值对应的频率和幅值振荡,是:
[0053] if dleft,right≥dhigh dleft,right=dhigh
[0054] 因此,针对各关节JN参与摆动的幅值的不同,图21中所示的饱和函数在相同的输入激励信号drive下对尾部各关节CPG单元和左、右胸鳍CPG单元分别产生不同的摆动幅值。为简化起见,所有的振荡器幅值均采用相同的线性函数形式
[0055]
[0056] 但对各个振荡器其参数kA、bA和输入激励信号drive不尽相同,下面将详细述之。
[0057] 鱼类的胸鳍运动并不具有绝对的对称性,并且左胸鳍2、右胸鳍3分别为单个的非线性振荡器,因此令左、右胸鳍CPG单元相互独立,左胸鳍振荡器和右胸鳍振荡器分别以各自频率fpec,left、fpec,right振荡,采用相同的线性函数形式,且其参数相同,斜率为kf,pec、截距为bf,pec,其函数为式(2):
[0058]
[0059] 其中,fpec,left、fpec,right分别为左胸鳍、右胸鳍的振荡频率,dleft、dright分别为左、右输入激励信号,kf,pce、bf,pec为线性函数(2)的参数,fsat为饱和频率。当机器人转弯时,左右两侧胸鳍的输入激励信号不同,dleft≠dright,则由上式(2),左、右胸鳍的摆动频率不同,有助于实现机器人的转弯。
[0060] 尾部各关节CPG单元左、右两侧的关节振荡器如果按照不同频率振荡,两者将输出具有不同周期的振荡波形,相减后得到一个和两左、右关节振荡器波形周期都不相同的全新波形,从生物学的角度来看,左、右两侧关节振荡器“兴奋—抑制”的关系被打乱,破坏了关节CPG单元的左关节振荡器、右关节振荡器间的耦合关系。因此,为简化起见,取左、右输入激励信号dleft、dright的均值作为输入,并令尾部的关节CPG单元所有的关节振荡器以同一频率振荡,其函数为式(3):
[0061]
[0062] 显然当左右输入激励信号相同时,dleft=dright,上式也能满足。
[0063] 另外,机器人转弯时,需要各关节JN的波形表现出左右不对称,而在振荡频率相同的前提下,只能通过尾部4的左、右两侧非线性关节振荡器的幅值差异来表现这种不对称关系,因此,所有尾部4的关节振荡器的幅值采用相同的函数形式,为简化起见,也采用线性函数。左胸鳍振荡器、右胸鳍振荡器摆动幅值的差异也有利于机器人实现转弯,因此采用和尾部4的关节振荡器相同的振荡幅值形式。在相同的振荡幅值函数下,不同的参数组合将得到不同的摆动幅值。另外,即使同一种参数组合,左右输入激励信号的不同也会导致摆动幅值的不同。因此,尾部4的各关节CPG单元采用不同的参数组合实现各关节摆动幅值的不同,但同一关节JN两侧的关节振荡器参数组合相同,通过左、右输入激励信号dleft、dright的差异实现左、右两侧摆动幅值的不同。左胸鳍CPG单元、右胸鳍CPG单元的参数组合相同,亦通过左、右输入激励信号dleft、dright的差异实现摆动幅值的不同。图21中各振荡器的摆动幅值函数为式(4):
[0064]
[0065] 其中关节J1-J4的参数组合kA和bA不同,但同一关节JN左、右两侧的关节振荡器的参数组合kA和bA相同。左胸鳍、右胸鳍的参数组合kA、bA相同,但与尾部各关节JN不同。式(4)中左、右两侧振荡器的激励drive分别取左输入激励信号dleft和右输入激励信号dright,对关节振荡器411、关节振荡器421、关节振荡器431、关节振荡器441和左胸鳍振荡器取左输入激励信号dleft,关节振荡器412、关节振荡器422、关节振荡器432、关节振荡器442和右胸鳍振荡器取右输入激励信号dright,左、右两侧振荡器的摆动幅值不同,实现机器人在水下的有效转弯。
[0066] 在仿鱼游动机器人CPG网络中,结合鱼类的真实游动特性,各振荡器饱和函数的频率参数kf、bf和幅值参数kA、bA,激励门限值dlow,1-dlow,4,饱和频率、饱和幅值等参数通过计算机仿真试凑得到,如表1CPG网络饱和函数参数所示。
[0067] 表1CPG网络饱和函数参数
[0068]
[0069] 四、CPG模型振荡器间的耦合关系
[0070] 从生物学上来看,图21中的CPG单元由一对相互抑制的“屈肌—伸肌”振荡器构成。对左胸鳍2、右胸鳍3而言,其左胸鳍CPG单元、右胸鳍CPG单元分别由各自的一个振荡器简化表示,因此其耦合关系并不一定要求为抑制关系,而且,生物鱼类游动时,其左胸鳍2、右胸鳍3一般为同相摆动,因此将两振荡器的相位差设定为0。尾部4的关节CPG为严格的“屈肌—伸肌”抑制结构,所以关节振荡器间的横向连接为反相关系,其相位差定义为π;基于鱼类鱼体波由前至后传播的特点,尾部4的关节振荡器自上而下的相位差应为正值,定义为π/4,与此对应,自下而上的相位差为-π/4。鱼类在水中的运动形式一般为各种运动机构运动模式的合成,其中就包括尾部4仿鲹科状波动和左胸鳍2、右胸鳍3的协调运动,这说明尾部关节CPG和胸鳍CPG之间存在某种连接关系。为了保持尾部4的各关节CPG单元的关节振荡器间正确的相位差,同时确保左胸鳍2、右胸鳍3的振荡器同相振荡,令左胸鳍2的振荡器和尾部4的关节振荡器441的相位差为0,以左胸鳍2的相位为0作参考,并据此分别得到尾部4左、右两侧的关节振荡器411、关节振荡器421、关节振荡器431、关节振荡器441、关节振荡器412、关节振荡器422、关节振荡器432和关节振荡器442的相位。
[0071] 某些鱼类具有发达的胸鳍,但主要用于平衡身体和掌握运动方向,当高速前进时,胸鳍和整个尾部4的波动保持一致,推动鱼体;当低速前进时,则靠胸鳍单独波动或与尾部4微小的波动协调推进。可见,两者的连接关系中,尾部4的关节CPG单元应对左胸鳍CPG单元、右胸鳍CPG单元起到抑制作用,因此,令尾部4的关节CPG单元单向抑制左胸鳍CPG单元、右胸鳍CPG单元,如图21所示中的箭头连接方向为尾部4的关节CPG单元各关节振荡器单向指向左胸鳍CPG单元、右胸鳍CPG单元的振荡器。尾部4的关节振荡器411、关节振荡器421、关节振荡器431、关节振荡器441单向指向左胸鳍2的振荡器,尾部4的关节振荡器412、关节振荡器422、关节振荡器432、关节振荡器442单向指向右胸鳍3的振荡器。尾部4的关节CPG单元各关节振荡器对左、右胸鳍的CPG单元的振荡器单向抑制权值均相同,有0和30两种。当机器人慢速游动,是输入激励信号drive较小时,定义尾部4的关节CPG单元到左胸鳍CPG单元、右胸鳍CPG单元的抑制权值为0,胸鳍和尾部4以不同频率摆动,胸鳍摆动频率大于尾部4的摆动频率,胸鳍对推进的贡献较大;当输入激励信号drive增大,机器人需要高速行进时,令单向抑制权值增大到30,左胸鳍2的振荡器、右胸鳍3的振荡器将“受迫”以尾部4的关节振荡器的频率振荡,两者协调摆动。用有效激励信号deffect来定义单向抑制权值的临界点,deffect=(dleft+dright)/2。当deffect<3时,权值为0,当deffect≥3时,权值为30。仿鱼游动机器人CPG各振荡器间的耦合关系具体值见表2。
[0072] 表2CPG网络振荡器间的耦合关系
[0073]变量 变量符号 尾部CPG 胸鳍CPG
(向下)[wij,φij] [10,π/4]
耦合关系
(向上)[wij,φij] [10,-π/4]
(尾部振荡器间)
(横向)[wij,φij] [10,π]
[w411,2,φ411,2]
[0/30,3π/4]
[W421,2,φ421,2]
[0/30,2π/4]
[W431,2,φ431,2]
[0/30,π/4]
耦合关系 [W441,2,φ441,2]
[0/30,0]
(尾部振荡器到胸鳍 [W412,3,φ412,3]
[0/30,-π/4]
振荡器) [W422,3,φ422,3]
[0/30,-2π/4]
[W432,3,φ432,3]
[0/30,-3π/4]
[W442,3,φ442,3]
[0/30,-π]
耦合关系
[w2,3,φ2,3] [10,0]
(胸鳍振荡器间)
[0074] (其中,wij、 表示振荡器i和振荡器j之间的耦合权值和相位差)
[0075] 五、CPG控制参数的在线产生
[0076] 仿鱼游动机器人的左胸鳍2、右胸鳍3和尾部4的各关节J1-JN的摆动通过控制舵机的脉冲信号(PWM)的宽度来实现,具体表现为,其摆动幅值A通过控制舵机的转动位置来实现,而摆动频率f通过控制舵机的转动速度实现。在以前的实现中,舵机在一个鱼体波周期内的转动位置为计算机仿真结果,是固定的离散点,其转动速度调节主要靠在两个舵机控制周期(是两个连续转动位置)间插入延时,延时越大,转动速度越小,延时越小,转动速度越快,无延时转动速度最大。在一个鱼体波周期内,由于离散点有限,当摆动频率较小时,舵机在两个离散的转动位置间将存在一定的停滞,容易造成左胸鳍2、右胸鳍3和尾部4各关节的摆动僵硬,不平滑,影响运动效果。并且,由于离散的转动位置固定,机器人不能根据外部环境或者内部状态的变化调整波动参数。为了实现更好的运动效果,我们利用CPG模型在线产生实时控制参数,是图21中各振荡器的摆动频率fi和幅值Ai。我们编写了C程序实现的CPG单元在线计算代码,并在基于ARM内核的AT91RM9200上运行,其处理器频率为180MHz。当采用欧拉法时,其在线运算时间为13-14ms,小于机器人所用驱动舵机PWM脉冲的20ms控制周期,满足了实时在线计算的要求。
[0077] 六、CPG运动控制的AT91RM9200实现
[0078] AT91RM9200是一款处理速度快、超低功耗的嵌入式微处理器,拥有较强的数据存储扩展功能和中断处理性能,且支持uC/OS-II等实时操作系统。uC/OS-II作为一种实时多任务操作系统,源代码公开,且代码绝大部分都是由ANSI C编写,与平台相关的移植代码根据需要进行剪裁,可移植性好,具有很高的稳定性和可靠性。因此,将uC/OS-II植入AT91RM9200中,能满足机器人运动控制的实时性要求,使控制系统能够快速、稳定地响应控制参数和环境的变化,同时能实现水下多种运动控制任务的调度和切换。
[0079] 控制装置的硬件结构如图3所示,上层控制器10通过无线模块9向机器人发送控制命令,给CPG模型提供左、右输入激励信号dleft、dright,安装于机器人头部的AT91RM9200控制板8接收左、右输入激励信号dleft、dright,无线模块9和AT91RM9200控制板8之间有左、右输入激励信号dleft、dright,经过在线CPG单元计算和饱和函数单元的处理,获得左胸鳍CPG单元、右胸鳍CPG单元和尾部4的关节CPG单元各个关节振荡器的控制参数,是摆动频率f和幅值A,并进而将其转换为调整舵机转动位置的相应宽度的脉冲信号PWM,是左胸鳍CPG单元与左胸鳍舵机5、右胸鳍CPG单元与右胸鳍舵机6、尾部4的各个关节CPG单元与相应的关节舵机之间有脉冲信号PWM,去驱动左胸鳍舵机5、右胸鳍舵机6、四个关节舵机7,使左胸鳍2、右胸鳍3和各个关节JN的舵机摆动到相应的位置,通过CPG模型的不断实时在线计算,逐渐获得现有驱动的物理条件限制下最连续的舵机位置控制信号,推动机器人实现在水下的仿鱼游动。传感器11和电源12给机器人系统提供信息感知和能量。
[0080] 控制方法的流程如图4所示。仿鱼游动机器人的控制由水中运动控制任务实现,通过移植于ARM9200中的uC/OS-II系统管理。其中,水中运动控制是通过CPG网络模型来实现,将与无线模块进行无线通讯接收到的左输入激励信号dleft和右激励信号dright经过uC/OS-II系统的中断处理和饱和函数调整后,获得图21中各振荡器摆动频率和幅值对应的脉冲信号,驱动舵机,以实现左、右胸鳍和尾部各关节的协调摆动。其中,传感器用来接受外部传感信号的反馈,感应机器人运动的环境信息。
[0081] 七、仿鱼游动机器人的水下运动控制:
[0082] 将上面所述的CPG网络模型应用在仿鱼游动机器人上,采用如表1、2所示的控制参数,进行水下运动实验,通过调节左、右输入激励信号dleft、dright实现直行、转弯、上浮和下潜运动,其具体实施例如下:
[0083] 1.直行游动
[0084] 分别给机器人施加不同强度(左右相同,是dleft=dright,以drive简化表示)的输入激励信号drive,使左胸鳍2、右胸鳍3和各关节JN逐渐参与到波状摆动中,推动机器人直行游动。对比机器人实际游动波形和仿真波形,结果如图5-8所示,其中,各线条分别代表关节J1-J4。机器人图片为实时游动截图,截图下方波形为与之相对应的仿真结果,对比时长为一个周期。当输入激励信号drive为1时,如图5所示,由于此时只有左胸鳍2、右胸鳍3和第四关节J4满足激励门限值,左胸鳍2、右胸鳍3的振荡器和第四关节J4的两个关节振荡器441、442同时起振,其余关节J1-J3的关节振荡器不起振,关节保持在中间位置;同理,图6为输入激励信号drive=1.5时的实验结果,胸鳍和第三、第四关节J3-J4参与推进;图7中,输入激励信号drive为2,第二关节J2的左右两个关节振荡器421、422也开始振荡,且胸鳍与关节J3-J4摆动频率和幅值相应增大;当输入激励信号drive=2.5时,结果如图8所示,所有振荡器全部被激活。
[0085] 另外,由图中的对比结果知,机器人实时摆动和仿真波形基本保持一致,水下游动规律遵循CPG网络模型结构以及饱和函数的参数约束,验证了所提理论的正确性。
[0086] 根据图21所述CPG网络模型和振荡器间耦合关系,测试了机器人水中直行游动速度和输入激励信号(左、右输入激励信号dleft、dright相同,记为drive)的关系,如图9所示,其中输入激励信号drive由0-5线性变化。由图中看出,当输入激励信号drive达到门限值dlow时,机器人由静止进入运动状态,左胸鳍2、右胸鳍3和关节J4参与摆动,机器人游动速度很小,像是在水中漂浮。当输入激励信号drive由门限值dlow,4增加至门限值dlow,1时,速度曲线形状和指数曲线相类似,加速度不断变大,运动速度急剧增大;当输入激励信号drive大于门限值dlow,1时,速度继续增大,但加速度明显减小;输入激励信号drive达到门限值dhigh时,运动速度达到最大。可以看出,机器人游动速度和输入激励信号的关系明显呈现两种曲线形状,且以门限值dlow,1为界,这是因为,输入激励信号drive由门限值dlow,
4增加至门限值dlow,1的过程中,除了关节摆动频率和幅值不断增大外,参与摆动的身体长度也不断增加,因此速度变化大;当输入激励信号drive由门限值dlow,1增加至门限值dhigh时,由于所有关节已经参与到推进中,只能通过摆动频率和幅值的增大提高运动速度,因此其速度增长规律发生明显变化。速度曲线说明摆动部长度对机器人的游动速度具有较大的影响。
[0087] 2.转弯游动
[0088] 仿鱼游动机器人在水下运动时,当左、右输入激励信号dleft、dright出现不同时,将造成左胸鳍2和右胸鳍3的摆动频率和幅值均不相同,其左、右胸鳍不对称的输出将使机器人转弯。另外,左、右输入激励信号dleft、dright的不同也会同时使尾部4左右两侧非线性关节振荡器波形幅值发生变化,从而使其差值输出不再保持以零点为中线对称的特征,机器人亦将转弯。为了找出左、右输入激励信号dleft、dright差值大小对转弯半径的影响,我们分别测量了当左、右输入激励信号均值(dleft+dright)/2不变,而左、右输入激励信号dleft、dright呈对称变化时(一侧输入激励信号增大,另一侧等量减小,平均值保持不变)的机器人转弯半径,如表3所示不同的左右输入激励信号dleft、dright对应的转弯半径:
[0089] 表3不同输入激励信号对应的转弯半径
[0090]
[0091] 图形表示见图10,竖线为左、右输入激励信号的平均值,两侧特殊表示点分别为左、右输入激励信号dleft、dright。可以看出,左、右输入激励信号的差值对转弯半径具有决定性影响,差值越大,半径越小,转弯半径和输入激励信号差值呈近似线性关系。图10(1)-10(3)中,当左输入激励信号dleft由较大的值逐渐减小到较小的左输入激励信号值dleft=1时,分别有关节振荡器431、431-421、431-411停止振荡,关节J3、J3-J2、J3-J1的摆动被局限在纵向中线的左侧,实现向左转弯,得到了较小的转弯半径。而且,摆动部越长,转弯半径越小。而在图10(4)中,由于当左输入激励信号减小到dleft=2时,只有关节振荡器
411停振,停振的振荡器数量较少,转弯半径和前3种情况比较相对较大,但获得了较快的前进速度。
[0092] 另外,直行游动时,左、右胸鳍初始时保持水平,初始偏转角度为0,采用与直行游动相同的控制方法,当给左、右胸鳍同时附加一个向上的初始偏转角度时,实现仿鱼游动机器人的下潜运动;当给左、右胸鳍同时附加一个向下的初始偏转角度时,实现仿鱼游动机器人的上浮运动。除左、右胸鳍的初始偏转角度与直行游动不同外,其它参数及控制方式直接采用与直行游动相同的方式。
[0093] 经过上面实验验证了该CPG模型在多关节仿鱼游动机器人的水下运动控制方面可行且效果良好。
[0094] 如上所述,本发明所提出的基于CPG模型的水下运动控制方法对具有胸鳍和尾部结构的多关节仿鱼游动机器人有良好的适用性,实现水下仿鱼游动的快速高效推进。
[0095] 尽管对本发明的原理结合实施例进行了展示和描述,但本领域技术人员将会理解在不偏离本发明的原理和实质的情况下,对这些实施例进行改变,如尾部关节JN的数量、胸鳍和尾部的结构、饱和函数的形式和参数的调整等,其范围也落入本发明的权利要求及其等同物所限定的范围内。