APP下载

一种机器人三维实时运动仿真方法

2015-07-07黄晓辰张明路张小俊白丰高涵

河北工业大学学报 2015年4期
关键词:单腿连杆坐标系

黄晓辰,张明路,张小俊,白丰,高涵

(河北工业大学机械工程学院,天津 300130)

一种机器人三维实时运动仿真方法

黄晓辰,张明路,张小俊,白丰,高涵

(河北工业大学机械工程学院,天津 300130)

针对机器人三维实时运动仿真常用方法中不能与控制系统开发平台相融合、缺乏算法支持的问题,提出一种机器人三维实时运动仿真方法.该方法使用SolidWorks软件作为机器人三维模型显示的载体,采用VisualStudio C++软件对该三维软件进行二次开发,将控制系统与三维实时仿真平台相融合,不仅能够对机器人下达控制指令,而且利用三维实时仿真平台对该机器人的运动进行实时仿真.研究表明,使用这种实时运动仿真方法能够在保证精度的前提下,使用反馈回的位置数据实时驱动相应的等比例三维模型,实时记录机器人的运动数据,使机器人的运动更加直观和准确.

机器人;坐标变换;轨迹跟踪;实时仿真

0 引言

随着计算机技术的普及,使用计算机对机器人运动过程进行实时运动仿真成为一种趋势[1].在机器人运动过程中,对其运动状态的三维实时仿真直观的显示机器人实时的运动状态,方便操作人员远程观测,对于验证机器人工作原理、工作空间及碰撞检测预警都具有非常重要的指导意义[2].三维实时运动仿真系统由于对机器人的运动状态进行实时跟踪,时刻要对机器人当前位姿进行计算,需要计算机很大的系统开销.此外,搭建的计算机模型系统越接近于真实系统,计算机进行数据计算所需的系统开销越大[3].受限于现阶段计算机的软硬件系统,通常计算机仿真系统是对实际系统的关键信息进行仿真,并不能完全反映出实际系统真实的运动特性,尤其是在系统的一些临界点上容易出现错解[4-5].

为解决三维模型实时显示的问题,国内外很多学者和研究人员提出很多三维实时运动仿真方法,主要集中在基于数学软件(如Matlab、Maple)仿真[6-10]和基于图形库(如OpenGL)仿真[11-15]两个方向.基于数学软件的仿真方法具有精度高的优点,很多算法可以集成至仿真平台中,然而这种仿真平台一般缺乏三维图形显示功能,不能直观地表达出机器人各连杆和末端执行器的姿态,此外,存在与控制软件平台与图形采集平台难以融合的问题;而采用OpenGL图形库作为三维模型显示的载体具有较强的平台移植性且通用性较强,但是OpenGL图形渲染能力差,导致三维模型的观测效果不佳,而且OpenGL程序建模过于复杂,存在仿真系统开发周期过长的问题.

针对上述方法的弊端,提出一种基于SolidWorks的三维实时运动仿真方法,这种方法使用Visual Studio C++软件对SolidWorks软件进行二次开发.其优势在于,使用成熟的商业三维软件SolidWorks作为显示载体可以全面清晰的显示机器人的三维模型,与Visual Studio C++开发出的控制系统有机的集合,解决了基于数学软件仿真和基于图形库仿真存在的问题.采用这一方法能够在机器人运动的同时,实时驱动计算机中相应的等比例三维模型做相同的运动,实现远程对机器人运动状态进行全方位观测,并实时记录机器人的运动数据,使机器人的运动更加直观和准确.

1 SolidWorks二次开发原理

SolidWorks软件提供的二次开发接口(API),使用户能在软件本身功能的基础上开发出新的功能模块,满足特定的需求[16].作为基于Windows平台的三维造型软件,SolidWorks软件本身具有完善的虚拟三维模型显示功能.

二次开发的优势在于它可以通过SolidWorks软件提供的API调用软件本身的功能,直接在已有功能的基础上开发特定功能的软件模块[17].文中提出的方法利用SolidWorks软件作为显示三维模型的载体,采用Visual Studio C++开发工具对三维显示软件进行二次开发,生成实时运动仿真软件,利用Access数据库进行数据传递并保存运动变量及仿真数据,使虚拟系统实时对实际系统进行运动仿真,实现高精度仿真并完整记录仿真数据,其开发流程如图1.

2 虚拟系统建模

图1 三维实时运动仿真开发流程图Fig.1Three-dimensional real-time motion simulation development flowchart

为保证虚拟系统仿真的精确度,首先要求虚拟系统的三维模型建模准确,保证虚拟系统模型的建立与实际系统相一致.其次程序中的模型需要采用计算机图形学进行建模,程序建模时抽象出的数学模型需要与三维模型抽象出的数学模型相同.

2.1 虚拟系统三维模型建模

虚拟系统中的三维模型需要与实际系统相一致,通常采用相同比例或等比例缩放进行建模.在SolidWorks软件中建立模型通常有2种方法:编程建模和手工建模.两种方法各有利弊,采用编程建模一般只能建立形状简单的零件,若零件较复杂,优先采用手工建模.

对实际系统进行分析,将相对位置不变的构件划分为同一零件,在SolidWorks软件中分别建立与实际系统相对应的零件.在零件进行装配的过程中,将所有的零件按照实际系统的装配关系进行装配,调整零件间装配关系,使虚拟系统与实际系统参数相一致.在SolidWorks软件中,零件的位姿由零件本身的坐标原点位置及方向决定,而装配所有零件后的装配体文件本身存在一个全局坐标系,其中包含的每个零件都存在各自的局部坐标系,需要计算并规划出全局坐标系和局部坐标系的关系才能建立起数学模型,全局坐标系与局部坐标系的关系如图2.

图2 全局坐标系与局部坐标系Fig.2Global coordinate system and local coordinate system

对应在SolidWorks API中,装配体中每个零件的位姿都是由一个相对位置为4行4列的位姿矩阵表示,其中位姿矩阵的前3行3列代表该零件的坐标系X、Y、Z三坐标轴方向,第4列前3行代表其坐标原点位置,第4列第4行代表缩放系数.SolidWorks API的层次结构分明,上层与下层的接口可以通过方法或属性承接,且每个接口都包含若干方法和属性.通过AssemblyDoc接口下的AddComponent2()方法在程序中实现装配体文件中各零件的添加;通过调用ModelDoc2接口下的GetA-ctiveConfiguration()方法可以得到Configuration接口,继续调用Configuration接口下的GetRootComponent()方法可以得到Component2接口,继续调用Component2接口下的的GetXform()方法即可得到位姿矩阵中各元素的值.使用这种方法,获得虚拟系统所有零件的初始位置位姿矩阵,调用OleDb类将这些信息存入到Access数据库中.

2.2 虚拟系统程序建模

计算机图形学的本质是坐标变换[18],按照计算机图形学中图形变换的规则在虚拟系统的转动关节或平动关节建立局部坐标系,按照机器人运动学解算方法,带入计算公式得到各个关节变化规律,完成虚拟系统数学模型的搭建,将数学模型写入程序.

虚拟系统可以看作是由一系列连接在一起的连杆构成,连杆间的运动副起到约束连杆间相对运动的作用.连杆通常分为终端连杆和中间连杆两类.从一个终端连杆开始,通过关节连接到下一个中间连杆,将所有的中间连杆都使用关节连接在一起,最后关节连接另外一个终端连杆.连杆从基础连杆到末端执行器依次编号为0,1,2…,n,连接第i 1个连杆和第i个连杆的运动副记作第i个关节,这样虚拟系统可以看作是由n+1个连杆和n个关节组成[19].在第i个关节处建立第i个坐标系,就能够按照两个旋转和两个平移的坐标系变换方法建立相邻两连杆i 1与i之间的相对关系.坐标系间的关系根据如下规则定义[20-21]:

1)绕Zi1轴旋转角,使Xi1轴转到与Xi同一平面内.

2)沿Zi1轴平移一距离di,把Xi1移到与Xi同一直线上.

3)沿Xi轴平移一距离ai1,把连杆i 1的坐标系移到使其原点与连杆n的坐标系原点重合的地方.

4)绕Xi1轴旋转角,使Zi1转到与Zi同一直线上.

相邻坐标系间的计算关系如公式1所示.

根据上述坐标系间参数变换关系,获得关节变量参数表,带入运动学公式求出局部坐标系相对于全局坐标系的位置和姿态关系,得到虚拟系统的数学模型,将其写入程序即可.

3 实时仿真的实现

将程序建模与三维模型建模建立对应关系后,调整各连杆的位置和姿态,即实现了实际机器人系统与虚拟系统的一一对应.实际机器人开始运行时,为实现虚拟系统跟随实际机器人系统的实时运动仿真,在程序中以固定的时钟读出Access数据库中虚拟系统各连杆的位置信息.结合控制器反馈回的实时数据,计算当前所有零件的新位姿,遍历所有零件,调用ModelDocExtension接口下的SelectByID2()方法选中零件,再调用Component2接口下的SetXform()方法刷新各零件的新位置,即可实现虚拟系统的实时运动仿真.此外,仿真过程中产生的运动数据通过调用OleDb类,实时的记录至Access数据库中,方便得到系统的运动特性,整个系统的操作流程如图3.

需要特别注意的是,时间间隔参数表示虚拟系统运动仿真刷新频率,在每个时间间隔内,整个程序会按照实际系统实时运动状态计算出虚拟系统调整后的新位姿,并将计算出的运动位姿记录至数据库中.

这一参数直接影响运动仿真的连贯性,在计算机硬件允许的条件下,尽量缩短时间间隔,若时间间隔参数过大,运动仿真会出现明显的停顿感.

图3 三维实时运动仿真流程Fig.3Three-dimensional real-time motion simulation process

4 实时仿真实例

运用上述方法可以实现多种类型的机器人运动过程的仿真,以一机器人底盘单腿为例介绍实时仿真过程,该机器人单腿实物模型如图4.

4.1 机器人单腿三维模型建模

首先在SolidWorks软件中建立与机器人单腿相等比例的三维模型,单腿虚拟三维模型如图5.

调整机器人单腿虚拟三维模型初始位置与实际机器人单腿位置相一致,如图6.

在程序中遍历虚拟三维模型装配体中所有零件,使用GetXform ()方法获取各零件位姿矩阵,将初始位姿数据存入到Access数据库中.

4.2 机器人单腿程序建模

按照1.2中所述规则建立各关节坐标系,如图7.

建立好坐标系后,按照旋转变换关系得到各关节变量参数表,如表1.

图4 机器人单腿实物模型Fig.4Robot leg physical model

图5 机器人单腿虚拟三维模型Fig.5Virtual three-dimensional model of robot leg

将关节变量参数表中的数据顺序带入至公式(1)中得到机器人单腿虚拟三维模型的数学模型,其末端执行器车轮的位姿计算结果如表2.将得到的数学模型写入程序,至此完成虚拟三维模型与程序数学模型的对应关系.

4.3 机器人单腿实时运动仿真

在程序中设定仿真系统的刷新周期是250 ms,结合控制器反馈的各电机实时数据,每250 ms仿真系统就对机器人三维模型重新计算一遍当前位姿,并刷新显示机器人三维模型,并记录机器人所有的运动信息至Access数据库中.因数据库记录数据量过于庞大,为进行实时仿真结果对照,只分析机器人末端执行器车轮部分在10 s内记录下的运动数据,将数据描绘在机器人末端执行器位置跟踪仿真曲线上,如图8.

图6 调整后的机器人单腿虚拟三维模型Fig.6Virtual three-dimensional model of robot leg after adjusting

图7 建立机器人单腿坐标系Fig.7Establish robot leg coordinate system

表1 机器人单腿关节变量参数表Tab.1Robot leg joint variable parameter

仿真曲线中,点表示Access数据库中机器人的末端位置,曲线表示其末端仿真曲线,二者是吻合的,从而证明这种三维实时运动仿真方法是正确的,实现了对机器人单腿的运动过程的实时仿真.

表2 机器人单腿末端执行器位姿矩阵Tab.2Position and orientation matrix of robot leg

5 结束语

针对机器人三维实时运动仿真常用方法中不能与控制系统开发平台相融合、缺乏算法支持的问题,提出一种机器人三维实时运动仿真方法.该方法使用SolidWorks作为三维虚拟系统显示的载体,使用VisualStudio C++开发工具对该显示软件进行二次开发,生成实时运动仿真软件,并利用Access数据库进行数据传递并保存运动变量及仿真数据,实现对机器人运动过程的实时仿真.通过实例验证,使用这种实时运动仿真方法能够在保证精度的前提下,实时显示实际机器人的运动状态,并能够完整记录机器人的运动数据.

[1]DengSihao,Cai Zhenhua,FangDandan,etal.Applicationofrobotofflineprogramminginthermalspraying[J].SurfaceandCoatingsTechnology,2012,206(19-20):3875-3882.

[2]李刚俊,陈永.机器人的三维运动仿真[J].西南交通大学学报,2002,37(3):273-276.

[3]徐正,单忠德,张倩.基于虚拟现实建模语言的某抢险工程机械运动仿真[J].机械工程学报,2013,49(15):163-168.

[4]Carlos A Jara,Francisco A Candelas,Pablo Gil,et al.EJS+EjsRL:An interactive tool for industrial robots simulation,Computer Vision and remote operation[J].Robotics and Autonomous Systems,2011,59:389-401.

[5]Servet Soyguder,Hasan Alli.Computer simulation and dynamic modeling of a quadrupedal pronking gait robot with SLIP model[J].Computers and Electrical Engineering,2012,38:161-174.

[6]李宪华,郭永存,张军,等.基于MATLAB的模块化机器人手臂运动学算法验证及运动仿真[J].计算机应用研究,2013,30(6):1682-1685.

图8 机器人单腿末端执行器位置跟踪仿真曲线Fig.8Robot leg end-effector position tracking simulation curve

[7]Cheng Guoyang,Hu Jingao.Robust proximate time-optimal servomechanism with speed constraint for rapid motion control[J].Robotics and Computer-Integrated Manufacturing,2014,30:379-388.

[8]葛文杰,沈允文,杨方.仿袋鼠机器人跳跃运动步态的运动学[J].机械工程学报,2006,42(5):22-26.

[9]Tao Liu,Tobia Zordan,Bruno Briseghella,et al.An improved equivalent linear model of seismic isolation system with bilinear behavior[J].Engineering Structures,2014,61:113-126.

[10]CalebSawade,StephenTurnock,Alexander Forrester,et al.Improvedrehabilitation andtrainingtechniques throughtheuseof motion simulation-Core strength conditioning for elite rowers[J].Procedia Engineering,2012,34:646-651.

[11]温磊,梁真毓,迟永滨.基于VB和OpenGL的挖掘机械实时运动仿真[J].计算机辅助工程,2008,17(2):69-72.

[12]陈刚,崔壮平,曾杨,等.基于物理引擎的多体系统实时运动仿真研究[J].系统仿真学报,2013,25:167-172.

[13]王哲,王知行,刘文涛,等.并联机床工作空间分析及实时运动仿真的研究[J].中国机械工程,2001,12(9):969-972.

[14]张彦斐,宫金良,魏修亭.一种串联机器人的实时运动仿真[J].组合机床与自动化加工技术,2013,5:42-43.

[15]傅由甲,杨克俭.基于碰撞响应的三维空间多刚体实时运动仿真[J].计算机仿真,2006,23(9):198-201.

[16]SolidWorks公司著.SolidWorks装配体建模[M].北京:清华大学出版社,2005.

[17]田芳勇,姜衍仓,胡赤兵,等.椭圆齿轮参数化设计与运动仿真系统的开发[J].兰州理工大学学报,2011,37(2):30-33.

[18]Zhang Yunong,Wu Huarong,Guo Dongsheng.The link and comparison between velocity-level and acceleration-level repetitive motion planning schemes verified via PA10 robot arm[J].Mechanism and Machine Theory,2013,69:245-262.

[19]蔡自兴.机器人学[M].第2版.北京:清华大学出版社,2009.

[20]Craig John J.机器人学导论[M].北京:机械工业出版社,2005.

[21]陈恳,杨向东,刘莉,等.机器人技术与应用[M].北京:清华大学出版社,2007.

[责任编辑 田丰夏红梅]

Three-dimensional real-time motion simulation method of robots

HUANG Xiaochen,ZHANG Minglu,ZHANG Xiaojun,BAI Feng,GAO Han

(School of Mechanical Engineering,Hebei University of Technology,Tianjin 300130,China)

Aiming at the problem that the three-dimensional real-time motion simulation method of robots cannot fuse with the control system development platform and lacks algorithms support,a three-dimensional real-time motion simulationmethod was proposed.In thismethod,SolidWorkssoftwareworksasa carrierof therobot three-dimensionalmodel. This three-dimensional software is secondary development by Visual Studio C++software.Control system and the threedimensional real-time simulation platform are integrated,then not only can the robot be commanded,but also the motion of the robot can be real-time simulated by the three-dimensional real-time simulation platform.Research shows that,by using this method,the proportional three-dimensional model can be real-time driven by using the positional data that be fed back on the premise of guaranteeing precision,and the motion of robots can be displayed intuitively and precisely, and the data generated by movement of robots can be completely recorded.

robots;coordinate transformation;trajectory tracking;real-time simulation

TP391.9

A

1007-2373(2015)04-0042-06

10.14081/j.cnki.hgdxb.2015.04.009

2014-12-26

国家高技术研究发展计划(863计划)(2011AA040201);机器人技术与系统国家重点实验室开放研究项目(SKLRS-2013-ZD-04)

黄晓辰(1988-),男(汉族),博士生.

猜你喜欢

单腿连杆坐标系
压裂泵虚拟试验连杆疲劳性能研究
独立坐标系椭球变换与坐标换算
基于重心动力学及虚拟模型的单腿平台运动控制*
某发动机连杆螺栓拧紧工艺开发
单腿蹦还是齐步走——浅谈直销产品导向和事业导向
解密坐标系中的平移变换
坐标系背后的故事
连杆的设计及有限元分析
火烈鸟单腿站立更“节能”
单腿跳治头晕