吴越文, 郝正航, 陈 卓, 顾红艳
(贵州大学 电气工程学院, 贵州 贵阳 550025)
虚拟仿真技术探索与实践
基于实时仿真器的开放式机器人实验平台
吴越文, 郝正航, 陈 卓, 顾红艳
(贵州大学 电气工程学院, 贵州 贵阳 550025)
针对电气工程、自动化、机械工程等专业的教学需求,设计了基于通用实时仿真器的全开放机器人实验平台。实验平台采用模块化设计,上位机示教与监控、轨迹规划、机器人正逆运动学计算和驱动装置完全开放,具有实时性好、通用性强和程序开发便捷的特点。利用该平台能够进行机器人写字、搬运以及机械本体、驱动器、示教程序设计等多种实验,有利于培养学生的动手能力、独立思考能力和创新能力。
机器人; 实时仿真; 开放式实验平台; 模块化设计
近年来,工业机器人在汽车制造、航空航天、医学以及物流等领域得到广泛应用[1-2],企业对机器人研发技术人才的需求十分旺盛。在这种背景下,很多高校开始重视机器人应用专业的建设。但是,高校的工业机器人实验和开发平台还比较匮乏,现有一些平台功能单一、程序固化、开放度不高,实时性与可观测性也不强[3]。有些机器人实验平台通用性不够好[4];有些采用全虚拟仿真的机器人实验,不能与机器人实物连接进行实验,不利于培养学生的实际动手能力[5]。为此,开发了基于实时仿真器的开放式机器人实验平台。
为了满足本科及以上层次工业机器人实验教学与创新实验的要求,开发的基于实时仿真器的开放式机器人实验平台应达到如下目标:(1)提供基本模型库,包括运动学模块、动力学模块、轨迹规划模块等,为应用型本科实验教学提供基础教学案例;(2)允许用户自行开发模型库,自行编写代码,定义各种功能模块,为创新实验提供想象空间;(3)允许图形化建模,按照正确的逻辑关系,以连线形式搭建系统模型,适应现代高效研发模式;(4)提供完善的硬件基础和充裕的I/O资源,计算能力满足机器人模型的实时解算需要,有足够的输入通道反馈机器人多个运动变量,有足够的输出通道驱动多个关节甚至多台机器人协调控制;(5)通用性好,不局限于某类或某种控制对象,而要能够适用于各种机器人对象。
基于实时仿真器的全开放机器人实验平台由5部分组成(见图1)。上位机安装有Matlab/Simulink,用于控制系统建模,通过以太网线与实时仿真器通信、传递示教信息、接收监视量数据;实时仿真器用于实时运算控制模型,通过自身I/O与机器人机械本体通信,传递驱动信号,并接收机器人运动状态反馈信号。
图1 基于实时仿真器的全开放机器人实验平台
2.1 通用实时仿真平台
自行开发了基于模型的工程设计应用的通用实时仿真平台(UREP)。UREP包含多核处理器、高速通信卡、I/O设备、监控软件和实时操作系统,是本实验平台的核心装置。采用UREP,使用者可以直接利用Matlab/Simulink建立动态系统数学模型,将Simulink模型转化为C代码,在实时硬件上运行,进行实时仿真、控制、测试等实验。UREP具有快速控制原型、功率级快速控制原型、硬件在环和功率级硬件在环4项基本功能,仿真步长最短可达30 μs,其中I/O通道支持±10 V模拟信号的输入/输出、TTL电平形式的数字信号输入输出,完全能够满足机器人实验的一般需求。基于Simulink图形化的建模简洁明了,学生容易掌握,能够快速建立模型并在实时仿真器上运行,转化为实际的控制器,省去了繁琐的嵌入式开发过程。
2.2 模块功能设计
全开放机器人实验平台主要由示教模块、监控模块、轨迹规划模块、运动学规划模块和驱动模块构成,各模块完全开放,可直接调用,学生也可自主设计个性化模块。
2.2.1 示教模块与监控模块
目前大多数工业机器人采用示教再现模式,即用户输入关键点信息,示教器记录这些点的位置、位姿等信息,然后控制机械本体各轴的运动,完成示教再现[6]。对于关键的运动状态信息,需要监控模块进行实时监控与显示。
2.2.2 轨迹规划模块
轨迹规划模块的功能是将示教点位置及位姿信息转化为空间直角坐标系中连续的运动轨迹。令向量P(p1,p2,…,pn)为示教点位置向量,Q(q1,q2,…,qn)是示教点位姿向量,T(t1,t2,…,tn)是示教点时刻向量。经过轨迹规划模块,离散的位置、位姿和时间向量变为如下所示关于时间连续的位置函数P(t)和位姿函数Q(t):
(1)
(2)
2.2.3 运动学规划模块
运动学规划模块可以分成正运动学和逆运动学两个部分,由D-H参数法来描述并求解[7-8]。正运动学模块将机械本体中传感器所得的轴坐标系中各轴的转动信息,转化为空间直角坐标系中的位置和位姿信息;逆运动学是则与其相反,将轨迹规划模块得到的空间直角坐标系中位置和位姿信息转化为轴坐标系中各轴的转动信息,并输出到驱动模块。
以六自由度关节型机器人PUMA560为例,正逆运动学方程的求解参见文献[9],其末端位置正运动学计算结果如式(3)—式(5)所示,px、py和pz分别代表机器人末端在空间直角坐标系中的x坐标、y坐标和z坐标,θ1、θ2、θ2分别是前3轴电机转角。
(3)
(4)
(5)
由式(1)—式(3)可见,六自由度机器人末端位置仅由前3轴的转角决定。由末端位置求得前3轴转角的逆运动学计算结果如式(6)—式(8)所示。
(6)
(7)
(8)
由式(6)—式(8)可见:θ2和θ3均有2个可行解,结合实际运动情况和各轴的运动范围,即可确定最优解[10]。
2.2.4 驱动模块
驱动模块的功能是将运动学规划得到的各转轴的运动信号转化为能够实际驱动电机的驱动信号。不同类型的电机对应不同的驱动信号,驱动某些电机还需要扩展功率放大器。例如舵机通常以周期为20 ms的脉宽调制(PWM)信号为驱动信号,不需要功率放大器;而步进电机以脉冲为驱动信号,脉冲个数控制其转动角度,脉冲频率决定其转动速度,需要驱动信号。要驱动有不同类型电机的机器人,仅需对驱动模块进行修改。
示教模块和监控模块的建模在上位机中基于LabVIEW完成,它提供了丰富的控件,采用图形化编程,非常适合用来完成人机交互界面的制作。轨迹规划模块、运动学规划模块和驱动模块均在Simulink中建模,然后编译到实时仿真器中运行。LabVIEW和Simulink的通信采用以太网协议,以模拟量和数字量的形式将示教点信息和控制信号传递给实时仿真器,并接收机器人的位置和位姿信息。
3.1 示教模块与监控模块建模
示教模块与监控模块基于LabVIEW建模。示教模块将用户输入的示教点信息以数组的形式存储;监控模块则直接使用LabVIEW提供的显示控件,对接收到的机器人运动信息进行监控。
图2是示教模块中示教点位置信息——空间直角坐标系x坐标、y坐标、z坐标数组和示教点对应时刻数组t的生成。
图2 示教点信息的存储
3.2 轨迹规划模块建模
该模块需要生成分段函数,利用代码编写较为便捷,故使用Simulink中的Matlab Function模块和Matlab语言编写[11],完成轨迹规划模块的建模。将示教点x坐标数组与时刻数组t变为轨迹函数x分量x(t)的模型见图3,y(t)和z(t)的建模与之相同。
图3 轨迹规划模块建模
Matlab Function内代码如下:
function y = fcn(x,t,clo,num) y=x(num+1); if clo<=t(1) y=x(1); //轨迹的初始化 end for i=1:1:num if t(i)<=clo&clo elseend end 图4是以x方向相邻两点间匀速运动的轨迹为例生成的x(t),输入量为示教点x坐标数组(100,200,400),时刻数组t(0,1,2),clock为Simulink内置时钟模块,num为分段函数段数(示教点点数减1)。 图4 轨迹函数x(t) 由仿真结果可见,输出轨迹函数x(t)与输入的示教点信息对应,符合预期。 3.3 运动学规划模块建模 依照2.2.3节中正/逆运动学的计算公式,对正/逆运动学模块在Simulink中进行建模。正运动学计算中末端位置x坐标px的求取建模如图5所示;逆运动学计算中第一轴转角θ1的求取建模如图6所示。 图5 正运动学计算末端位置x坐标px计算建模 图6 逆运动学计算第一轴转角θ1计算建模 运动学规划模块中其他位置和位姿量的求取,同样按照2.2.3中的公式在Simulink中完成建模。 3.4 驱动模块 针对驱动机器人的电机类型不同,驱动模块在应用时需要做相应修改。其中常用的脉冲宽度调制信号(PWM)和脉冲频率调制信号(PFM)的发生器建模如图7、图8所示,它们分别可以用于驱动舵机和步进电机。PWM信号发生器的输入信号为占空比;PFM信号发生器的输入信号为脉冲周期[12]。 图7 PFM信号发生器建模 图8 PWM信号发生器建模 使用实验平台时,首先依据实验需求进行各模块的建模,在上位机中利用示教模块和监控模块搭建人机交互界面,在Simulink中连接轨迹规划模块、运动学规划模块和驱动模块,并编译到通用实时仿真器中运行。逆运动学模块接收来自上位机的示教点信息,将轨迹函数输出给运动学规划模块,运动学规划模块将各轴的转动信息输出给驱动模块;驱动模块将驱动信号通过通用实时仿真器I/O通道输出,实现对机器人的控制。仿真器也接收来自机器人的反馈信息,通过正运动学模块得到机械末端运动信息,输出给上位机。 4.1 机器人实验的人机交互界面 基于通用实时仿真平台监控环境,设计机器人实验的人机交互界面如图9所示。人机交互界面通过在面板上定位并确定示教点位置,然后将示教点的空间坐标输入,完成示教再现过程,并对机械本体各转轴的转角和末端位置进行实时监控。在六自由度关节型机器人上的测试取得了良好的实验效果。 图9 机器人实验的人机交互界面 4.2 机器人搬运实验 若按传统轨迹规划模型,两点间采用匀速运动,则在动作衔接处会有速度突变。为避免机械臂在示教点产生速度突变而对机器人机械本体产生损害,利用轨迹规划模块将两点间的运动过程修改为初速度和末速度均为0的匀加速、匀速和匀减速运动。 模块输入同3.2节,输出的位移函数x(t)曲线与速度函数v(t)曲线如图10、图11所示。改进后速度不再突变,能够有效减少机械本体的磨损,而且应用此轨迹规划模块,机器人搬运实验的效果有了明显改进,使失步减少,精确度得到了提高。 图10 位移函数曲线 图11 速度函数曲线 4.3 驱动装置设计 实验平台具有良好的可扩展性。由于I/O直接输出的TTL电平的输出电流很小,无法提供功率输出,为驱动步进电机,需要学生利用ULN2003A驱动芯片和L298N驱动芯片搭建驱动板,接收由实时仿真器I/O输出的驱动信号,驱动两相六线步进电机和两相四线步进电机。 基于实时仿真器的开放式机器人实验平台采用模块化设计,控制部分支持Matlab/Simulink建模,控制对象采用实物,具有开放程度高、程序设计便捷、扩展性好等特点,为学生独立思考、创新设计和动手实践创造了良好的条件。 References) [1] 王田苗,陶永.我国工业机器人技术现状与产业化发展战略[J].机械工程学报,2014,50(9):1-13. [2] 谭民,王硕.机器人技术研究进展[J].自动化学报,2013,39(7):963-972. [3] 戴亦宗,陈旭.基于三菱工业机器人的实验室建设方案设计[J].实验科学与技术,2015,13(1):194-197. [4] 刘延飞,李琪,毕经存,等.一种全自主移动机器人实验平台的设计与研究[J].实验技术与管理,2009,26(2):67-70. [5] 谢斌,蔡自兴.基于MATLAB Robotics Toolbox的机器人学仿真实验教学[J].计算机教育,2010(19):140-143. [6] 沈雅琼.基于WinCE的工业机器人示教软件设计[D].武汉:华中科技大学,2014. [7] 周芳芳,樊晓平,叶榛.D-H参数表生成三维机器人模型仿真系统[J].系统仿真学报,2006,18(4):947-950. [8] 刘源.多自由度工业机器人控制系统设计[D].赣州:江西理工大学,2012. [9] 黄文嘉.工业机器人运动控制系统的研究与设计[D].杭州:浙江工业大学,2014. [10] 殷际实,何广平.关节型机器人[M].北京:化学工业出版社,2003. [11] 刘金琨.机器人控制系统的设计与MATLAB仿真[M].北京:清华大学出版社,2008. [12] 吴红星,黄玉平.电动机新型控制集成电路应用技术[M].北京:中国电力出版社,2014. Open experimental platform for robot based on real-time simulator Wu Yuewen, Hao Zhenghang, Chen Zhuo, Gu Hongyan (Electrical Engineering College, Guizhou University, Guiyang 550025, China) Aiming at the teaching needs of undergraduates and postgraduates majored in electrical engineering, automation, mechanical engineering, etc., this paper establishes the completely open experimental platform for robot based on real-time simulation. The experimental platform is a modular design, and is completely open from teaching pendant, trajectory planning, kinematic planning to drive module. It has the characteristics of better real-time ability, strong generality and it is easy to program. With the experimental platform, robot writing, carrying, designing the mechanical body and teaching pendant could all be done. And it is beneficial to train the students’ operational ability, independent thinking ability and creativity. robot; real-time simulation; open experimental platform; modular design 10.16791/j.cnki.sjg.2017.01.026 2016-08-29 贵州省科技厅联合基金项目(LH字[2014]7613/7616)资助 吴越文(1993—),男,湖北武汉,硕士研究生,主要研究方向为电力电子与电力传动技术 E-mail:wuyuewen@live.cn 郝正航(1972—),男,河南开封,博士,教授,博士生导师,主要研究方向为电力系统稳定、风力发电. E-mail:haozhenghang@163.com TP24:G484 A 1002-4956(2017)1-0114-054 实验平台实训案例
5 结语