导语:机器人三维仿真在机器人的研究开发中具有重要作用,是当前机器人研究领域中最新的研究方向之一。
机器人三维仿真在机器人的研究开发中具有重要作用,是当前机器人研究领域中最新的研究方向之一。本系统利用VisualC++调用OpenGL图形函数对三自由度并联机器人及其工作环境进行建模和渲染。根据正解的结果显示其三维工作空间;并根据给定参考点轨迹及逆解的结果实时、动态的显示三自由度并联机器人的工作过程。 1 引言 目前,机器人在社会生产及生活中应用得越来越广泛,其中三自由度并联机器人因其具有刚度大、承载能力强、累积误差小、动力性能好等突出优点,随机器人技术的发展已逐步成为一个重要的应用领域,很有应用前景,但是研究和开发得还不充分。在研究三自由度并联机器人的过程中,对其进行三维运动仿真是各项仿真中一个很重要的组成部分。它对于验证机器人组成、工作空间及进行轨迹规划、控制算法、碰撞检测等都具有非常重要的意义。同时随着计算机性能的迅速提高,研制基于个人计算机的仿真软件已成为仿真技术的发展趋势。本文介绍了一个三自由度并联机器人运动仿真系统,在Windows环境下配合AutoCAD建模工具使用VisualC++工具调用OpenGL图形库中的函数,实现三维运动仿真。 2 开发环境及AutoCAD、OpenGL简介 本系统在WindowsNT平台上进行开发,为了便于实现各种有关计算分析和图形算法和保证其正确、可靠和高效率,选用VisualC++开发环境并采用面向对象(Ob,iect-oriented)的编程技术。 AutoCAD是众多2D/3D.CAD/CAM系统中的典型代表,它是一个强大的建模工具,能较方便的提供一般三维几何实体的精确建模。 OpenGL是近几年发展起来的一个性能卓越的三维图形标准,它是在SGI等多家著名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便的在各种平台间移植。广泛用于科学计算可视化、实体造型、CAD/CAM、模拟仿真等诸多领域。正是由于OpenGL具有建模方便、容易实现高度清晰感的实时三维仿真、独立性和通用性等优点,它逐渐被广泛应用于包括机器人在内的创新机构与机械设备的设汁和运动分析中。 3 基于OpenGL的三自由度并联机器人三维运动仿真系统 3.1 建立几何模型 OpenGL虽然提供了较强的图形功能,但是三维建模功能相对较弱,辅助库中提供的一些三维形体绘制函数,仅仅能够完成对如球、立方体、多面体等简单形体的绘制。除此以外,提供了一些基本的图元,如点、线、多边形等,利用这些基本图元的组合可以完成简单物体的建模工作,但对于复杂形体的建模,则是一件繁琐的工作。 而现有的CAD系统,如AutoCAD、3DS和Pro/E等具有很强的三维绘图能力。AutoCAD是其中杰出的代表,利用AutoCAD软件完成对机器人各部分的几何建模。如图1所示。 [align=center]
图1 部件图例图[/align] 3.2 数据转换,生成显示列表 利用CAD软件完成对机器人各部分的建模之后,将标准CAD数据文件(如AutoCAD使用的为DXF文件格式)转化为OpenGL的文件格式。数据的转换作为一个单独的模块进行编程,模型在建立时需要注意模型的基准点,对于机构中的零部件是分开进行转换的,需要考虑在模型重组时相互之间的装配关系。步骤如下:①几何模型网络化,一般按三角形划分网络;②设定网络中各节点的序号,读出各节点的三维坐标;③设定三角形的序号,对于每个三角形给出对应的顶点序号;④计算每个三角形的表面法向量;⑤把每个三角形放在OpenGL的显示列表中,以供需要时调用。以C++语言描述为例,其数据结构如下: structCADObj { charname[16];//机器人几何模块名称 int NumFaces;//三角面列表中三角面的个数 int NumVerts;//顶点列表中点的个数 int NumMaps;//纹理坐标列表中纹理的个数 BOOL matrix;//有转换矩阵否 int NumBindings;//绑定材质的个数 CADFace *facelist;//三角面索引列表 CADVert *vertlist;//顶点列表 CADMap *maplist;//纹理坐标列表 Float32 TraMatrix[3*4]; //3×3旋转矩阵,3×1转换矩阵 CADMatList * bindings;//绑定材质于三角面 3.3 投影、视口等的变换与显示处理和色彩、材质、纹理、光照和背景的处理 三维物体是在三维坐标中定义的,但当计算机图形的点绘制到屏幕上时,显示在屏幕上的三维物体将是二维的图像,因此,将几何物体的三维坐标转化到屏幕上的象素位置,需要经过以下三种变换(如图2所示)。 [align=center]
图2 OpenGL中图形变换过程[/align] ①通过矩阵相乘所表示的变换。包括造型、视图和投影等操作。这些操作包括旋转、平移、缩放、反射、正交投影和透视投影。通常需要将几种种变换结合起来绘制场景。 ②由于场景是在一个矩形窗口中绘制,所以位于窗口之外的物体(或物体的一部分)必须被裁剪掉。在三维计算机图形中,以裁剪面所构成的范围对物体进行裁剪。 ③通过视口变换在变换后的坐标和屏幕象素之间建立起对应关系。在模型建立时,并没有对模型进行色彩、材质、纹理的处理,在完成模型数据转换后,调用OpenGL函数对其进行处理,这样也可使模型的数据简洁,转换方便,提高开发的效率和系统的通用性。 3.4 机器人的位置分析正反解算法 机器人的位置分析是求解机器人的输入与输出构件之间的位置关系。当已知机构主动件的位置,求解机构的输出件的位置和姿态称位置分析的正解,若已知输出件的位置和姿态,求解机构输入件的位置称为机构位置的反解。其中在求解工作空间时特别要注意空洞和空腔的存在。 该三自由度并联机器人的机构位置的反解方法描述如下,在给定机构的各个结构尺寸后,利用几何关系,可以很容易写出上下平台各铰链点在各自坐标系中的坐标值,然后通过坐标变换即可求出上下平台铰链点在固定平台坐标系中的坐标值(bi,Bj,,i=1,2,3)。这时3个驱动器杆长矢li(i=1,2,3)可在固定坐标系中表示为 li=bi-Bi i=1,2,3 从而得到机构的位置反解计算方程
上式是三个独立的显式方程,当已知机构的基本尺寸和上平台的位置和姿态后,就可以利用上式求出3个驱动器的位移。一般求并联机器人机构其位置反解相对容易,而位置正解却反而十分困难,这对于6自由度并联机器人是十分突出的,当并联机器人的自由度小于6时,这种反差相对缓和一些。在给定3个杆长后,可以采用数值解法或解析解法得到动平台中心点的位置和固定于运动平台上的动坐标的方向余弦矩阵。从而进一步得到其工作空间。 3.5 机器人运动空间及预定运动轨迹的三维显示 在以上各个模块的功能实现基础上即可实现三自由度并联机器人机构及运动学仿真。首先选择或输入机构参数,系统根据所选择的机构参数组建机构、计算出其工作空间并加以三维显示,可以实时缩放和转换角度观察。 而轨迹规划则可分为在任务空间和关节空间两种,在任务空间规划,路径中有不可达空间以及有多值解问题的影响,除特殊情况外,一般多在关节空间进行规划。轨迹是指每个自由度在运动过程中每时每刻的位置、速度和加速度。所谓机器人轨迹规划,是根据作业要求,计算出机器人预期的运动轨迹,通常包括以下3方面的内容:①根据机器人的任务要求,对其运动路径和轨迹进行描述。②根据所确定的轨迹参数,在计算机内部描述所要求的轨迹,这主要是选择习惯规定以及合理的软件数据结构。③对内部描述的轨迹进行实时计算,生成机器人运动的位置,速度和加速度实时值。以下是一种3-RPS三自由度并联机器人的机构仿真系统实例,如图3所示。 [align=center]
图3 3-RPS三自由度并联机器人机构仿真
图4 系统结构框图[/align] 4 结论 本文介绍了一个机器人三维运动仿真系统。系统结构框图如图4所示。在Windows NT环境下,通过AutoCAD建立几何模型,采用Visual C++工具和OpenGL图形库进行开发,在PC机上实现了机器人的实时仿真,满足了研究工作的要求。而且该系统具有良好的可扩展性和交互性,在此基础上,可进一步进行运动学、动力学、控制和规划等方面的研究。




