苏 豪,薛方正
(重庆大学 自动化学院,重庆 400044)
关节型机器人由于具有多连杆结构,不但可以拥有较小的体积和较大的工作空间,而且可以胜任复杂的工作任务,在工业生产、科学研究、家庭服务等领域得到越来越广泛的应用[1-3]。功能的多样性导致机器人结构的复杂性。多数工业机器人[4-5]具有 4 ~6 个自由度,如机器昆虫[6]一般拥有4个以上的自由度,而具有手指结构的仿人机器人[7]可以拥有30个自由度。针对某些特殊工作任务开发的机器人可能拥有更多自由度或更复杂、更新颖的结构,如仿生连续体机器人[8]等。
机器人仿真系统可以有效地降低成本、缩短开发周期和避免实验过程中的损坏,因此倍受学者们的关注。很多研究机构已对机器人仿真做了大量的研究,例如:针对站立型机器人搬运动作的仿真[9];针对空间四面体反转机器人的仿真[10];针对挖掘机器人挖掘轨迹的仿真[11];针对采摘机器人静力学的仿真[12]等。这些仿真平台大多数是针对特定机器人或特定功能开发的,对于特定仿真对象的研究具有很好的辅助作用。在机器人开发过程中,往往需要设计新的机器人结构,比如增加或减少自由度或改变某种传动机构等。在修改机器人结构或者变更研究对象时,需要对上述仿真平台做大量的修改,造成了不必要的重复性工作,同时也不符合软件复用的思想,因此其适用范围受到限制。
通用型仿真平台是提高仿真平台适用范围的一种重要手段,也逐渐受到机器人研究机构的重视。文献[13-15]分别提出了不同仿人机器人的通用仿真平台设计方案,有效地解决了仿人机器人的通用仿真问题,但是不适用于仿人机器人以外的关节型机器人;文献[16]对IMG弧焊机器人进行了通用仿真研究,但应用范围有限。这些仿真平台在通用性上仍然存在不足。
目前,使用较多的机器人仿真工具有 ADAMS、MSRS、OpenGL、ODE。ADAMS 和 MSRS 都属于商业软件,在使用和授权上有诸多限制。而且ADAMS运行速度较慢,MSRS使用过程复杂。利用OpenGL、ODE等开源软件在开放性上相对于商业软件具有很大优越性。OpenGL是图像处理库,需要重写动力学,增加了开发难度。因此本文采用开源动力学软件ODE作为开发工具。
基于混合模型的关节型机器人仿真平台设计方案的机器人模型(图1)是结合了扩展D-H模型、图结构模型和ODE模型的混合模型,3个部分分别用于人机交互、机器人描述以及作为控制和显示接口。
图1 机器人混合模型
1.1.1 扩展D-H模型
D-H参数又称几何参数,其通过杆件长度d、杆件扭角α、关节距离r、关节角度θ四个参数表征机器人相邻2杆件的相对位置。D-H参数仅包含了杆件和关节的位置信息。为了更准确地描述机器人,本文将D-H参数与杆件属性、关节属性相结合,共同称之为机器人的扩展D-H模型。
扩展D-H模型是仿真平台人机交互的接口,通过获取平台使用者输入的参数,将机器人自然语言描述转化为数学语言描述,在虚拟空间建立机器人的抽象映射。模型定义为
其中 P=〈α,d,θ,r〉,即杆件的 D-H 参数,用以描述杆件的相对位置。为了能描述含有树形或闭链结构的机器人,本文所采用的是改进型的D-H参数[17]。L=〈shape,size,density,color〉,表示除位置信息之外的杆件基本属性,分别为形状、尺寸、密度和颜色。J=〈type,axis〉,表示除位置信息之外的关节基本属性,包括关节类型,关节轴。
1.1.2 图结构模型
图结构是一种非线性的数据结构,由若干顶点和连接2个顶点的弧组成。图结构中,顶点之间的关系是任意的,任意2顶点之间均可以存在弧。用顶点表示机器人杆件,弧表示关节,则图结构能直观地描述任意复杂结构的机器人。机器人的图结构模型即用图结构对机器人进行的描述。
图结构模型是机器人在数据结构上的表示。该模型访问扩展D-H模型,计算出杆件和关节信息,并分别保存在图的顶点和弧中。表示为
在机器人的图结构模型中Links=〈shape,size,mass,color,position〉,表示机器人各个杆件,包含的信息有杆件的形状、尺寸、质量、颜色、位置及位姿。Joints=〈type,axis,linkP,linkN〉,表示机器人的各个关节,包含的信息有关节类型、关节轴、关节的位置以及与该关节相关联的2个杆件。
1.1.3 ODE 模型
ODE[18]是开放动力学引擎的简称,包括了刚体动力学引擎和碰撞检测引擎,采用ODE进行仿真可以不用考虑动力学约束,简化开发步骤,降低开发难度。ODE通过Body、Geom、Joint三个元素描述仿真世界中的各种实体,分别表示刚体、刚体几何信息以及刚体间的连接关系。关节型机器人由杆件和关节组成,杆件映射到ODE引擎下即Body和Geom,关节则对应Joint。通过ODE引擎中各种元素对机器人进行的描述,称为机器人的ODE模型。定义为
其中:Body=〈position,mass〉,position、mass是各杆件质心在杆件坐标系中的相对坐标和杆件质量,这2个为不变属性。Body元素还包括杆件质心位置、线速度、角速度、方向4个实时变化的属性,由ODE引擎在仿真过程中自动求解。
Geom=〈shape,size,color〉表示杆件的形状、尺寸、颜色3个几何信息。ODE支持的形状包括球体、圆柱体、箱体以及由三角形网格描述的复杂形状。机器人的所有Geom构成碰撞空间(space)。
Joint=〈type,axis,linkP,linkN〉,描述机器人的各关节。ODE支持的关节类型包括Hinge、Slider、Universal、Contact等。Contact为接触关节,用来描述发生碰撞的杆件之间的连接关系。
ODE模型同时作为仿真平台的控制接口,接收控制算法给定的输入,通过ODE引擎,影响图结构模型中杆件和关节的信息,输出仿真结果。
仿真平台运行机制见图1。扩展D-H模型获取仿真平台使用者输入的机器人参数,转换至图结构模型并保存,图结构模型将数据转换成ODE模型能够识别的数据,并交由ODE引擎输出仿真结果。
1.2.1 扩展D-H模型与图结构模型的转换
设(Pi,Li,Ji)是机器人扩展D-H模型中的第i个元素,P=〈αi,di,θi,ri〉。与杆件 Li相连的另一个关节为 Jk。(xBi,yBi,zBi) 是 Li的质心位置在基坐标系下的坐标,(xJk,yJk,zJk)是关节Jk所在位置在基坐标系下的坐标,则有式(4)和式(5)成立。
约定基坐标原点所在位置存在一个机器人的虚拟关节,即(xJ0,yJ0,zJ0)=(0,0,0)。依次访问扩展D-H模型的每一个元素,可以递归求出所有杆件质心位置和关节位置。用杆件质心位置数据与Li信息填充图的顶点,关节位置与Ji信息填充图的弧,即实现扩展D-H模型向图结构模型的转换。
1.2.2 图结构模型与ODE模型的转换
图结构模型向ODE模型的转换包括顶点信息的转换和弧信息的转换。转换过程为:
1)遍历图结构的所有顶点,对每个顶点数据做如下处理:① 创建一个Body和一个Geom;②根据顶点数据设定Body的位置;③由形状、尺寸、密度数据计算并设定Body的质量;④ 设定Geom的形状、尺寸、颜色;⑤ 将Geom与Body相关联。
2)遍历图结构的所有弧,并对弧数据做如下处理:① 创建一个Joint,根据弧数据设定Joint的关节类型、关节轴;② 搜索该弧两端的2个顶点,将Joint与2个顶点对应的Body相关联。
1.2.3 ODE 模型的运行
ODE模型的运行过程(图2)为:
1)创建动力学世界。
2)在动力学世界中创建机器人杆件、关节,并设置各自的状态。
3)创建碰撞空间、关节组。
4)做如下循环:① 调整关节参数,为杆件施加作用力;②碰撞检测;③ 在碰撞点创建接触关节,加入关节组;④ 仿真;⑤ 清空关节组;⑥ 销毁动力学世界、碰撞空间。
仿真平台的实现方案见图2。仿真平台使用者通过机器人配置界面配置机器人杆件参数和关节参数,配置数据以文本文档的形式保存。仿真平台读取配置文档,获得机器人的扩展D-H模型,通过前文所述算法将扩展D-H模型转化为图结构模型,以图的形式对机器人进行描述。在机器人图结构模型转换为ODE模型过程中,机器人的杆件、关节信息被解析为ODE下的Body、Geom、Joint元素,多个Body和Joint共同构成ODE的刚体世界World,多个Geom构成碰撞空间Space。ODE引擎通过控制接口接收控制数据,对 World和Space中的元素进行仿真循环,并输出仿真结果。
机器人的配置包括杆件的配置和关节的配置2个部分。杆件的配置形式为[No,D-H,JointD,JointT,Shpae,Size,Color,Density],表示的意义分别是杆件编号,D-H参数,驱动关节[17]编号,传动关节[17]编号,关节形状、尺寸、颜色和密度。
图2 仿真平台的实现方案
关节的配置形式为[No,Type,Axis,LinkP,LinkN],意义分别是关节编号、关节类型、关节轴以及由该关节相连的2个杆件的编号。基坐标系的原点作为机器人的一个虚拟关节,关节编号为0,其LinkP参数附值为无效值。机器人的末端也作为虚拟关节,其LinkN取一个无效值。
仿真平台提供4种传感器信息和2种控制接口。传感器信息包括关节位置、关节速度、关节力矩、关节角度,这些信息均通过查询Body和Joint的状态来得到。一种控制接口是关节角速度输入,4种传感器输出;另一种是关节力矩输入,4种传感器输出。
将控制算法计算出的给定力矩、角速度添加至对应的关节,调整与关节相连的杆件的位置和姿态,同时调用绘图函数依次绘制各个杆件,即可实现对仿真机器人的控制。
为了验证仿真平台的实验效果,对2种不同类型的机器人进行仿真。机器人的几何模型以及杆件参数分别见图3和表1,仿真效果见图4。
图3 机器人几何模型
表1 机器人杆件参数
图4 仿真机器人
部分杆件和关节配置文档如下:
为了验证平台的仿真效果,对仿真机器人A和B分别进行了动作规划实验。机器人A、B的初始姿态如图4。机器人A目标位置为关节1转动-90°和关节4转动-45°,其他关节不变,运动方式为关节插补运动;B的目标位置为关节1转动45°,关节4转动-45°,其他关节不变。机器人动作采用直线插补的方式进行规划。
关节插补是在关节空间对机器人进行的动作规划,只考虑机器人初始姿态和目标姿态,而不关心末端运动轨迹,计算量小且不会出现奇异位形。根据初始姿态和目标姿态求出各关节的运动范围,结合运行速度对运动范围均匀插值,可计算出一个控制周期内各关节的插补量,从而规划出关节运动轨迹。轨迹规划完成后,对各关节做跟踪控制,驱动机器人按规划的轨迹运动。
本实验采用PID控制算法,图5显示了仿真机器人A的运动过程以及输入力矩和输出角度的时间曲线。
对仿真机器人B的模型采用直线插补的方式进行动作规划。通过直线插补进行动作规划的机器人,在运行过程中,其末端轨迹是一条由初始点到目标点的直线。假设机器人起点位置为P1,目标位置为P2,机器人从起点位置到目标位置的直线插补规划为n步,则可求出机器人每步的运动步长
机器人第i步的末端位置
获得机器人每一步的末端位置后,根据机器人的逆运动学,可以求出每一步各个关节的关节角度,从而完成直线插补的轨迹规划。轨迹规划完成后,对各关节做跟踪控制,驱动机器人按规划的轨迹运动。
本实验采用了PID控制算法对机器人进行控制,控制器的给定量是关节角度,输出量是关节力矩。机器人模型运动过程截图见图6(a),图6(b)给出了机器人运行过程中的末端轨迹。在图6(c)中选取了机器人的1、2、3号关节作为考察对象,给出了关节的角度和力矩曲线。
由以上2组实验结果可以看出,由本方案实现的仿真平台对于不同类型的机器人均能进行仿真;同时仿真平台也能实现对不同仿真机器人的控制。
图5 机器人A实验
图6 机器人B实验
以提高仿真平台的通用性为目的,设计了一种基于混合模型的关节型机器人通用仿真平台,该方案结合了图结构对机器人描述的通用性和D-H参数在使用上的简便性。通过修改配置文档,仿真平台可以对不同结构的机器人实现仿真,或者更改现有仿真机器人的结构,从而验证机器人结构的合理性或对机器人进行结构优化。图4展示了由本方案实现的2种仿真机器人,并分别进行了动作规划实验,验证了本方案的有效性。
为了使仿真平台在使用上更加灵活方便,需要进一步完善的工作有:在线修改机器人配置文档并在线做出仿真;提高三维动画质量,增强仿真平台视觉效果。
[1]刘楚辉,姚宝国,柯映林.工业机器人切削加工离线编程研究[J].浙江大学学报:工学版,2010,44(3):426-431.
[2]张耀,王耀南,周博文.异型瓶药液中可见异物的智能视觉检测机器人[J].仪器仪表学报,2010,31(5):1058-1063.
[3]陈刚,张为公,龚宗洋,等.汽车驾驶机器人多机械手协调控制研究[J].仪器仪表学报,2009,30(9):1836-1840.
[4]王其军,杜建军.MOTOMAN机器人逆运动学分析[J].哈尔滨工业大学学报:自然科学版,2010,42(3):451-454.
[5]Chen G S,Tong R H,Qiang B G.Analysis on Flexibility of Industrial Welding Robots and Simulation Research[C]//20112nd International Conference on Mechanic Automation and Control Engineering.Piscataway.USA:IEEE,2011:81 -84.
[6]张建斌,宋荣贵,陈伟海,等.基于运动灵活性的蟑螂机器人机构参数优化[J].北京航空航天大学学报:自然科学版,2010,36(5):14 -22.
[7]Kajita Shuuji,Kaneko Kenji,Kaneiro Fumio,et al.Cybernetic human HRP-4C:A humanoid robot with humanlike proportions[C]//14th International Symposium of Robotic Research.Tiergartenstrasse,Heidelberg,Germany:Springer Verlag,2011:301 -314.
[8]赵强,岳永恒.仿生连续体机器人的研究现状与展望[J].机械设计,2009,26(8):1 -5.
[9]张勤,吴志斌,神谷好承.基于重复变换法的多关节站立型机器人搬运动作仿真[J].机器人,2011,33(3):340-346.
[10]张利格,毕树生,彭朝琴.空间四面体翻滚机器人运动学分析及仿真实验[J].北京航空航天大学学报:自然科学版,2011,37(4):415 -427.
[11]王福斌,刘杰,焦春旺,等.基于ANFIS的挖掘机器人挖掘轨迹仿真[J].东北大学学报:自然科学版,2011,32(4):554-558.
[12]崔鹏,陈志,张小超.苹果采摘机器人仿生机械手静力学分析与仿真[J].农业机械学报,2011,42(2):149-153.
[13]薛方正,刘成军,李楠,等.基于ODE引擎的开放式仿人机器人仿真[J].机器人,2011,33(1):84 -89.
[14]Nakamura Y,Hirukawa H,Yamane K,et al.Humanoid robot simulator for the METI HRP project[J].Robotics and Autonomous Systems,2001,37(2/3):101 -114.
[15]Friedmann M,Petersen K,Stryk O V.Tailored real-time simulation for humanoid robots[C]//11th RobotCup International Symposium.Berlin:Springer-Verlay,2008:425-432.
[16]刘永,王克鸿,杨静宇,等.IGM弧焊机器人大型工作站仿真系统设计[J].焊接学报,2006,27(2):59 -63.
[17]霍伟.机器人动力学与控制[M].北京:高等教育出版社,2006:16-23.
[18]Smith R.Open dynamics engine v0.5 user guide[EB/OL].[2010 -02 -25].http://www.ode.org/ode-latestuserguide.html.
[19]周静,程兴国,肖南峰.CPN网络模拟仿人机器人学习推理能力的应用[J].重庆理工大学学报:自然科学版,2011(6):73-78.
[20]荣伟彬,秦志刚,王乐锋,等.压电马达驱动3-PPTRR并联机器人研究[J].压电与声光,2010(1):141-144.