一种装载机半物理仿真临境虚拟训练系统

2018-09-27 08:20梁思瑞王国庆张仕超邵严明
建筑机械 2018年9期
关键词:虚拟环境操作员通讯

梁思瑞,王国庆,张仕超,邵严明,靳 浩

(1. 长安大学 工程机械学院,陕西 西安 710064;2. 杰瑞石油天然气工程有限公司,山东 烟台 264003;3. 武汉理工大学 能源与动力工程学院,湖北 武汉 430063)

近年来,我国政府积极加大对交通、能源、水利等基础设施的建设力度,各地工程施工量持续大幅增长[1],工程机械的投入使用量也逐年增长。而培养合格的工程机械操作人员需要较长的培训周期,并耗费较大的人力物力,这使得目前高质量操作员数量明显不足。对于操作复杂且价格昂贵的机器设备来说,对其操作员进行虚拟训练可以降低训练成本,提高训练效率[2]。国外在虚拟训练方面进行了相关研究:文献[3]利用增强现实的互动设备与虚拟环境组件构建了基于PC集群的通用软硬件平台,可对宇航员进行虚拟训练;文献[4]使用Quanser触觉作为模拟关节镜手术中的用户交互元件,使医生能够在虚拟现实环境中与软硬组织进行交互,为外科医生的训练提供了便利。国内的高校和相关研究机构同样做了大量针对虚拟训练的研究:文献[5]利用LabVIEW的事件结构和平铺式顺序结构,创建了基于实弹射击的射击操作和飞行控制的动作响应模型,实现了对导弹飞行的操作与控制,开发了一款导弹射击操作虚拟训练系统;文献[6]运用三维软件和VIRTOOLS搭建虚拟塔式起重机仿真训练平台,通过建立运行机构的动力学模型提高了真实感;文献[7]建立空间站虚拟模型,利用局部正向法和整体正向法模拟航天员以不同身体姿态漫游时获取的视觉反馈,研发了航天员舱内导航训练系统。

然而,目前大多数虚拟训练系统只是单纯演示系统运动,并没有结合工程机械的控制器控制和施工中的实际环境。因此,本文针对工程机械提出了一种融合半物理仿真的临境虚拟训练系统构架,即利用虚拟现实开发平台模拟工程机械实际运动,采用物理的控制器硬件控制虚拟模型的运动,使用数据采集系统采集传感器信号获得模拟环境信息的低成本高临境感虚拟训练系统。以ZL50型装载机为例,开发了一种装载机半物理仿真临境操作员训练系统。

1 总体架构

本文提出的半物理仿真临境虚拟训练系统架构如图1所示。系统架构融合了半物理仿真的思想,将工程机械中成本较低且相对更重要的控制器作为实物引入仿真回路,将成本较高且笨重占空间的机械实体用临境训练系统中虚拟的可控运动模型代替。为了提高仿真的真实性和临境感,为系统添加了采集模拟环境信息的数据采集器和供操作员操作的控制手柄。同时,为了完成一些训练系统的系统设置和管理并给操作员提供更好的人机交互体验,将利用虚拟现实开发平台开发的临境训练系统嵌入在UI操作系统中显示。其中UI操作系统和控制器间采用以太网通讯,控制手柄和控制器间采用USB OTG通讯,控制器和传感器数据采集器间采用SPI通讯,UI操作系统与临境训练系统间采用SOCKET通讯。

图1 半物理仿真临境虚拟训练系统构架

系统运行过程中,传感器组从模拟施工环境中采集实时环境信息,通过数据采集器发送到控制器,控制器将信号发给操作手柄和UI操作系统,操作手柄接到信号后即可以开始被操作,UI操作系统将信息进行处理后,向临境训练系统发送命令,临境训练系统中即可生成符合实时环境的施工场景。操作员在计算机上的UI操作系统中可以进行系统设置,并实时观看虚拟施工场景和被控工程机械的作业情况。操作员根据临境训练系统中显示的施工状况进行分析,使用控制手柄对工程机械进行操作。这样,就完成了一次系统的工作循环。

2 硬件系统设计

系统的硬件设计主要包括数据采集器的设计和系统控制器的设计。

2.1 数据采集器的设计

为了提高数据采集系统的准确性、稳定性和集成性,采用ADI公司的ADAS3023模数转换器进行多路传感器信号采集。它是系统级工业数据采集芯片,集成了8通道、采样保持、可编程增益仪表放大器,具有高共模抑制特性。同时采用金太阳的A2415S芯片提供片内输入多路复用器所需的±15V高压电源。数据采集器的核心电路如图2所示。

图2 数据采集器核心电路图

2.2 系统控制器的设计

系统采用1个主处理器和多个从处理器的多核异构控制器。基于任务分工的多处理器协同工作模式,使控制器功能结构相对独立。不同功能的硬件模块由不同处理器管理,并由主处理器进行从处理器间的任务调度。各个处理器同时工作,有效提高了系统控制器的可靠性和运行速度。

图3 系统控制器总体架构图

本系统控制器总体架构如图3所示,包括1个主处理器和3个从处理器,分别负责系统的实时数据采集传输、数据通讯和算法运行。此外,主处理器上连接高边开关驱动模块驱动工程机械中的液压比例控制系统,连接USB接口用于调试控制器。数据通讯从处理器上连接W5500芯片,用于实现其与计算机中UI操作系统间的以太网通讯。

其中,主处理器芯片选择STM32F405RG,从处理器芯片选择STM32F103C8T8。主从芯片间采取主从控制模式,实现了独立调试与多任务同步运行。运行在主控制器上的操作系统对从处理器发送的数据进行处理,再将任务分配给各个从处理器。从处理器有条不紊的完成任务,相互独立又彼此协作,共同实现了对整个系统的控制。主从处理器之间采用一种改进的SPI通讯,即在传统SPI通讯的基础上,在主从处理器之间增添信号中断反馈线。这样即可实现实时的主从切换,达到真正意义的双向通讯。数据通讯从处理芯片与W5500以太网通讯模块同样使用这种改进的SPI通讯。以太网通讯模块核心电路如图4所示。

图4 W5500以太网通讯模块核心电路图

3 软件设计关键技术

本系统架构中软件部分各模块的主要功能是:UI操作系统接收来自控制器的控制信号进行信息处理,然后向临境训练系统发送命令,在临境训练系统中实现工程机械的运动仿真和施工环境的模拟。操作员根据临境训练系统虚拟环境中装载机的运动情况,实时操作控制手柄,完成操作员和虚拟环境的交互,达到训练目的。此外,操作员在UI操作系统上还需进行相关的系统设置。

由以上分析可知,系统软件部分涉及到的关键技术是临境训练系统中的运动仿真和UI操作系统与临境训练系统间的通讯。

3.1 虚拟环境运动仿真

目前,可以实现虚拟环境搭建的平台有很多,如Virtools、Unity3D、QUEST3D等。要在这些虚拟环境中实现控制器可控的运动仿真,方法大同小异,主要是进行三维模型、运动学和动力学模型的建立,进行一些仿真参数的设定,完成对虚拟模型的数据驱动。这里采用Unity 3D实现系统虚拟环境的搭建。

首先,建立运动建模和三维建模。运动建模包括工程机械行走机构和工作装置的运动学方程和动力学方程,三维建模在三维建模软件中完成。其次,实现虚拟运动,包括三维模型的导入、组件(刚体、碰撞器、物理材料、声音等)的添加、运动脚本的编写和挂载以及场景视角和声效的实现。最后,建立运动学和动力学模型,实现控制器硬件对虚拟模型的运动控制。再将控制器输出信号导入模型,计算出机构下一刻的运动过程,将计算得到的位移、速度以及轨迹传给虚拟环境中的被控运动对象,实现对模型的数据驱动,达到使模型按照控制器命令进行运动的目的。

3.2 UI操作系统与临境训练系统通讯

为把虚拟现实平台中搭建的临境训练系统嵌入UI操作系统中运行,我们采用高并发的异步socket通讯实现其间的相互通讯,其中临境训练系统中挂载脚本的被控运动对象做客户端,UI操作系统做服务器端,使用TCP协议。因为临境训练系统中的被控对象数量较多,为防止阻塞并提高系统效率,系统利用对象池建立多并发的异步socket通讯。它可以实现UI操作系统作为服务器能同时与大量被控运动对象进行通讯的功能。

以使用WPF开发UI操作系统为例。使用上述的socket通讯方法将临境训练系统的.exe程序嵌入WPF程序中,实现其间的通讯。在WPF界面添加一个WinForm自定义控件。在自定义控件内新建一个可以绑定句柄的控件,通过API将.exe程序绑定在控件的句柄上,实现临境训练运行界面在UI操作系统中的显示。在WPF中建立服务器端,实现大容量高并发的异步socket通讯,其要点是在程序初始化时建立对象池,将一定数量的SocketA-syncEventArgs对象放入对象池中。这样在接收到客户端的连接请求时,不需要再创建任何新的线程,使用由对象管理的.NET底层提供的IO线程即可。并且,在程序初始化后开启一个用于监听客户端连接请求的socket连接,监听到连接请求之后调用编写的自定义方法StartAccept()开始接受异步连接。每个对象都编写有接收数据、发送数据、清理对象等方法。在需要完成发送或接收操作时,从对象池中取出一个对象,将特定的socket连接赋给对象的.ConnectSocket属性,调用对象的相关函数完成操作即可。当对象完成指定操作后,系统会清空对象中的所有数据,以便下次使用。利用对象池实现对象的复用,避免了在异步套接字IO量非常大时发生重复的对象分配和同步问题,显著提高了通讯性能。服务器端初始化函数,即对象池的建立代码如图5。监听到socket的连接请求后,接受客户端连接的主要代码如图6。Unity 3D中的被控对象作为客户端,其上挂载脚本的通讯部分使用普通的socket通讯。经测试,该方法可行。

图5 服务器端初始化函数

图6 接受客户端连接的主要代码

4 装载机临境训练系统

基于上文中所述的半物理仿真系统架构,设计了一款ZL50型装载机的临境训练系统。使用上文在虚拟环境运动仿真中介绍的方法,建立运动模型和三维模型,添加组件,编写和挂载脚本。图7中依次为装载机三维建模、将模型导入Unity3D进行分组、组件的添加和脚本的挂载。其中较关键的是组件添加和脚本编写部分。

图7 运动仿真主要实现步骤

4.1 组件添加

在添加组件时,对装载机的主要性能参数进行计算,将真实的参数添加进组件,在虚拟环境中模拟真实行走运动。

以挖掘机进行原地转向时的阻力矩为例进行动力学分析。将轮胎与地面的接触面抽象为直径为轮胎宽度的圆型。轮胎绕接触面的圆心转动,产生的摩擦力矩M大小等于接触面单位面积上的摩擦力对圆心取矩的总和,摩擦力矩方向与转动方向相反,即

式中 F为车轮上的垂直载荷,φ为轮胎与地面间的附着数,ρ为当量半径,b为轮胎宽度[8]。

设置车轮碰撞器(WheelCollider),将行走参数(即运动时车轮的驱动力矩、阻力矩等)、真实车重和地面摩擦系数等参数添加进组件,能更真实的模拟装载机的运行情况。

4.2 脚本编写

运行脚本的编写是运动仿真的重点,它确定了模型各个构件的运动方式。编写运行脚本的基础是运动模型,而对于装载机而言,主要是其行走机构和工作装置的运动学方程。

行走机构的运动包括车轮的转动和车身的平动。在装载机上添加移动脚本,给车轮碰撞器附加一个力矩,让车轮碰撞器的转动带动整车的平动。控制车轮转动的主要代码如图8,Quaternion.Eular()返回的为欧拉角度,wheelAngle表示每秒车轮碰撞器绕z轴转过的角度。用wheelCollider对象的Rotation坐标右乘Quaternion.Eular()来表示车轮碰撞器每秒绕z轴转的角度。累加每一帧车轮的旋转值,将该结果赋给车轮对象,即可得出车轮绕着z轴旋转的角度。车轮的转动脚本除控制部分,还包含3.2中介绍的通讯部分。

图8 车轮脚本中实现转动的主要代码

ZL50型轮式装载机工作装置是一个反转六连杆机构。对其添加脚本,需要对其进行运动学和动力学分析。运动学分析的目的是确定铲斗端点的位置、姿态、速度和加速度以及各连杆的位置关系与各关节的速度和加速度。建立D-H刚体坐标系,装载机工作装置可简化为两自由度的连杆机构,如图9。O0为装载机与动臂的铰接点,O1点为动臂与铲斗的铰接点,O2点为铲斗的端点。

图9 工作装置简化结构示意图

以计算铲斗端点的位置为例进行运动学计算说明。工作装置各关节间的齐次变换矩阵为

通过运动方程可以求得工作装置上各个点的运动轨迹,据此为装载机工作装置的各个构件添加运行脚本。

4.3 系统实现效果

完成系统的主体设计后,还需设置模拟环境中摄相机拍摄的角度和位置,制作模拟场景,添加一些辅助的教学功能,将生成的应用程序嵌入UI操作系统中。最终完成的装载机虚拟施工训练系统雨天施工场景下的远景视角如图10,晴天施工场景下的操作员视角如图11。如图10中放大的系统菜单所示,系统具有ZL50挖掘机简介、播放教学视频、视角切换、晴天场景、雨天场景、操作能力测试等功能。

图10 雨天施工场景下的远景视角

图11 晴天施工场景下的操作员视角

5 结束语

提出了一种针对工程机械,结合实际控制器和施工真实环境的操作员训练系统架构。该架构融合了半物理仿真的思想,将成本较低且较重要的控制器作为实物引入仿真回路,将成本较高且笨重的机械实体用运动模型代替,将实际环境的实时信息引入系统,为操作员提供可供操作的手柄。该系统制造成本低,模拟真实化程度高,虚拟临境体验感强,使用便捷。基于此架构具体设计了一种装载机临境训练系统。该系统可以进行教学、实操和测评。经测试,该系统能对工程机械操作员进行基础训练,达到提高操作员培训效率和质量,降低培训成本的目的。同时,在本系统中实现的关键技术也为本文提出的系统架构的进一步研究奠定了基础。

猜你喜欢
虚拟环境操作员通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
美空军特种战术操作员正在进行军事自由落体跳伞
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
如何通过虚拟环境有效管理Python第三方库
浅谈基于H3C云计算管理平台的系统管理功能
无人机操作员的选用机制研究
虚拟环境下大数据智能并行聚类方法研究
面向知识自动化的磨矿系统操作员脑认知特征与控制效果的相关分析