王良文 李群涛 王新杰 过金超 王才东
摘要:爬行类四足仿生机器人具有冗余驱动的特征,其正运动学分析位移过程十分困难.基于四足步行机器人构型爬行类四足仿生机器人数字化模型的建模技术为:通过数字模型,驱动机器人的尺寸与主动关节角度,使机器人运动到相应位置.在确定了机器人模型的位置和姿态后,进行草图绘制建立坐标系.利用SolidWorks中的测量函数,进行参数的测定,结合齐次变化矩阵,可以获得机器人位置和姿态的解.该方法用于机器人的运动学分析时,不需要进行详细的运动学公式的推导,只需要明确机器人各个零部件之间的约束关系,确定主动约束和被动约束即可.该方法的思想可以广泛应用于具有冗余驱动的机构运动分析中.
Abstract:Because of redundant driving characteristics of the reptile\|like quadruped bionic robot, displacement analysis process of forward kinematics was very difficult.The modeling technology of digital model for the reptile\|like quadruped bionic robot base on the quadruped bionic robot configuration was as follows: frame size and active driving angle were driven by parameterized model,to make the robot move to the corresponding position.The coordinate system was built in preliminary sketch after the position and posture of robot were confirmed.The parameters were measured by SolidWorks measuring functions and then the position and posture result of robot were obtained through combining homogeneous matrices.When the method was applied to analyze kinematics of robot, rather than the derivation of detailed kinematics formula, only the active constraint and passive constraint relationship among the parts of robot was required.The idea of the method could be used widely for kinematics analysis of redundant driving structure.
0引言
多足步行机器人能够在复杂的非结构环境中稳定地行走,一直是机器人研究领域的热点之一[1-3].
多足步行机器人的运动学分析是进行机器人动力学研究、实施机器人空间测算定位、开展机器人运动误差分析与补偿等的基础.爬行类四足仿生机器人是典型的并联机器人,对其进行正运动学分析时,由于其具有冗余驱动的特点,采用解析法建立的运动分析方程,与Stewart平台机构正解分析类似[4-7],最终导致单变量的16次多项式方程的求解.而单变量的16次多项式方程,其推导相当复杂,需使用变量代换和Bezout方法,高效地求解此方程更为棘手.在求解过程中遇到了方程高阶非线性、求解困难等问题,不利于相关理论的推广应用[8-9].本文提出多足仿生机器人正运动学分析的计算机辅助几何法[10],利用多足仿生机器人内部的结构约束关系,建立SolidWorks模型,进行求解.而建立爬行类四足仿生机器人的数字化模型是采用计算机辅助几何法进行机器人运动分析的基础.在此基础上,可以进一步开展机器人的工作空间研究等.
本文在介绍四足仿生机器人构型的基础上,对建立爬行类四足仿生机器人的数字化模型技术与过程进行论述,以期有效地解决具有冗余驱动特点的机器人位移分析中求解方程的困难,为类似问题的研究提供解决问题的新思路.
1四足仿生机器人构型及机器人MiniQuad\|I的结构
四足仿生机器人由机体和若干条腿组成.通常,机器人机体设计成规则平台,每条腿通过臀关节与机体相连.根据臀关节不同的布置方式,机器人的机构及其运动特征有所区别.两种典型的机器人构型为类似爬行动物的四足机器人及类似哺乳动物的四足机器人.其中,类似哺乳动物运动形式的机器人,其臀关节轴心线与机器人机体平面平行,而类似于爬行动物运动形式的机器人,臀关节轴心线与机体平面垂直.本文以爬行类四足仿生机器人为研究对象.
图1给出了一类典型的爬行类四足仿生机器人简图.在机体下连接4条腿,每条腿由1个平面连杆机构、1个旋转机构和1只足组成.通常,每条腿有3个执行关节.
图2为由华中科技大学开发的一款爬行类四足仿生机器人MiniQuad\|I的三维结构图.机器人机体是一个矩形平台,每条腿通过1个旋转关节与矩形平台相连,旋转关节的轴线与矩形平台垂直.确定机器人结构的尺寸包含:机器人机体的长度2m,宽度2n;每条腿3个执行关节的长度为:髋关节长L1,大腿关节长L2,小腿关节长L3;每条腿3个执行关节的转角为:髋关节旋转角,大腿关节旋转角φ,小腿关节旋转角χ.通常,四条腿关节的长度都设计为一样.在机器人的每个关节上,都安装有伺服电机驱动.机器人的运动过程是:在任何时刻,都采用不同的三条腿同时着地,并通过交换腿的组合,推动机体向前,其三条腿上的9个电机在同时驱动.由于机器人的运动只有6个自由度,因此,在三条腿上的9个电机中,6个为主动驱动,其余3个为被动驱动,这就是冗余驱动.根据主动驱动角来确定被动驱动角,是该类机器人分析的关键,也是非常困难的问题[11].通常,将大腿关节旋转角φ,小腿关节旋转角χ作为主动驱动角度,将髋关节旋转角作为被动驱动角度.
2爬行类四足仿生机器人的数字化模型
2.1应用软件技术
2.1.1SolidWorks
本建模过程主要应用了SolidWorks具有的基于特征参数化的三维实体造型、基于约束的装配造型等设计功能.SolidWorks 拥有数百个应用程序接口API(Application Program Interface)函数,这些API函数是SolidWorks的对象的嵌入与链接OLE(Object Linking and Embedding)或者COM接口,支持一个Windows应用程序通过获得对象控制,操作另一个Windows程序.在模型的应用中,将利用Visual Basic 6.0对SolidWorks进行二次开发[12].
2.1.2Visual Basic 6.0
利用 VB与Windows应用程序建立接口,通过对API函数的调用,开发出用户所需要的功能.
2.1.3SolidWorks提供的API函数
在本设计中,较多地应用了API函数进行程序开发.SolidWorks公司在API帮助手册中,提供了API各级对象以及父子关系图.在应用API函数时要注意的是,各个子对象的控制权都隶属于其父对象,在控制一个对象前,必须先取得其父对象的控制权.每一级对象都有其特定的函数或属性.SolidWorks中常规操作的大部分功能都已经被封装在其各级对象中.程序设计人员只需要获得对象的控制权就可以修改对象的属性或者执行其函数,实现对SolidWorks的二次开发.
2.2爬行类四足仿生机器人数字化建模思想
2.2.1基本原理
SolidWorks中能实现未完全约束零部件的被动驱动是开发机器人数字化模型及应用的关键,即在SolidWorks的装配体中,没有任何约束的零件都具有6个自由度,随着约束的增多,零件的自由度也随之减少.当一个零部件A被增加配合关系而改变其位置或者姿态时,与它有约束关系的零部件B也会被动地随着新增加的配合关系而发生位置和姿态的变化.当如果零部件B已经被完全约束或者不论其运动怎样的位置或者摆出何种姿态都不能满足新增加的配合关系时,SolidWorks系统会提示错误,此时整个系统中各个零件原有的位置和姿态等关系会保持不变.
2.2.2实施过程
在SolidWorks中,根据机器人的理论模型对各个零部件建立三维模型,并在装配体文件中,对机器人进行装配.此时,机器人的装配模型具有机器人的基本配合关系,即各个模块的关节处只能进行旋转运动.就整个机器人而言,此时机器人具有6个自由度,在结构上形成了最基本的约束关系.再对机器人主动驱动角度和立足点位置都进行结构约束,机器人的6个自由度都将受到约束.此处,是以各立足腿大腿关节角φ和小腿关节角χ为主动驱动角度,而立足点位置是指在固定坐标系下机器人小腿关节末端的位置.
由于在SolidWorks中能实现未完全约束零部件的被动驱动,机器人装配模型会在其结构约束和主动驱动约束下,将机器人驱动到满足已知条件的姿态和位置.在该过程中,由于通过立足点位置约束了机器人关节的角度,即髋关节的角度值,这样,被动约束角度值就确定了.该被动约束角度值即是机器人运动分析中,需要求解的冗余驱动角.
2.2.3获取处理
在被动驱动角度值确定后,可以通过在SolidWorks装配体中设置坐标系,使用SolidWorks的API函数中的测量函数对机器人装配体中某些参数进行测量,以得到机器人的姿态矩阵和机架中心点位置,进行机器人的运动学分析.
通过对机器人的结构尺寸进行数字驱动,形成机器人整体结构的数字化模型,将极大地简化该类机器人的运动分析过程.
2.3建模技术
2.3.1实体建模
根据机器人的理论模型,首先在SolidWorks中进行三维建模,并进行初步的装配,得到如图3所示的一个具有基本配合关系的装配体.需要注意所建立的机器人三维装配体中各个立足点的标记顺序.在装配的时候,在立足腿下方设置“地面”,该“地面”的中心和装配体的中心是重合的,各个基准面在“地面”与装配体之间也是重合的.
设置机器人的固定坐标系为装配体的默认坐标系.此时,机器人立足腿末端的位置在固定坐标系下及在装配体默认坐标系中一致.对立足点的位置配合控制,也就是控制该点到装配体默认坐标系中的各个基准面之间的距离,即属于距离类型的配合控制.图3中各个立足点I,J,L腿的立足点位置,在此时并没有固定.各个关节间只存在旋转的约束关系,即对关节前后两个杆件之间的角度约束.图3中的机器人所处的状态也是机器人的初始状态,机器人在这个位置和姿态下被驱动而发生状态变化.
2.3.2部件参数化
为了建立通用的爬行类四足仿生机器人的数字化模型,采用参数化驱动机器人杆件的长度和机架尺寸.根据机器人零件的设计方式及结构约束关系,设定机器人各零部件尺寸的最小值.以拉伸机器人杆件的长度从而控制机器人的各杆件尺寸.
1)函数控制权的获取
在实现零部件的参数化时,需要用到SolidWorks提供的API函数,这就需要先取得控制该函数的上级对象的控制权,通常可以用以下两种方式来取得SolidWorks中API函数的最高一级对象,即SoldWorks的控制权:
Dim myswApp as object
SetmyswApp = CreateObject("SldWorks.Application")
或者采用
Dim myswApp as object
Set myswApp = GetObject(,"SldWorks.Application")
在取得最高一级应用对象的控制权后,打开要控制的对象,在本设计中,为机器人理论模型的三维装配体.其关键语句为:
Dim Part As Object
Set Part = swApp.OpenDoc6("C:\Documents and Settings\Administrator\桌面\solidwork robot\robot.SLDASM",2,0,"",longstatus,longwarnings)
其中,语句中的"C:\Documents and Settings\Administrator\桌面\solidwork robot\robot.SLDASM"为控制对象的文件路径.
2)尺寸驱动
在利用几何法所构建的系统中分别采用驱动草图中尺寸或者特征的尺寸来实现零部件的参数化.
以驱动髋关节的长度L1为例,参见图4,其关键语句为:
Part.Parameter("D6@草图2@jijia.Part").SystemValue = Val(Text4.Text)/1 000∥设定机架草图4中尺寸D6的数值为VB控件中Text4中的值.
Part.Parameter("D1@拉伸1@kgj\|I.Part").SystemValue =(Val(Text1.Text) - 36) / 1000∥杆件I的髋关节的长度值L1为控件Text4的值减去36.
要注意的是单位换算:在SolidWorks中,尺寸值是以m为单位,而平常设定机器人坐标值时,习惯以mm为单位.此外,在考虑机器人的杆长和尺寸驱动时,都是指杆件上相邻两旋转轴之间的尺寸.如上述语句中,在对杆件的髋关节驱动时,以控制尺寸减去一个具体值(在此减去36),是减去驱动尺寸中两轴线外的尺寸.这与机器人零件的设计过程相关.最终,机器人各个零部件的尺寸都是根据机器人理论模型确定的,考虑的是杆件两轴线之间的公垂线距离.
类似地,其他零件的尺寸驱动也可以采用上述方法实现.
2.3.3配合关系的控制
在SolidWorks中建立了机器人模型,对机器人的尺寸进行驱动后,需要对结构的一些配合关系进行控制,成功地控制机器人主动驱动角度和立足点位置的配合关系对几何法的实现特别重要.
1)增加配合关系的关键函数
在SolidWorks中增加配合关系的关键函数为AssemblyDoc:AddMate3.AddMate3的父对象是AssemblyDoc.在使用AddMate3方法时,先要进行装配对象的选择,在这里采用Model DocExtension 下的SelectByID2来实现该功能,Select ByID2的具体意义可以参考SolidWorks API帮助文档.
在swMateType_e中,定义部件的配合类型在SolidWorks2008中有21种.最为常用的有:swMateCOINCIDENT表示重合关系;swMateCONCENTRIC表示重合关系;swMatePERPENDICULAR表示垂直关系;swMatePARALLEL表示平行关系;swMateTANGENT表示相切关系;swMateDISTANCE表示距离配合;swMateANGLE表示角度配合;swMateUNKNOWN表示未知情况,等等.在程序中分别用0到7来表示以上几种配合关系,在本模型建立中用到的是距离和角度配合.
在swMateAlign_e中,定义部件的配合类型在SolidWorks2008中有3种,分别是:swMate AlignLIGNED表示同向对齐;swMateAlignALIGNED表示反向对齐;swMateAlignCLOSEST 表示最近处对齐.用数字序号0,1,2表示这些对齐类型.
在swAddMateError_e中,定义的是配合关系成功或失败的类型.在SolidWorks2008中有6种情况:如swAddMateError_ErrorUknown表示未知错误,swAddMateError_NoError表示没有错误, swAddMateError_IncorrectMateType表示不正确的配合类型,等等,用数字序号从0,1,2,3,4,5表示这些情况.
2)驱动秩序
在用程序来控制立足点位置和主动驱动关节角度时,要注意驱动的次序.如在正运动学分析过程中,先配合主动驱动关节的角度,再控制立足点的位置.如果给定的位置和角度合适,不会出现配合过定义的错误;相反,如果先控制立足点的位置,再配合主动驱动关节的角度,就很容易出现装配错误.
3)角度配合关系的实现
如图4所示,以I腿髋关节上视图和I腿大腿关节上视图之间的角度配合关系实现为例(就是对髋关节结构的对称面4与大腿关节结构的对称面3之间的角度进行控制),
值得注意的是,I_kd_angle是指I腿髋关节杆和大腿关节杆之间的角度值,即机器人结构参数中大腿关节旋转角度φ,属于主动驱动角度值,其值通过Text的控件传递.按照机器人运动学求解的习惯,给定的数据均按度为计量单位,但是在VB中是按弧度为计量单位,在程序中要对两者进行单位的转换.
AddMate3函数的功能是添加配合关系到选定的部件,使之形成配合.在应用 AddMate3作为配合函数时,不允许其输入变量为负值.在此,采用VB中的Abs函数,将输入变量绝对化.在系统中,以角度的正负值分别表示机器人关节角度的旋转方向,逆时针方向为正,顺时针方向为负.为了让所配合的关节角度实现两个方向的旋转,要设置角度变量为布尔类型.
用布尔类型判断配合对象取正或者取负的装配类型,用它来确定两个配合对象是否反转尺寸后再进行配合.若反转尺寸后再进行配合,得到两者之间配合的角度值为逆时针方向旋转后得到的角度,反之相反.
立足点坐标值也有正负之分.如对于I腿,采用了布尔类型值I_lizu_xzf来实现立足点位置.可根据其布尔类型来判断该立足点是留在机器人初始位置所限定的象限还是到相邻的象限.
其他的配合关系都属于上面所介绍的两类——角度型的配合和距离型的配合.采用类似的方式就可以确定机器人6个关节角度和 3个立足点位置,从而让机器人装配体摆出符合设定条件的机器人机架中心点位置和姿态.
2.3.4测量设置参数
建立机器人的数字化模型后,利用SolidWorks中内部的测量系统对机器人的参数进行测量,开展机器人的运动分析.为此,设置SolidWorks中默认的坐标系为固定坐标系,并在机器人机架中心和抬动腿末端设置浮动坐标系.
1)设置固定坐标系
在SolidWorks的机器人装配体中,插入一个“地面”零件.该“地面”的默认坐标系的中心为几何中心.利用装配体中的配合关系,设置“地面”的默认坐标系和装配体的默认坐标系重合,并将该零件设置为固定.这样,“地面”的默认坐标系即为系统的固定坐标系Σo.
2)设置浮动坐标系
采用绘制草图的方式,固定浮动坐标系在机器人的机架中心和抬动腿的末端.以在机架中心点处设置浮动坐标系Σc为例,坐标系Σc的原点设置在机架的中心,在原点所在的水平面上绘制草图.以机架中心点为原点,分别以平行于机架杆件(标注2m和2n)方向上一定距离处(如:100 mm)绘制一个点,标记为坐标系Σc的x,y方向:在垂直于机架的平面上,以原点为起始点向上一定距离处(如:100 mm)绘制另外一个点,标记为坐标系Σc的z的方向.类似的标记方法用于机器人抬动腿末端.
3)获得机器人机架位置与姿态
记浮动坐标系中心点在固定坐标系的值为pc,其构成浮动坐标系的3个点(标记为x,y,z点)在固定坐标系中的值分别为px,py,pz.很明显,pc的模,即为两个坐标系原点之间的距离,也就是机器人机架中心点在固定坐标系中的坐标值.两个坐标系之间的关系可以通过浮动坐标系在固定坐标系中的一个矢量表达来表示.而浮动坐标系在固定坐标系中的矢量表达可以通过px-pc,py-pc,pz-pc这3个矢量来表达.若将这3个矢量作归一化处理,并和机器人机架中心点的坐标组合在一起,就可以得到两个坐标系之间的齐次坐标矩阵①.
3数字化模型的应用
根据上述思想,在建立了爬行类四足仿生机器人的数字化模型后,对机器人的杆件和机架尺寸进行驱动,依据机器人的主动驱动角度和立足点位置控制机器人关键的配合关系,使机器人形成在整个约束下的姿态和位置.对机器人的姿态和位置进行测量,再利用VB的文档输出功能,就可以得到机器人的正运动学的解.图6即为采用该原理开发的机器人正运动学求解系统界面.
采用本系统进行四足仿生机器人的正运动学计算,只需要输入机器人的已知参数.
4结论
本文对建立爬行类四足仿生机器人的数字化模型技术与过程进行阐述.通过数字模型,驱动机器人的尺寸与主动关节角度,使机器人运动到相应位置.在确定了机器人模型的位置和姿态后,进行草图绘制建立坐标系.利用SolidWorks中的测量函数,进行参数的测定,结合齐次变化矩阵,可以获得机器人位置和姿态的解.
该方法用于机器人的运动学分析时,不需要进行详细的运动学公式的推导,只需要明确机器人各个零部件之间的约束关系,确定主动约束和被动约束即可.
使用SolidWorks软件建立机器人数字模型后,机器人在添加配合关系后的位置和姿态,能够通过软件很清晰的表达出来.
该方法的思想可以广泛应用于具有冗余驱动的机构运动分析中.参考文献:
[1]JONAS B,JERRY P,NICHOLAS R.Editorial:special issue on legged locomotion[J].International journal of robotics research,2011,30(2):139.
[2]DYNAMICS B.Cheetah\|Fast Legged Robot[EB/OL].(2012-06-02)[2014-06-20].http://www.bostondynamics.com/robot_cheetah.html.
[3]WANG L W,CHEN X D,WANG X J,et al.Motion error compensation of multi\|legged walking robots[J].Chinese journal of mechanical engineering,2012,25(4):639.
[4]WEN F,LIANG C.Displacement analysis of the 6\|6 stewart platform mechanisms[J].Mechanism and machine theory,1994,29(4):547.
[5]DASGUPTA B,MRUTHYUNJIYA T S.A canonical formulation of the direct position kinematics problems for a general 6\|6 stewart platform[J].Mechanism and machine theory,1994,29(6):819.
[6]BOUDREAU R,TURKKAN N.Solving the forward kinematics of parallel manipulators with a genetic algorithm[J].Journal of robotic systems,1996,13(2):111.
[7]DIDRIT O,PETITOT M,WALTER E.Guaranteed solution of direct kinematic problems for general configurations of parallel manipulator[J].IEEE transactions on robotics automation,1998,14(2):259.
[8]WANG X J,CHEN X D,LI P G,et al.A study of analytical forward kinematics of multi\|legged walking robot location[J].Machine intelligence and robotic control,2006,6(2):22.
[9]王良文,潘春梅,王新杰,等.基于手脚融合功能的多足步行机器人正运动学分析[J].机械设计,2010,27(11):38.
[10]王良文,唐维纲,王新杰,等.基于计算机辅助几何法的多足步行机器人运动学分析系统[J].机械设计,2012,29(7):29.
[11]陈学东,孙翊,贾文川.多足步行机器人运动规划与控制[M].武汉:华中科技大学出版社,2006.
[12]叶修梓,陈超祥.SolidWorks 高级教程:二次开发与API [M].北京:机械工业出版社,2009:1-133.