基于SharpGL 的工业机器人正运动学仿真技术研究

2018-02-22 03:07:04谢坤鹏刘朝华邓三鹏祁宇明
机器人技术与应用 2018年6期
关键词:面片位姿运动学

谢坤鹏 刘朝华 邓三鹏 祁宇明

(天津职业技术师范大学机器人及智能装备研究所,天津,300222)

0 引言

随着计算机软硬件技术的飞速发展和计算机图形学的日趋成熟,传统地依靠文字来描述机器人位姿信息的监控方式已不能满足人们的需求,三维可视化仿真监控技术应运而生。

三维可视化仿真监控系统是通过实时获取机器人的六关节角度值来同步驱动仿真系统3D 模型运动,实现3D模型与现实机器人位姿同步,从而提高监控系统的直观性。其中,建立3D 模型是仿真系统的关键技术之一,1988 年,代学耕等人总结了国外的仿真技术,并针对三维动态图形显示功能的通用化机器人仿真系统进行探讨[1];俞文伟等人开发了一个ROSDIY 通用工业机器人图形仿真软件[2];孔凡斌等人实现了在UG 环境下的机器人按指定路径的运动仿真[3];袁安富、朱华炳等人利用ADAMS 软件对工业机器人图形仿真进行研究[4-5];于天宇、王智兴等人利用MATLAB 软件对机器人进行了运动学仿真[6-7];邢迪雄等人利用CATIAV5 软件对机器人运动学进行仿真[8];陈琳等人利用OpenGL 图形接口对多机器人环境进行仿真[9]。笔者分析发现:UG 软件只能实现简单的机构仿真,难以实现机器人的控制仿真;ADAMS 难以嵌入用户开发算法;MATLAB 虽然易于算法的开发和仿真验证,但难以直接驱动控制器;而OpenGL 是一个跨平台、开源的图形程序接口,没有上述几款软件存在的问题,但是文献[9]中没有对OpenGL 中机器人动态模型的建立作详细介绍,因此,本文基于SharpGL 开发出一套ABB 公司IRB120 机器人3D 仿真系统,并详细阐述了机器人3D 模型的建立方法。

1 基于SharpGl 的机器人三维建模

由于微软OpenGL 官方版本里缺少在.Net 框架下对OpenGL 开发接口(API)的支持,导致C#语言无法直接利用API 开发图形程序,使得C#的简单、实用、开发效率高等特性在OpenGL 开发中无法体现。针对这一问题,广大的C#爱好者们对OpenGL 进行封装,由此出现了一批适用于C#的OpenGL 第三方动态链接库,SharpGL 正是其中一种。

SharpGL 是一个OpenGL 被封装后的C#类库集合,它主要包含SharpGL.dll(主OpenGL 对象,封装所有OpenGL 函数、枚举和扩展)、SharpGL.SceneGraph.dll(OpenGL 对象和场景元素的所有包装,如灯光、材质、贴图、NURB、着色器等)、SharpGL.WinForms.dll(适用于应用程序的Windows 窗体控件)、SharpGL.WPF.dll(适用于应用程序的WPF 控件)、SharpGL.Serialization .dll(用于从3D Studio Max 文件、Discreet obj 文件和trueSpace 文件加载几何图形和数据的类)[10]。

1.1 机器人3D 模型绘制

由于机器人各轴零部件结构复杂,如果按照零部件的实际机械模型进行绘制,将产生大量的数据信息。为了提高仿真系统的运行效率及流畅性,本文在不影响机器人运动参数的条件下对模型进行简化。图1 是利用SolidWorks 三维软件按照1:1 比例绘制出的机器人各轴零部件简化模型。

图1 机器人各轴零部件简化模型

1.2 3D 模型格式转换

STL 文件格式(STereoLithography,光固化立体造型术的缩写),是3D SYSTEMS 公司于1988 年制定的一个接口协议,同时也是一种为快速原型制造技术服务的三维图形文件格式。该文件格式具有结构简单、处理容易、与绘图引擎无关等特点,逐渐成为快速成形领域中CAD 系统与制造设备之间常用的数据交换文件格式[11]。

STL 文件有两种存储格式,即二进制(BINARY)文件格式和文本(ASCII 码)文件格式[12]。由于ASCII 码比BINARY 具有描述简单、可读性强、易于编程和修改信息等优点,故采用ASCII 码的方式储存机器人各轴3D 模型的数据信息。

本文将IRB120 机器人各轴零部件保存为STL 数据格式文件,以机器人基座零件为例,进行零件STL 格式文件的输出。基座STL 文件输出过程如图2 所示。

图2 基座模型STL 文件输出过程

1.3 STL 文件读取

ASCII 码格式的STL 文件可以用记事本程序打开,具体如图3 所示。

图3 STL 文件数据内容

STL 文件逐行给出三角面片的几何信息,每一行以1个或2 个关键字开头,三角面片的信息单元 facet 是一个带矢量方向的三角面片,STL 三维模型由这一系列的三角面片所构成。整个STL 文件的首行给出文件路径及文件名,每一个facet 由7 行数据组成,facet normal 是三角面片指向实体外部的法矢量坐标,outer loop 说明随后的3 行数据分别是三角面片的3 个顶点坐标,3 个顶点沿指向实体外部的法矢量方向逆时针排列。ASCII 格式的STL 文件结构如下:

根据STL 文件的数据特点,笔者发现三角面片的法向量及顶点数据具有相同的形式。因此本文采用C#语言标准IO 库的File 类处理STL 文件,通过分割字符串将顶点数据保存到创建三维向量类属性中。STL 文件的读取流程如图4 所示。

图4 STL 文件读取流程

1.4 基于SharpGL 机器人模型生成

本文首先利用SharpGL 提供的Cameras 类创建摄像机、OpenGL 类中的Light 方法创建场景灯光、OpenGL 类中的Material 方法创建机器人的材质;其次通过SharpGL的绘图函数绘制仿真场景,场景展示如图5 所示;然后利用SharpGL 提供的OpenGL 类中的Rotate 函数旋转坐标系使Z 轴朝上,利用CallList 函数进行STL 格式中三角面片图形的绘制;最后完成基座STL 文件在SharpGL 中的绘制,结果如图6 所示。

图5 场景图

图6 基座图

2 机器人D-H 坐标系建立

D-H 建模方法是一种机器人通用的建模方法,该方法是在机器人的每根连杆上都固定一个坐标系,然后用4×4 的齐次变换矩阵来描述相邻两连杆的空间关系[13],利用通用矩阵变换可推导出机器人末端执行器相对于基坐标系的位姿,从而建立机器人的运动学方程。

根据D-H 参数建模原则,利用IRB120 机器人的尺寸规格图,建立D-H 坐标系,具体如图7、图8 所示,机器人的D-H 参数见表1,其中对于i 关节处的通用变换矩阵参数,i是关节i-1 绕X 轴旋转到与关节i 的Z 轴同向时的旋转角度;a 是关节i-1 平移到与关节i 重合时在X 轴方向的平移量;di是关节i-1 平移到与关节i 重合时在Z 轴方向的平移量;i是关节i-1 绕Z 轴旋转到与关节i 的X 轴同向时的旋转角度。

图7 机器人尺寸图

图8 机器人D-H 坐标系图

表1 机器人D-H 参数

机器人相邻连杆之间的D-H 坐标系变换矩阵[14-15]由

可以得到:

注:公式中的参数见表1。

机器人关节间的通用旋转矩阵由

得到:

其中, 为对应第i 个关节的旋转角度值。

机器人关节间的通用变换矩阵由

得到:

3 机器人整体模型建立

本文首先在SolidWorks 软件中,将机器人各零部件的坐标系建立到如图9 所示的各关节坐标系处,保证两坐标系相同,再按照1.2 节中的方法将零部件另存为STL 数据格式。机器人各零部件坐标系建立如图9 所示。

图9 零部件坐标系建立

按1.4 节导入机器人基座部件依次乘以关节间的通用变换矩阵 ,再结合CallList 函数,将上述经过坐标系建立输出的STL 格式文件在SharpGL 中绘制出来。绘制流程如图10 所示(注:初始 =0)。

图10 零部件绘制图

4 正运动学仿真验证

本文设计的IRB120 机器人仿真系统能够实现手动输入六关节旋转角度,展现机器人位姿并计算出基坐标系下TCP 坐标。系统界面如图11 所示。

图11 仿真系统界面

本文利用ABB 公司仿真软件RobotStudio 对本仿真系统的机器人正运动学仿真进行验证。首先,在程序编辑器中新建例行程序并添加MoveAbsJ 指令,选中位置点并在调试中查看值,在查看值对话框中依次设置rax_1、rax_2、rax_3、rax_4、rax_5、rax_6 的数值(如图12 所示);然后运行该例行程序将机器人运动到相应位姿,在手动操作对话框中切换动作模式与坐标系,可以查看六关节角度信息及基坐标下TCP 点坐标(如图13 所示);最后与本文设计的仿真系统做对比。对比结果如表2 所示,位姿对比结果如图14 所示(注:rax_i 为对应第i 个关节的旋转角度值)。

图12 MoveAbsJ 角度设置结果

图13 RobotStudio 中显示结果

图14 机器人位姿显示结果对比

表2 IRB120 机器人仿真TCP 点坐标验证

5 结论

本文基于.Net 平台,采用SharpGL 动态链接库结合机器人D-H 参数建模方法,利用机器人关节间的通用变换矩阵,设计了一套IRB120 机器人的正向运动学三维可视化动态仿真系统,为以后ABB 工业机器人3D 动态监控系统的开发及机器人本体结构三维可视化仿真奠定了基础。

猜你喜欢
面片位姿运动学
基于MATLAB的6R机器人逆运动学求解分析
初次来压期间不同顶板对工作面片帮影响研究
基于D-H法的5-DOF串并联机床运动学分析
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
甜面片里的人生
幸福家庭(2016年3期)2016-04-05 03:47:08
小型四旋翼飞行器位姿建模及其仿真
基于运动学原理的LBI解模糊算法
青海尕面片
饮食科学(2014年10期)2014-10-29 16:58:38
老伴逼我擀面片