APP下载

基于OpenGL的翼身调姿对接仿真系统开发①

2017-05-17沈建新南京航空航天大学机电学院南京210016

计算机系统应用 2017年4期
关键词:定位器位姿运动学

徐 源, 沈建新(南京航空航天大学 机电学院, 南京 210016)

基于OpenGL的翼身调姿对接仿真系统开发①

徐 源, 沈建新
(南京航空航天大学 机电学院, 南京 210016)

针对一种由三轴定位器构成的飞机翼身调姿对接系统, 阐述其调姿对接流程, 通过机身、机翼轨迹规划及其相应的定位器运动学逆解, 实现其调姿算法. 采用面向对象技术, 在Visual Studio 2010环境下利用OpenGL(Open Graphic Library)图形库函数开发翼身调姿对接仿真软件, 结合定位器运动学方程和翼身轨迹规划实现整个模型在软件界面中的动态仿真, 仿真结果能够直观反映机身或机翼位姿及其动态过程, 验证了翼身调姿对接算法的正确性.

轨迹规划; 运动学逆解; OpenGL; 运动学仿真

飞机翼身调姿对接是飞机总装的重要组成部分,传统的装配方式是利用固定工装型架定位和人工对接装配相结合的方法, 但其装配效率低、人工操作困难等缺点已难以适应现代飞机装配的要求. 不断提高飞机装配柔性化、数字化、自动化的水平已成为飞机装配技术发展的必然趋势[1,2].

在飞机装配的前期准备中, 运动仿真发挥着至关重要的作用. 三维环境中, 借助三维数字化模型, 采用三维装配指令规划方法, 即可实现装配仿真. 提前模拟翼身调姿对接过程, 能够及时发现运动中可能出现的问题, 为优化调姿对接运动轨迹、指导工作人员操作提供平台[3-5].

对于飞机翼身调姿对接仿真, 目前通常采用两种方法, ①使用UG、Pro/E、SolidWorks、CATIA等三维软件进行三维建模和运动仿真. 但其只能实现简单的机构仿真, 难以实现调姿对接过程中飞机部件在不同姿态下的调整, 也无法按照相应的轨迹规划进行仿真.②对上述三维软件进行二次开发, 虽然三维数据是统一的, 不需要进行模型的转换, 但必须依赖原有软件的功能, 不能独立运行[6-9].

OpenGL是一种强大的图形编程接口, 具有很好的三维建模能力, 不存在上述问题的限制[10]. 因此为了更直观的模拟飞机翼身调姿对接现场, 通过嵌入正逆运动学、轨迹规划等算法, 开发基于OpenGL和MFC的翼身调姿对接虚拟仿真实验平台. 运用计算机图形学和虚拟现实技术, 将整个平台的三维数据及调姿对接数据转换为相应的场景和运动, 最终实现飞机翼身调姿对接三维可视化仿真.

1 仿真系统框架概述

1.1 基于MFC的OpenGL应用程序框架

OpenGL是一个跨编程语言的三维图形软件库,具有较好的兼容性, 可在不同平台的操作系统间进行移植[11]. 其本质为底层图形库, 并不提供大量的实体图元, 因此无法直接建立场景. 但是通过编写的转换读取程序, 可将Pro/E、CATIA等软件设计的模型转换为OpenGL可绘制的顶点数组, 从而实现三维模型的读取和显示. 翼身调姿对接仿真软件是在Windows系统下开发的, 但只通过OpenGL并不能实现可视化的界面管理. MFC是微软基础类库, 以C++类的方式封装了Windows API, 其中包含很多Windows控件和组件的封装类[12]. 借助MFC图形用户界面的应用程序框架, 可以快速完成仿真系统界面的设计, 提高仿真软件开发的效率.

1.2 调姿对接系统流程

翼身调姿对接包括四个阶段, 分别是: ①机身调姿; ②左机翼调姿; ③右机翼调姿; ④翼身对合. 机身调姿是通过获取机身初始位姿和目标位姿实现机身轨迹的解算, 根据解算结果逆解出定位器各轴的驱动量,最终完成机身调姿. 左机翼调姿和右机翼调姿与机身调姿类似, 通过轨迹解算和逆解定位器各轴驱动量,实现机翼调姿. 翼身对合则是在完成机身和机翼调姿后, 机身固定不动, 机翼沿着对接方向平移, 从而实现机翼与机身的对合.

无论在哪一个阶段, 都可以将调姿对接过程抽象为刚体位姿的调整问题, 即利用调姿对接算法, 最终实现机身或机翼从初始位置到目标位置的调整. 整个调整过程的系统图如图1所示.

图1 翼身调姿对接系统图

2 翼身调姿对接算法

2.1 定位器运动学逆解

机身与机翼调姿机构类似, 均由三个三轴定位器及其相应部件组成, 三个三轴定位器的基座固定在地面上, 机身、机翼则通过吸附在其表面的工艺接头与定位器铰接相连, 机身或机翼为调姿对接运动平台.调姿机构的运动学结构简图如图2所示. 其中Ni( i=1,2,3) 为第i个定位器, 三个定位器采用3-2-1自由度的方式安排[13], 即N1为三驱动定位器, N2为两驱动定位器, N3为一驱动定位器.

由于三轴定位器接头处固接在机身或机翼上, 其工艺接头在机身或机翼局部坐标系下的位置固定, 定位器的6个驱动量为工艺接头在全局坐标系下的变化值. 为了获得机身、机翼局局部坐标系中工艺接头在全局坐标系下的坐标, 可以通过坐标系原点之间的平移变换和坐标系轴的旋转变换来实现.

图2 调姿平台运动学结构简图

设Om为全局坐标系, On为机身或机翼局部坐标系, 局部坐标系可由测量调姿基准点来确定[14],为第i个定位器的工艺接头在全局坐标系下的坐标值,为第i个定位器工艺接头在机身机翼局部坐标系下的坐标值,P为两坐标系原点的差值.

对于平移变换, 只需要加上坐标系原点间的差值即可; 对于旋转变换, 按照旋转轴旋转先后顺序的不同, 可以分为绕X-Y-Z、X-Z-Y、Y-X-Z、Y-Z-X、Z-X-Y、Z-Y-X六种方式, 并且每次旋转都是绕转动后的新的轴进行变换, 每个旋转矩阵从左往右乘, 相乘的顺序与转动的次序相同[15]. 六种方式对变化结果并无影响,只是在旋转矩阵的公式上有所不同. 这里采用Z-Y-X欧拉角的顺序来描述调姿部件的旋转变换.

假设mO和nO重合, 首先将nO绕nz旋转α角度,再绕ny旋转β角度, 最后绕nx旋转γ角度, 可得mO.

即得出旋转变化矩阵为:

式子中c表示cos, s表示sin. 则工艺接头球心处在全局坐标系下的坐标为:

第i个三轴定位器在x,y,z方向的位移表达式为:

其中eix=(1 0 0)T, eiy=(0 1 0)T, eiz=(001)T,通过上述确定调姿位姿后, 即可求出各个驱动位移的理论表达式.

2.2 五次多项式轨迹规划

轨迹规划主要是利用多项式、抛物线、样条线以及不同曲线结合进行规划. 在实际工程中, 常采用三次多项式进行轨迹规划[16], 能够得到光滑的位移和速度曲线, 但并不能得到较光滑的加速度曲线. 对于机身、机翼体积质量较大的物体, 调姿过程应注重其运动的平稳性, 三次多项式并不能满足其平稳性的要求.通过增加多项式次数可以提高运动轨迹的平稳性, 能够得到光滑的加速度曲线, 因此采用五次多项式的方法对翼身调姿对接进行轨迹规划.

由上一节坐标系变换可知, 对于机身或机翼空间位姿描述, 可由6个参数决定, 对应的是机身、机翼局部坐标系相对于用于全局坐标系的3个平移量和3个旋转量p( x, y, z,γ, β ,α) , 通过完成6个参数的变化,即可实现翼身调姿对接每个阶段的调整.

对于上述6个位姿参数, 每个参数的变化均按照五次多项式样条进行拟合, 五次多项式函数中共有6个未知数, 对其分别进行一阶导、二阶导的求解, 可得到机身和机翼调姿过程中速度、加速度关于时间t的函数:

以任意一个位姿参数为例. 初始位姿时间和目标位姿时间为0、T, 对应的角变化或位移为l0和lT, 这些值均已知, 且满足条件:

对于多项式的起点和终点, 还需满足二阶连续的要求, 即起点和终点的速度及加速度要满足条件:

在实际的工程实践中, 调姿对接的初始速度和到达目标位姿的终止速度都应为0. 另外, 为了使得调姿运动光滑连续, 还应满足每个阶段的初始加速度和到达目标位姿的终止加速度为0. 将式(7)、(8)中的六个条件代入公式(4)、(5)、(6), 联立即可以解出五次多项式的六个系数, 得出轨迹方程为:

3 仿真系统软件设计

3.1 软件设计步骤

首先利用Visual Studio 2010 中MFC模块建立单文档应用程序, 并加载OpenGL库中相应的.dll文件、.lib文件和.h文件, 完成工程项目的基本设置[17].

其次利用OpenGL库函数完成三维图形应用环境的初始化. 通过调用MFC中Picture类, 加载相应控件,实现可视化界面的显示.

在OpenGL中完成机身、机翼和定位器模型的绘制较为复杂, 可以利用三维软件CATIA设计相关的模型, 再转换为OBJ 3D模型文件格式. 通过编写函数glmReadOBJ()和LoadModelsFromFiles()实现OBJ格式模型的读入和显示. 由于定位器接头相对于机身或者机翼的位置固定, 在程序中通过添加几何约束关系来实现各个部件有规律的运动.

为了实现翼身对接仿真各个角度及各个位置的观察, 通过在仿真软件中添加Button按钮和鼠标响应,实现可视化仿真中调姿对接环境的平移和旋转.

3.2 双缓冲技术

为了能够连续动态的显示整个翼身调姿对接过程,整个Picture绘图控件会不断的通过清除背景和重新绘制而刷新, 但这会造成仿真界面的闪烁, 利用双缓冲技术可以解决这一问题.

建立SwapBuffers()双缓冲区(前台缓冲区和后台缓冲区)[18], 前台缓冲区用来显示, 后台缓冲区则在内存中, 每当调姿对接出现变化时, 先将几何图形的变换操作在后台缓冲区进行, 再将进行的结果复制到前台缓冲区屏幕上, 完成显示. 让使用者看到的是每一帧的调姿对接场景, 而不是调姿对接场景的绘制过程,从而避免刷新而导致画面闪烁的问题.

3.3 软件界面效果

仿真软件包含四个阶段的调姿对接部分, 每个阶段还包含数据的存储和导入. 部分仿真软件效果图如图3所示.

图3 调姿仿真软件界面效果图

3.4 轨迹分析

由于机身调姿与机翼调姿类似, 轨迹分析以右机翼调姿和翼身对合为例, 假设对应的右机翼的初始位姿为(-540,1350,-200,, 目标位姿为(-500,1300,-50,0,0,0). 调姿时间共25s, 其中右机翼旋转调姿时间为10s, 右机翼位置调整时间为5s, 翼身对合时间为10s, 且每次调姿过程都利用五次多项式进行插值计算, 则可获得右机翼上一点的运动轨迹如图4所示. 此轨迹是一条光滑连续的空间曲线, 满足平稳性的要求. 同时根据上述定位器驱动轴逆解, 求出相应的驱动量, 如图5所示. 从位移图中可以看出,在0~15s的时间内, (a)~(f)为右机翼的调姿与位置调整;在15~25s时间, (a)为翼身对合调整, 其余(b)~(f)驱动位移量位未发生变化. 结果表明, 六个驱动轴接头处的节点位移轨迹是连续的, 且运动位移量均在各轴的行程范围之内.

图4 飞机部件上一点轨迹图

图5 定位器驱动轴位移轨迹曲线

4 结论

仿真系统成功的利用MFC和OpenGL建立应用程序框架, 并借助三轴定位器模型和飞机部件模型搭建了翼身调姿对接仿真系统, 采用五次多项式的轨迹规划方法实现翼身调姿对接的平稳运动. 三维仿真系统能够实时动态显示调姿对接的运动状况, 运行可靠,从结果看仿真达到了预期效果, 为实际翼身调姿对接提供指导依据.

1 邹冀华,刘志存,范玉青,等.大型飞机部件数字化对接装配技术研究.计算机集成制造系统,2007,13(7):1367–1373.

2 王仲奇,杨元.飞机装配的数字化与智能化.航空制造技术,2016,(5):36–41.

3 王瑞利,丁庆增.基于OpenGL的3-RSS/S并联机器人动态仿真.精密制造与自动化,2015,(3):37–39.

4 刘春,张洪瑞,史红祥等.装配仿真技术及其在飞机装配中的应用.航空制造技术,2015,485(15):10–13.

5 李惠,张林鍹,肖田元,等.基于仿真控制的飞机大部件对接原型系统研究.航空制造技术,2013,(22):90–94.

6 陈琳,戴骏,冯俊杰,等.基于OpenGL的多机器人仿真环境.组合机床与自动化加工技术,2014,(9):10–13.

7 谢莹莹,鲍凯,马晓光,等.基于DELMIA二次开发的转向架三维装配仿真系统的开发.机械制造,2015,53(4):55–57.

8 屈力刚,苑俊超,白金兰,等.前机身装配平台定位单元离线轨迹生成.机床与液压,2014,(22):33–35,49.

9 付兵,胡飞飞,等.基于OpenGL的多机器人仿真实验平台研究及实现.组合机床与自动化加工技术,2016,(1): 20–23.

10闫林林,徐方,贾凯,等.Delta机器人运动控制及图形轨迹的动态仿真.计算机工程与设计,2015,(8):2196–2200.

11 Richhard S. Wright, Lipchak B, Haemel N. 张琪,付飞,译.OpenGL 超级宝典.北京:人民邮电出版社,2010.

12 祁若龙,周维佳,刘金国等.VC平台下机器人虚拟运动控制及3D运动仿真的有效实现方法.机器人,2013,35(5): 594–599.

13 黄翔,李泷杲,陈磊,等.民用飞机大部件数字化对接关键技术.航空制造技术,2010,(3):54–56.

14 董一巍,李晓琳,赵奇,等.大型飞机研制中的若干数字化智能装配技术.航空制造技术,2016,(1):58–63.

15 姬金祖,束长勇,黄沛霖等.欧拉角在飞行航迹仿真中的应用.南京航空航天大学学报,2014,46(2):218–224.

16 乐英,岳艳波.六自由度机器人运动学仿真及轨迹规划.组合机床与自动化加工技术,2016,4:89–92.

17 和克智,任鹏刚,许秦蓉,等.OpenGL编程技术详解.北京:化学工业出版社,2010.

18 叶舸,田兆锋,闫楚良等.基于OpenGL的飞机飞行实测数据可视化研究.航空学报,2011,32(6):1050–1057.

Development of Wing-Fuselage Adjustment-Docking Simulation System Based on OpenGL

XU Yuan, SHENG Jian-Xin
(College of Mechanical and Electrical Engineering, Nanjing University of Aeronautics & Astronautics, Nanjing 210016, China)

For a kind of system of aircraft wing-fuselage adjustment-docking which is composed of 3-axis positioners, this paper introduces the process of adjustment-docking, achieves adjustment-docking algorithm by planning trajectory of the wing-fuselage and solving the equation of inverse kinematic. The simulation software of wing-fuselage adjustment-docking is developed by using of object oriented technology and OpenGL library in environment of Visual Studio 2010. The dynamic simulation of the whole models in the software interface is accomplished by combining the kinematic equation of the positioner and the trajectory planning of the wing-fuselage. Results of simulation can be used to display the position and dynamic process of the wing and fuselage. It proves the correctness of adjustment-docking algorithm.

trajectory planning; inverse kinematic; OpenGL; kinematics simulation

航空科学基金(2013ZE52067)

2016-07-24;收到修改稿时间:2016-08-29

10.15888/j.cnki.csa.005702

猜你喜欢

定位器位姿运动学
轿车前后悬架运动学仿真分析
高速铁路接触网定位器脱落原因分析及解决措施
压接类定位器压接工艺设备改进方案
基于位置依赖的密集融合的6D位姿估计方法
复合切割机器人的运动学分析与仿真研究
曲柄摇杆机构的动力学仿真
优化ORB 特征的视觉SLAM
基于单目视觉的工件位姿六自由度测量方法研究
捉迷藏用
基于运动学特征的新型滑板对速滑蹬冰动作模拟的有效性