一种空间机械臂三维仿真系统
技术领域
本发明属于三维仿真技术领域。
背景技术
空间机械臂作为人类手臂向外太空的延伸,对它的研究目前已经成为航天工程研究的热点。而空间机械臂三维仿真研究是空间机械臂研究中一个引人瞩目的领域。
空间机械臂三维仿真平台,对于研究空间机械臂的路径规划算法问题具有重要意义。因此,加速空间机械臂技术发展,迫切需要建立空间机械臂三维仿真平台。国内外对机械臂的三维仿真有众多研究。Corke基于MATLAB平台开发了ROBOTICS工具箱,可以通过函数实现简单的运动学仿真;Kim基于OpenGL图形库开发了机械臂仿真系统,能够对机械臂的正、逆运动学进行仿真;曹春芳等基于ADAMS软件完成了机械臂的运动学仿真;孙亮基于OpenGL图形库开发了一套六自由度机械臂三维仿真软件,能够对机械臂的轨迹规划仿真;刘志林等利用Solidworks进行机械臂三维建模,并且介绍了利用COSMOSMotion插件来实现机械臂运动虚拟仿真的方法;钱小平等以四自由度机械臂为研究对象,设计实现了基于Java3D的机械臂运动仿真系统;张华文等设计了一套六自由机械臂的三维仿真软件,可对机械臂的运动进行实时仿真。
以上三维仿真的方法或者平台均是针对单一运动模拟方法建立,现有技术中没有一种仿真系统能够集合多种运动模拟方法,并进行综合管理控制。
发明内容
有鉴于此,本发明提供了一种空间机械臂三维仿真系统,能够针对基于OSG建立的三维仿真模型进行综合管理控制以及实时状态显示,同时适用于多种路径规划算法,具备灵活性和普适性。
为了达到上述目的,本发明的技术方案为:一种空间机械臂三维仿真系统,针对采用开放式图形元素程序OSG所创建的三维仿真模型进行仿真控制,该系统包括指令输入界面模块、OSG仿真界面模块、任务管理模块、数据管理模块以及路径规划模块。
指令输入界面模块为一个采用C++图形用户界面应用程序开发框架QT开发的指令输入界面,该界面提供外部输入接口,用于接收外界输入的任务指令。
OSG仿真界面模块中具有空间机械臂的三维仿真模型,该OSG仿真界面模块用于接收数据管理模块发来的路径规划结果数据,以驱动三维仿真模型进行实时状态更新并显示。
任务管理模块解析任务指令对空间机械臂进行任务规划,将任务指令转化为控制过程,控制过程包括由任务分解得到的多个执行步骤,对于每个执行步骤,均调用路径规划模块进行路径规划,同时任务管理模块实时接收数据管理模块发来的路径规划结果数据,若接收到当前执行步骤的路径规划结果数据,则启动下一个执行步骤。
数据管理模块从路径规划模块中实时获取路径规划结果数据,一方面将该路径规划结果数据传递至OSG仿真界面模块以驱动三维仿真模型进行实时更新显示,另一方面将该路径规划结果数据传递至数据管理模块。
当任务管理模块启动了路径规划模块进行路径规划时,路径规划模块调用路径规划动态链接库选择相应路径规划方式获得路径规划结果数据,将该路径规划结果数据实时发送至数据管理模块。
路径规划动态链接库中包括直线路径规划、圆弧路径规划以及关节空间路径规划三种路径规划方式。
进一步地,任务指令包括:路径规划方式、规划总时间、空间机械臂的初始关节角序列以及期望位姿。
对于每个执行步骤,任务管理模块在调用路径规划模块时,将当前执行步骤数、当前执行步骤关节角序列、当前执行步骤关节角速度序列以及期望位姿输入至路径规划模块中进行调用。
路径规划结果数据包括下一执行步骤的关节角序列、下一执行步骤的关节角速度序列以及下一执行步骤位姿。
进一步地,三维仿真模型包括卫星和空间机械臂,卫星分为本体卫星和目标卫星,空间机械臂分为左操作臂、右操作臂、支撑臂和探测臂。
进一步地,采用OSG创建仿真模型的方法如下:
Step1、基于pro/e三维制图软件绘制出的独立的初步仿真模型;
Step2、将上述初步仿真模型导出至3DMAX软件中,并进行渲染并导出3ds格式文件;
Step3、将3ds格式文件导入到OSG中,获得仿真模型,针对该仿真模型创建组织节点,并获取其参考坐标系;通过确定各组织节点之间的父子关系以及仿真模型的矩阵变换,使其在三维空间中组装成期望的构型。
有益效果:
本发明主要涉及了一种空间机械臂仿真系统,该系统的界面基于QT和OSG实现,易于开发,且具有良好的跨平台特征性;同时由于OSG仿真模型是通过节点控制的,因此可以使用不同的空间机械臂路径规划算法进行机械臂的运动控制,这不仅提高了机械臂仿真运动的真实性,而且路径规划方法灵活多样,实现了在一个系统上适应多种算法的目的,且具有有效性。
附图说明
图1仿真系统总体结构图;
图2卫星和空间机械臂仿真模型;
图3仿真模型节点关系图;
图4左操作臂OSG仿真模型;
图5左操作臂模型节点关系图;
图6左操作臂D-H连杆坐标系;
图7数据管理模块工作流;
图8机械臂路径规划流程图;
图9指令输入界面效果图;
图10软件各主要模块数据交互图;
图11破坏天线任务流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
实施例1、
本发明提供了一种本发明涉及一种空间机械臂三维仿真平台的搭建方法,下面结合附图对本发明作进一步说明。
空间机械臂三维仿真平台的框架结构如图1所示,根据仿真平台的功能需求和任务管理需要,将仿真平台的框架分为三个层次:人机交互接口层、任务/数据管理层和路径规划模块层。
人机交互接口层包含指令输入界面模块和OSG仿真界面模块,作为空间机械臂仿真平台与外界的接口,主要完成操作人员控制指令的接收与处理,并实时显示仿真模型的运行状态。操作人员对仿真平台界面进行操作,以触发响应的形式,经由任务管理模块实现指令的发送与处理。
任务/数据管理层包含任务管理模块和数据管理模块,用于协调管理各任务的执行,并完成任务运行过程中相关数据的管理,例如机械臂的关节角度,关节角速度等数据,是整个仿真平台的核心。
路径规划模块层包含路径规划模块,主要完成对路径规划动态链接库的调用并更新数据管理模块中的相关内容,并可以由任务管理模块调度来完成相应的任务规划。
1.人机交互接口层
(1)OSG仿真界面模块
OSG仿真界面模块作为空间机械臂三维仿真平台的重要组成部分,主要用来显示仿真模型的实时变化。仿真模型主要由两部分组成:卫星和空间机械臂,如图2所示。卫星分为本体卫星和目标卫星;空间机械臂分为左操作臂、右操作臂、支撑臂和探测臂。
空间机械臂三维仿真平台中模型节点关系如图3所示。其中空间机械臂作为仿真平台中最重要的模型,以左操作臂为例,详细介绍如下:左操作臂为七自由度冗余机械臂,其OSG仿真模型如图4所示,节点关系如图5所示。通过机械臂关节的旋转节点继承机械臂关节间的父子关系,通过模型节点可对机械臂关节模型的位姿进行调整,使其组装成机械臂的初始构型。OSG仿真界面模块获取数据管理模块中的实时数据,通过控制OSG仿真模型中的旋转节点实现空间机械臂关节的实时转动。
实现机械臂的路径规划,最基本的要先实现机械臂的正向运动学求解。机械臂正向运动学是指根据机械臂已知的关节旋转角度,求机械臂末端相对于基坐标系的位姿的过程。建立机械臂的正向运动学模型首先需要确定其D-H连杆坐标系和D-H参数。左操作臂D-H连杆坐标系如图6所示。D-H参数如表1所示。利用D-H建模方法实现机械臂的运动学建模,其公式如(1)所示:
T0,7=T0,1·T1,2·T2,3·T3,4·T4,5·T5,6·T6,7 (1)
表1左操作臂D-H参数
(2)指令输入界面
指令输入界面是仿真平台的重要组成部分,提供用户进行任务操作的接口,通过指令输入界面,操作人员可以控制仿真平台进行相关空间机械臂仿真实验,以验证空间机械臂路径规划算法的可行性。指令输入界面由QT搭建。QT是一套成熟并且开放源代码的C++图形引擎库。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。QT具有优良的跨平台特性,可以支持多个操作系统;QT由几百个C++类构成,有丰富的API,方便用户的开发;QT不仅易于使用,而且还具有很快的速度,这两方面通常不可能同时达到。空间机械臂三维仿真平台的指令输入界面整体效果图如图9所示。
2.任务/数据管理层
(1)任务管理模块
任务管理模块是仿真平台最主要的模块之一,在实际的控制中,主要负责空间机械臂的任务规划。对于空间机械臂的某个任务,其控制过程被分解为多个步骤,任务管理模块根据当前机械臂的执行情况来规划下一步的执行内容,此时需要一个定时器定时启动规划下一步内容的线程来完成任务规划。在QT搭建的开发环境中,通过connect函数将处理任务规划的定时回调线程绑定到指定定时器上;通过start(50)函数开启定时器,并每隔设置时间间隔(50毫秒)系统就将调用路径规划线程进行相关任务规划;通过stop()函数关闭定时器。
(2)数据管理模块
数据管理模块主要是将各模块处理的数据统一成独立的模块,便于数据管理与使用。数据管理模块用来管理路径规划数据和仿真模型的实时状态数据。它主要有三种处理方式:保存、查看、更新。其中,数据更新是数据管理的主要职能。
在数据管理模块创建时,创建事件信号EVENT_UPDATE_DATA,并启动等待此事件的线程,该线程在软件启动后将一直处理激活状态,一直等待事件的发生。每当有数据修改时通过SetEvent(EVENT_UPDATE_DATA)发送此事件信号,线程收到此信号后即会调用数据管理模块的更新数据的函数以更新路径规划数据和仿真模型的实时状态数据。数据管理模块的工作流如图7所示。
3.路径规划模块层
(1)路径规划模块
路径规划模块主要完成对路径规划动态链接库的调用并更新数据管理模块中的相关内容。任务管理模块调度它来完成对相应的规划。
本仿真平台的路径规划动态链接库中共包含五种路径规划函数:直线路径规划、圆弧路径规划、关节空间路径规划、双臂协调搬运刚体路径规划和双臂协调操作剪刀路径规划。在选择路径规划的模式之后,设置对应的路径规划函数的输入参数即可开始执行路径规划。路径规划流程图如图8所示。
4.软件各层次数据交互
如图1所示为仿真软件层次结构图,图中展示了仿真软件整体层次结构及各层次结构中主要模块之间的数据流关系。为了进一步说明各模块之间的数据交互,对仿真软件中各层次结构中主要模块的命令及数据交互进行详细说明,如图10所示。数据交互过程根据程序实际运行情况,可分为两个阶段:初始设置阶段和任务执行阶段。
(1)初始设置阶段
初始设置阶段用户通过人机交互层的指令输入界面进行仿真任务设计,由图10所示可知,用户设置的主要数据包括:选择路径规划方式、规划总时间、机械臂初始关节角速度、期望位姿等数据。这些数据为用户命令数据,由任务/数据管理层的任务管理模块进行接受及命令解析工作。
(2)任务执行阶段
任务的初始设置工作完成后,程序进入任务执行阶段,根据任务管理模块得到的初始规划数据,图10中的任务管理模块、路径规划模块及数据管理模块开始循环执行。路径规划模块根据任务管理模块输入的规划数据进行解算,得到下一步关节角、关节角速度序列等规划结果数据,并将此数据传递给数据管理模块。数据管理模块在得到规划结果数据后,一方面将数据传递给OSG仿真界面模块以驱动仿真模型的实时更新显示,另一方面将数据传递给任务管理模块以进行下一步规划。
实施例2:
根据上述实施例1,以破坏天线任务为例,对空间机械臂三维仿真平台的可行性展开验证。破坏天线任务主要分为七步,其流程图如图11所示。
首先对任务进行初始化,通过支撑臂使本体卫星运行至天线下方,左操作臂从工具箱中抓取剪刀,然后控制右操作臂抓取剪刀,在双臂协调操作下将剪刀运行至天线下方并执行剪断天线的操作,任务结束后,机械臂回归初始状态。
破坏天线任务中,各空间机械臂关节角度的初始条件如下所示(角度参数单位为度):左操作臂关节角度:{0,-45,10,0,0,0,0};右操作臂关节角度:{0,45,10,0,0,0,0};支撑臂关节角度:{90,90,-140,70,-20,90,0};探测臂关节角度:{8,-30,-39,85,-80,16,141,11,158,11,40,0,107,0}。
1)本体卫星运行至天线下方
支撑臂末端手抓锁定目标星,通过关节空间规划使本体星运行至天线下方。
2)左、右操作臂抓取剪刀
本体星到达指定位置后,左操作臂由本体星的工具箱中抓取剪刀左手柄,之后右操作臂经过运动抓取剪刀右手柄。
3)双臂协调搬运剪刀
左、右操作臂抓取剪刀后首先通过末端的相对运动使剪刀张开一定的角度,之后将剪刀搬运到天线杆处,准备执行剪断任务。
4)双臂协调执行剪断任务
右操作臂末端的相对运动执行剪断任务。
5)机械臂回归初始状态
剪断天线后,通过左操作臂将剪刀放回本体星的工具箱中,之后各个空间机械臂回到初始状态。
在破坏天线任务过程中,主要包含四种路径规划算法,如通过支撑臂的关节空间路径规划将本体星移动到天线下方;通过左操作臂的直线路径规划抓取剪刀;通过双臂末端无相对运动的协调路径规划算法将剪刀搬运至天线下方;通过双臂末端有相对运动的协调路径规划算法进行剪刀的剪断任务。由破坏天线任务的仿真结果可以看出空间机械臂各阶段任务可顺利完成,验证了所提四种路径规划算法的正确性,以及仿真平台的可行性。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。