六足机器人具有稳定的机械结构、灵活多变的行走方式,适合在复杂环境下工作,被广泛应用于灾后探测、环境勘测等工作中。大量研究表明,昆虫及其他生物的节律步态,是根据生物神经节律控制机理产生的一种自激振荡、相位互锁的运动模式,由位于生物低级神经中枢的中枢模式发生器(central pattern generator,CPG)产生的信号控制[1-2]。CPG已被广泛应用于机器鱼、机器海龟、机器果蝇等机器人控制领域[3-5]。与传统的基于模型的机器人控制方法相比,CPG不需要对机器人本体和环境进行建模,不依赖于外部反馈和高层命令而产生稳定的节律运动,可适应非结构化环境,具有运动模式多样、耦合性强、自适应性强等优点。
根据不同的应用环境,CPG模型被分为不同类型[2],如生物神经元模型、半中心模型、耦合振荡器模型等。常见的主要是半中心模型和耦合振荡器模型。半中心模型是模拟伸肌和屈肌的交替运动。根据半中心模型思想,Matsuoka对漏极积分器进行改进,加入模拟神经元适应特性的疲劳项,构成Matsuoka神经振荡器[3]。基于Matsuoka振荡器模型,Kimura等[4]在CPG中加入传感器反馈,采用2个相互抑制的屈肌和伸肌神经元构成了Kimura模型,提高了四足机器人运动的稳定性,但存在控制算法复杂,参数难调节等缺点。耦合振荡器模型由非线性振荡器组成,模型参数直接对应输出曲线的物理含义,实现幅值、频率等参数可调,便于控制。常见的有Kuramoto振荡器模型、Hopf振荡器模型、Wilson-Cowan振荡器模型等[6-7]。A. J. Ijspeert团队[8]将非线性振荡器应用在两栖蝾螈机器人上,实现了机器人游泳和步行运动。
本文仿生对象是蚂蚁。首先参考蚂蚁的腿部结构比例,进行单腿正运动学分析,设计六足机器人。其次,采用L. Righetti和A. J. Ijspeert的改进Hopf非线性振荡器构建CPG模型[9],构建环形网络拓扑结构。然后设计膝踝映射函数,减少振荡器数量,优化了CPG网络结构;通过Matlab仿真得到关节角度;最后在六足机器人上进行实物验证。
1 六足机器人的基本机构及步态 1.1 六足机器人机构本文设计的六足仿生机器人分为躯干和肢体两部分,仿生对象为蚂蚁。肢体设计参考了非洲红火蚁的腿部结构比例,如图 1所示,蚂蚁的腿部主要由基节、股节、胫节及跗节等组成。通过观察发现,蚂蚁的腿部自由度较多。为简化设计,六足机器人每条腿3个自由度,分别为髋关节、膝关节和踝关节,对应蚂蚁腿部分别是基关节、基-股关节、股-胫关节。其中,机器人的膝关节和踝关节转轴与地面平行,髋关节转轴与另外2个关节垂直,髋关节控制单腿的水平方向的横摆。
根据仿生蚂蚁腿部结构及机器人学原理,对六足机器人进行运动学建模。图 2为六足机器人机构坐标系,图 2(a)中c为机器人躯干质心坐标原点,定义∑c表示机器人躯干质心坐标系,zc沿垂直身体向上,xc沿身体横向方向,yc坐标轴通过右手螺旋定则确定,为躯体轴线前进方向。omi为m腿i关节中心坐标原点,用∑omi表示其关节坐标系,∑om0表示机器人腿部基坐标系。图 2(b)中,m=1,2,…,6为机器人腿序号,i=1,2,3为腿部关节序号,分别表示髋关节、膝关节和踝关节,i=4时表示机器人足端,zmi为沿关节旋转方向坐标轴,xmi为沿连杆轴线方向坐标轴。L1、L2、L3分别为基节、股节、胫节长度。
1.2 正运动学分析根据齐次坐标变换原理,通过齐次变换,可将机器人腿部基准坐标系∑om0变换到躯干质心坐标系∑c中,变换矩阵cT omo为
(1) |
式中:(xom0,yom0,zom0)为机器人腿部基坐标系到躯干质心坐标系的平移坐标值,φ为腿部基坐标系∑om0到躯干质心坐标系∑c变换绕z轴的旋转角度。将表 1中参数带入式(1)中,可以求得机器人腿部基坐标系与躯干质心坐标系之间的关系。
关节参数 | 1 | 2 | 3 | 4 | 5 | 6 | |
xom0/cm | 8.8 | 10.5 | 8.8 | -8.8 | -10.5 | -8.8 | |
yom0/cm | -12.5 | 0 | 12.5 | -12.5 | 0 | 12.5 | |
zom0/cm | 0 | 0 | 0 | 0 | 0 | 0 | |
φ/° | -135 | 180 | 135 | -45 | 0 | 45 |
机器人右侧腿部机构D-H参数如表 2所示,θi表示第i个关节的转动角度。左侧腿D-H参数,除α1=-π/2,其他参数与右侧腿一致,均保持不变。
∑ | i | ai-1 | αi-1 | di | θi |
∑om0、∑om1 | 1 | 0 | 0 | 0 | θ1 |
∑om1、∑om2 | 2 | L1 | π/2 | 0 | θ2 |
∑om2、∑om3 | 3 | L2 | 0 | 0 | θ3 |
∑om3、∑om4 | 4 | L3 | 0 | 0 | 0 |
根据D-H坐标变换法[10],机器人足端点坐标系∑om4在躯干质心坐标系∑c中的位姿为
(2) |
可求得右侧腿的运动学正解为
(3) |
左侧腿的运动学正解为
(4) |
步态指机器人的每条腿按一定顺序和轨迹的运动形式,包括通过调整迈步顺序和频率来调整身体的位姿[11]。
步态周期T为机器人完成一次完整步态所需要的时间。机器人单腿的迈步幅度称为步长。占空比为单腿在一个步态周期内,处于支撑相的时间在整个步态周期中所占比例,用字母γ表示。
六足机器人步态通常按照与地面接触脚的数目来划分。常见有三角步态、跟导步态和波动步态。三角步态是昆虫稳定行走时速度最快的一种步态。图 3为一个步行周期内六足机器人的三角步态支撑相与摆动相示意图。白色表示摆动相,黑色阴影表示支撑相,腿1、腿3、腿5为一组,腿2、腿4、腿6为一组,同组腿相位相同,异组腿相位相差π。机器人行走时占空比分为3种情形:1)γ=0.5,即每条腿的支撑与摆动时间相等,一组腿支撑,另一组腿摆动(见图 3(a));2)γ>0.5,即每条腿支撑时间大于摆动时间,6条腿出现同时着地的情况(见图 3(b)),此种情况下,机器人稳定性较高,但速度较慢;3)γ<0.5,即每条腿支撑时间小于摆动相时间,6条腿出现同时悬空状况(见图 3(c)),显然,这一情况机器人速度快但稳定性欠佳。占空比对爬行速度有直接影响。本文选择占空比为0.5的三角步态作为研究对象。
2 CPG振荡器网络模型与仿真 2.1 CPG振荡器模型中枢模式发生器(central pattern generator,CPG)是一种离散神经网络,能够产生复杂的高维信号控制动物的节律运动[12]。机器人学上,CPG通常被看作耦合动态系统,即非线性振荡器模型。CPG神经元的自发振动性与传统的机械振动类似,是通过采用互相连接的单个或者多个非线性振荡器来模拟CPG产生信号。其中非线性振荡器都有极限环,若极限环稳定,系统中所有的轨迹都会接近该极限环,这样即使系统中有小的扰动,系统也能回到稳定状态。
Hopf振荡器存在一个稳定的极限环,邻域中的轨线都螺旋趋近该极限环,具有很好的稳定性。与传统Hopf振荡器相比,本文采用改进的Hopf振荡器作为机器人信号发生器,不仅可以实现幅值频率可调,还可以独立调节支撑相与摆动相的相位关系,易于实现六足机器人腿部控制。其数学模型为
(5) |
(6) |
(7) |
式中:振幅为$\sqrt{\mu }$,频率为ω,ωstance与ωswing分别表示支撑相和摆动相的频率,b是一个较大的正值,保证振荡器的频率在支撑相与摆动相之间能取到不同的值;α>0、β>0控制极限环收敛速度,其值越大,收敛越快;x和y是振荡器的2个状态变量,规定y的输出作为振荡器信号的输出。
令x=rcosφ,y=rsinφ,γ=ωt,极坐标形式为r·=r(μ-r2)
(8) |
如图 4(a)所示,当μ≤0时,系统有唯一的渐近稳定焦点(0,0);当μ≥0时,系统在μ=0发生突变,(0,0)成为不稳定焦点,出现Hopf分岔,并且系统存在一个稳定的极限环r=μ。利用μ>0时系统的极限环特性实现CPG的振荡输出。图 4(b)为不同初值下Hopf振荡器状态变量x与y的相平面图,黑点表示初值。从图中看出,无论初值大小,除(0,0)奇点外,Hopf极限环都是稳定的。通过控制输出的上升和下降时间,可以控制支撑相和摆动相的相位时间,这里取ωswing=3ωstance,μ=1,输出波形如图 4(c)所示。
由图 4(c)可见,该振荡器能自发地产生稳定的周期振荡信号,方便调节上升和下降时间,从而很好地模拟了生物系统中的CPG神经元。
要实现六足机器人腿部之间的协调运动,需要振荡器的相互耦合,保证运动的同步性与协调性。耦合关系为
(9) |
(10) |
(11) |
(12) |
将式(10)与式(6)对比,式(10)中加入了多项式δ·$\sum\limits_{j}{{}}$Δji,δ表示振荡器之间耦合强度,θji表示第i个振荡器与第j个振荡器之间的相位差。取ωstance= ωswing,收敛系数α=β=1,通过设定不同的相位差θ21,其值分别取0、π/4、π/2、π,可以得到第1个和第2个振荡器的输出曲线,如图 5所示。
2.2 环形CPG网络模型构建六足机器人的CPG网络拓扑结构由6个CPG单元构成,每个CPG单元对应六足机器人的一条腿,由Hopf振荡器组成。采用加权有向图构成网状结构,6个CPG单元作为有向图的6个顶点,相邻顶点之间采用全对称的双向连接。CPG网络拓扑结构如图 6所示,在三角步态下,将腿分成{1,3,5}和{2,4,6}两组。同组腿相位相同,异组腿相位相反。
2.3 关节轨迹设计方案六足机器人行走过程中,单腿关节角度具有如下规律:1)摆动相时,腿向前摆,髋关节角度增大,膝关节先正转再反转回到平衡位置,膝关节角度先增大后减小,踝关节转角与膝关节变化规律相同;2)支撑相时,腿后摆,髋关节角度减小,膝关节与踝关节角度几乎保持不变。
机器人有6条腿18个关节,如果每个关节都采用1个振荡器,需要18个振荡器,会使CPG网络过于复杂,非线性微分方程阶数过高,不利于CPG网络的参数优化和求解。
机器人在运动过程中,各关节之间相互配合,具有一定联系。为了简化模型结构,采用膝踝映射函数,根据踝关节的转角得到膝关节的转角。单腿CPG控制规律如下:1个CPG单元对应2个Hopf振荡器,输出信号相互耦合,分别控制髋关节、踝关节,膝关节信号通过膝踝映射函数得到。图 7为2个Hopf振荡器生成的髋关节与踝关节的相位关系,其中y1为髋关节控制信号,y2为踝关节控制信号,调节两者频率值比为1:2,且两者保持固定的相位差。
选取CPG模型髋关节输出曲线上升沿作为机器人摆动相,下降沿作为支撑相。根据机器人腿部摆动规律,对踝关节输出进行调整,在支撑相时调节参数,使踝关节输出趋向于零,符合实际规律。值得注意,两个振荡器耦合系数δ的取值会影响支撑相踝关节起始和末尾零值。当δ>1时,踝关节输出曲线振荡不符合正弦函数;当δ=0.35时,如图 8,踝关节输出y21支撑相起始和结束位置数值有跳变;当δ=0.01时,踝关节输出y22支撑相基本趋于零值,关节输出平滑且趋于零。
根据膝关节、踝关节的关节角度变化规律,将踝关节角度映射得到膝关节角度曲线,实现踝膝关节的耦合。单腿各个关节角度函数定义为
(11) |
式中:k为比例系数,b为常数。调节k0、k1、k2、b1、b2使振荡器输出为髋关节、踝关节角度值。k3、k4、b3、b4为膝踝映射函数参数,参数b3、b4控制膝关节摆动幅度。
结合六足机器人机构参数,取k0=0.8,k1=0.78,b1=1.01,k2=0,b2=0,k3=0.78,b3=π/2,k4=0,b4=π/2。为了区分不同腿的不同关节角度,对每条腿的每个关节角度进行定义:用θij表示,其中i表示腿的序号(i=1,2,3,4,5,6),j=1表示髋关节,j=2表示踝关节,j=3表示膝关节。图 9为三角步态下两条腿关节角度输出曲线,其中组{1,3,5}摆动角度用实线表示,以腿1作为示例;组{2,4,6}摆动角度用虚线表示,以腿2作为示例。两者相位相差为π。
根据前文正运动学分析,由机器人对应时刻各关节角度,可求出六足机器人足端位置轨迹,从而推出六足机器人三角步态下的理论步长。图 10所示,点A1、A2、A3为机器人腿1在摆动相初始时刻髋关节、膝关节、踝关节角度,点B1、B2、B3为机器人腿1在摆动相结束时刻髋关节、膝关节、踝关节角度,A1=-0.796,A2=0.004,A3=1.58,B1=0.804,B2=0.008,B3=1.58,带入(4)式,求得六足机器人理论步长为17.25 cm。
3 实物样机验证为验证基于Hopf振荡器的六足机器人步态调节算法的有效性,本文搭建了六足机器人实验平台。六足机器人样机采用KST X20-8.4-50伺服舵机驱动,控制器为Arduino USB 32路伺服舵机控制器。主要包括显示模块、无线通讯模块、MPU6050模块、舵机控制模块。设计仿照六足蚂蚁的腿部比例,表 3为六足机器人主要参数。其中,基节L1长度为髋关节到膝关节轴线距离;股节L2为膝关节到踝关节轴线距离;胫节L3为踝关节到足端的轴线距离。
参数 | 数值 |
尺寸(L×W×H)/mm | 298× 120× 65 |
质量/kg | 5.64 |
髋关节范围 | [-π/4,π/4] |
膝关节范围 | [0,π/2] |
踝关节范围 | [π/2,π] |
L1/mm | 41 |
L2/mm | 81.49 |
L3/mm | 150 |
图 11为六足机器人三角步态行走实验。实验平台上,每个短黑线间隔为20 m,样机搭载液晶显示,显示当前步态类型、振荡器预设参数。实验结果表明,机器人运动平稳,步态协调。经测量,六足机器人实际步长约为13.2 m,平均速度为6.45 m/s,100 m内直线运动略向左侧平移4 m。机器人行走步长与理论步长有一定偏差,原因主要由于机构设计髋关节预留空间不足,实际行走未达到理论角度,实验中为避免关节发生碰撞,实际髋关节摆动范围约为[-π/6,π/6]。
4 结论本文设计了一种六足机器人节律运动CPG模型,仿真和实验表明:
1) 加入膝踝映射函数,可实现对六足机器人关节节律运动设计,简化CPG耦合网络模型;
2) 本文设计的关节映射函数参数合适,关节运动之间的相位关系合理;
3) 本文设计的CPG网络能够稳定的生成机器人的运动关节角度,输出结果较好的符合六足机器人三角步态的相位要求。
下一步将利用Hopf振荡器相位可调优点,进行六足机器人步态转换研究,实现更复杂灵活的动作。
[1] | JAN IJSPEERT A J. Central pattern generators for locomotion control in animals and robots:a review[J]. Neural networks , 2008, 21 (4) : 642-653 DOI:10.1016/j.neunet.2008.03.014 |
[2] | 吴正兴, 喻俊志, 谭民. 两类仿鲹科机器鱼倒游运动控制方法的对比研究[J]. 自动化学报 , 2013, 39 (12) : 2232-2242 WU Zhengxing, YU Junzhi, TAN Min. Comparison of two methods to implement backward swimming for a carangiform robotic fish[J]. Acta automatica sinica , 2013, 39 (12) : 2232-2242 |
[3] | WU Xiaodong, MA Shugen. Adaptive creeping locomotion of a CPG-controlled snake-like robot to environment change[J]. Autonomous robots , 2010, 28 (3) : 283-294 DOI:10.1007/s10514-009-9168-1 |
[4] | 高琴, 王哲龙, 赵红宇. 基于Hopf振荡器实现的蛇形机器人的步态控制[J]. 机器人 , 2014, 36 (6) : 688-696 GAO Qin, WANG Zhelong, ZHAO Hongyu. Gait control for a snake robot based on Hopf oscillator model[J]. Robot , 2014, 36 (6) : 688-696 |
[5] | SEO K, CHUNG S J, SLOTINE J J E. CPG-based control of a turtle-like underwater vehicle[J]. Autonomous robots , 2010, 28 (3) : 247-269 DOI:10.1007/s10514-009-9169-0 |
[6] | LIU C J, FAN Z, SEO K, Fan Z, et al. Synthesis of matsuoka-based neuron oscillator models in locomotion control of robots[C]//IEEEProceedings of the Third Global Congress on Intelligent Systems (GCIS), 2012 Third Global Congress, Wuhan, China, 2012:342-347. |
[7] | MATSUOKA K. Sustained oscillations generated by mutually inhibiting neurons with adaptation[J]. Biological cybernetics , 1985, 52 (6) : 367-376 DOI:10.1007/BF00449593 |
[8] | FUKUOKA Y, KIMURA H, COHEN A H. Adaptive dynamic walking of a quadruped robot on irregular terrain based on biological concepts[J]. The international journal of robotics research , 2003, 22 (3/4) : 187-202 |
[9] | YU Junzhi, TAN Min, CHEN Jian, et al. A survey on CPG-inspired control models and system implementation[J]. IEEE transactions on neural networks and learning systems , 2014, 25 (3) : 441-456 DOI:10.1109/TNNLS.2013.2280596 |
[10] | BREAKSPEAR M, HEITMANN S, DAFFERTSHOFER A. Generative models of cortical oscillations:neurobiological implications of the Kuramoto model[J]. Frontiers in human neuroscience , 2010 (4) : 190-14 |
[11] | JAN IJSPEERT A J, CRESPI A, RYCZKO D, et al. From swimming to walking with a salamander robot driven by a spinal cord model[J]. Science , 2007, 315 (5817) : 1416-1420 DOI:10.1126/science.1138353 |
[12] | RIGHETTI L, JAN IJSPEERT A J. Pattern generators with sensory feedback for the control of quadruped locomotion[C]//Proceedings of IEEE International Conference on Robotics and& Automation. Pasadena, CA, USA, 2008:819-824. |
[13] | MARK W. SPONG, S. HUTCHINSON, M. VIDYASAGAR. Robot modeling and con trol[M]. Hobokon, New Jekey, USA:John Wiley and Sons Inc., 2005:65-74. |
[14] | 于海涛. 基于非线性振子的CPG步态生成器及其运动控制方法研究[D]. 哈尔滨:哈尔滨工业大学, 2009:10-11. YU Haitao. Research on CPG gait generator based on nonlinear oscillator and its locomotion control[D]. Harbin, China:Harbin Institute of Technology, 2009:10-11. |
[15] | FRIGON A, ROSSIGNOL S. Experiments and models of sensorimotor interactions during locomotion[J]. Biological cybernetics , 2006, 95 (6) : 607-627 DOI:10.1007/s00422-006-0129-x |