基于Linux的地铁列车车载监控显示系统仿真的研究
2014-08-01金祝飞钱雪军
金祝飞,钱雪军
(同济大学 电气工程系,上海 200331)
基于Linux的地铁列车车载监控显示系统仿真的研究
金祝飞,钱雪军
(同济大学 电气工程系,上海 200331)
地铁列车车载监控显示系统是车载乘客信息系统的重要子系统,它集信息播报、视频监控、紧急呼叫等多项功能于一体。本文在构建Linux操作系统的基础上,实现了列车车载监控显示系统的仿真,并重点通过OpenSceneGraph三维渲染引擎对列车车厢视频监控进行仿真。
监控显示系统;Linux;仿真
轨道交通在满足乘客基本需求的同时,如何提高服务质量就显得极为重要。因此,乘客信息系统( PIS,Passenger Information System)越来越受到重视。列车车载PIS提供了站点播报、导乘、广告资讯等一体化讯息,提高了轨道交通的服务水平。而车载监控显示系统(MDS,Monitor Display System)是车载PIS的重要组成部分。在行车过程中,可以通过MDS播报语音信息,LED显示信息、列车状态信息和车厢视频监控等信息。在紧急情况下,乘客还可以和列车驾驶员进行紧急通话。对于MDS的仿真,可以完善列车驾驶模拟器的功能,提高驾驶员培训的效率。
1 PIS概述
MDS是车载PIS的重要组成部分,它运用各种现代化手段对车载设备信息进行状态监测、故障诊断、集中控制调节等功能,通过MDS还可以知道列车的运行状态,如当前的速度、温度等。因此,地铁列车需要一套完善的MDS来更好的服务于列车的安全和高效运行。
1.1 车载PIS组成
PIS是依托多媒体网络技术,以计算机技术为核心,以地铁车站和车载显示终端为媒介向乘客提供信息服务的系统。PIS主要由控制中心PIS、车站PIS、车载PIS及网络子系统构成。车载PIS主要包括以下几个部分:
(1)系统控制主机(PISC)
PISC用于执行PIS的控制指令,实现与列车控制与管理系统的通信功能,实时监测设备状态信息,当收到系统设备异常信息时即进行记录,并将故障、异常信息上传到列车控制与管理系统。
(2)司机室监控显示屏(MDS)
MDS主要用于接收和显示视频信息及输出控制指令。
(3)广播控制盒(DACU)
DACU主要用于执行司机对讲、紧急对讲和人工广播功能。司机可辅助于MDS执行紧急报警对讲功能,也可独立执行人工对讲操作。
(4)其他外围设备
外围设备包括监控摄像头、交换机等,用于画面捕捉,数据交换。车载PIS在DT车(带司机室和受电弓的拖车)中的结构如图1所示。
图1 车载PIS结构图
1.2 车载MDS功能
地铁中的前后两个驾驶室内分别装有一个MDS,通常前进方向的MDS是处于可操作状态的,而且前后两个驾驶室内的MDS的功能应该完全相同。根据实际列车运行时的各种情况,将MDS实现的主要功能描述如下。
1.2.1 动态地图
MDS动态地图显示整条运行线路,当前站,下一站等信息。
1.2.2 视频监控功能
视频监控可以将司机室和客室状态的图像信息传递到MDS,将信息记录在视频存储器上,并可以通过检索查询历史图像。
1.2.3 视频播放功能
通过车站PIS系统统一发送的视频信息可以在视频播放模块中进行播放,完善运控中心向列车发布消息功能。
1.2.4 紧急报警电话功能
当发生紧急情况时,乘客拨通紧急报警电话,在MDS中会显示报警点位置,并通过对讲摄像头显示乘客当前状态信息并与之通话。
1.2.5 系统设置
通过语言、日期等设置实现对列车的系统设置。
1.2.6 列车自检
通过列车的自检,在MDS中显示列车的状态信息,如绿色代表正常,红色代表错误。确保列车安全运行,方便列车维修。
2 车载MDS环境搭建
本文研究的主要对象是基于印度孟买地铁一号线列车驾驶模拟仿真系统上的MDS,因此,围绕对方的技术要求和指标,在硬件和软件上做以下研究。
2.1 车载MDS硬件环境
车载MDS的仿真采用嵌入Intel Atom N2800双核处理器的EPIC-N26主板。通过附加电源供电,处理器主频为1.86 GHz,搭配Intel NM10高速芯片组,内置Intel GMA3650显示控制器,支持2.0 GB DDR3 SDRAM。主板提供VGA、HDMI接口显示输出,包含2个USB2.0接口,一个SATA接口,6个RS232串口,支持PS/2键盘和鼠标接入。
2.2 车载MDS软件环境搭建
操作系统关系到硬件与上层驱动之间的通信,而且还是应用程序的承载平台,对于系统的稳定起到关键作用。Linux操作系统具有免费、可移植、开放源代码、安全稳定、开关机速度快、系统内核小、可以最大程度的利用硬件等一系列的优点。Linux不仅可以运行在Intel架构,还可以运行于PowerPC、ARM、MIPS、Alpha等架构。在工控计算机领域有着广泛的应用。本研究采用Ubuntu作为操作系统,并成功设置环境变量。
Qt是一个跨平台的C++图形用户界面。支持Windows、UNIX/Linux、Mac OS X等主流操作系统。其良好的封装机制使得Qt的模块化程度非常高,可重用性较好。信号/槽机制替代回调的通信方式,使得各个组件之间的协同工作变得十分简单。因此,在Ubuntu操作系统下选择Qt跨平台开发框架。
3 MDS界面仿真实现
本文实现的驾驶模拟器MDS界面仿真,是满足列车实际运行下的广播播报、消息发布、视频监控等功能。对于MDS界面的实现是研究的基础,而对于视频监控的仿真则是研究的重点。
3.1 MDS基本功能仿真
3.1.1 Qt的应用
Qt的核心机制是信号/槽机制,一个信号可以对应一个或者多个槽。同样,一个或者多个信号可以对应一个槽,即不同的消息可以使用同一段代码,信号/槽机制结合事件机制可以在低层修改事件响应,完成触摸屏点击事件的仿真。
Linux系统字库中不存在MDS界面的字体。由于Ubuntu支持TrueTypeFont字库,把需要的字库复制到Ubuntu操作系统字库中并进行安装,通过QFont font(BankGothic Md BT)选中字体然后对于字体的大小颜色等设置,并应用于整个MDS仿真界面。
有效的利用Qt的资源机制。把MDS素材复制到工程目录下,并在项目中新建Qt资源项,并在素材加入资源项文件夹中,通过运用QPixmap类来引用资源。
3.1.2 实现MDS基本功能
用Qt实现的MDS界面的基本功能包括自动报站、媒体播放、列车状态显示、系统设置等功能。
在自动报站功能界面,屏幕上方显示列车的起始站、当前站、以及终点站,屏幕中间显示了列车的所有站点信息,当前站用黄色圆圈表示,其实用绿色圆圈表示,在正常情况下,程序接受来自列车自动控制(ATC,Automatic Train Control)的消息进行报站,当遇到特殊情况比如该站不停车时,司机通过操作MDS上具体的信息播报选项来改变某一站点的播报选项。
在媒体播放功能界面,可以播放预先存储的.MP3、.MPG格式文件;在状态显示界面,可以点击车厢号查看各个车厢状态信息,若信息显示为绿色,则说明列车各部分状态正常;在系统设置界面,可以设置列车车厢编组数、语言、时间以及功能测试等。
在对车载MDS基本功能进行仿真时,车载MDS实时读取PISC传来数据并做相应的显示,需要多重复杂的绘制操作,这样势必导致呈现的图像闪烁或具有其他不可接受的外观。双缓冲使用内存缓冲区来解决由多重绘制操作造成的闪烁问题。当启用双缓冲时,所有绘制操作首先呈现到内存缓冲区,而不是屏幕上的绘图图面。所有绘制操作完成后,内存缓冲区直接复制到与其关联的绘图图面。因为在屏幕上只执行一个图形操作,所以消除了由复杂绘制操作造成的图像闪烁。双缓冲实现过程如图2所示。
图2 双缓冲过程
这样,通过双缓冲技术实现了MDS基本功能的绘制,MDS界面自动报站功能如图3所示。
图3 MDS界面自动报站功能
3.2 实现视频监控仿真
3.2.1 OSG简介
OSG是开源跨平台的C++图形开发包,主要为图形图像应用程序的开发提供场景管理和图形渲染优化功能,被广泛应用于虚拟现实、虚拟仿真、科学和工程可视化等领域。它以OpenGL为低层平台,可运行于Windows、UNIX/Linux、Mac OS X、IRIX、Solaris等操作系统。OSG的核心代码支持多种场景裁剪技术(Culling)、细节层次节点(LOD)、渲染状态排序(State Sort)、顶点数组以及粒子系统、阴影系统、雨雪、火焰烟雾等特效,场景动态调度、多线程渲染等各种机制。对于MDS视频监控的仿真,主要是地铁车厢模型的建立以及OSG的渲染过程。
3.2.2 场景模型生成
场景模型是仿真活动的基础,建模是虚拟仿真系统构建过程中必不可少的环节,一个高质量的模型运行起来以后会使用户有很强的沉浸感。采用建模软件Creator建立车厢模型。
3.2.3 OSG渲染过程
OSG通过组织节点导入大多数常用的模型文件格式,如.flt、.3ds、.obj格式等,把节点加入到场景,实现对场景的漫游操作,PATH调用,录像,回放等功能,最后经过裁剪、优化、LOD等技术进行渲染,其流程图如图4所示。
在OSG渲染过程中,通过适当的设置光照参数,才能正确地显示出几何图形表面的纹理、材质以及颜色信息,使视景仿真更加真实,增加人们对虚拟世界的沉浸感。OSG全面支持OpenGL的光照特性,包括材质属性、光照属性和光照模型。在本文的渲染过程中,使用了一个GL_LIGHT0光源对车厢进行照明,对其参数进行设置的步骤如下:
(1)计算出整个车厢包围盒的中心点和直径;
(2)设置LIGHT对象的参数,包括光照方向、光源位置、环境光的颜色、散射光的颜色、设置恒定衰减系数。
设置好这些参数后,运行程序,可以看到车厢中有了光照效果,更接近列车真实情况。
在OSG渲染过程中,为了仿真客室摄像头以及对讲监控摄像头,必须在屏幕窗口内定义一个视口,视景投影后的图形会在各个视口中显示。OSG产生的目标场景图的变换过程类似于用相机进行拍照,步骤如图5所示。
图4 场景的基本渲染流程
图5 三维图像显示流程图
在一个逼真的虚拟场景里,会有很多动态变化。OSG中有帧动画、骨骼动画等可以实现这些变化。若是用.flt格式的模型,则可以通过自由度(DOF)节点来控制其运动。这样,只需在Creator建模时建立DOF节点,并将运动的路径设置好,在OSG中便可直接调用。
在编程中需用到访问器。访问器的设计允许用户将某个特定节点的指定函数应用到当前场景遍历的所有此类节点中。可以从基类osg:: NodeVisitor派生一个特定的节点访问器。这个类需要一个std::string变量,用于搜索的有名节点进行字符串比较。一个节点列表变量(std::vector),用于保存符合搜索字符串的所有节点。
通过视图位置的选择和DOF的应用,模拟了车厢客室摄像头和报警摄像头的画面,实现了车厢中的视频监控仿真,如图6所示。
图6 车厢中视频监控仿真图
4 结束语
通过利用Linux操作系统的独特优势,在其环境下结合Qt、OSG实现车载MDS中视频监控的仿真,对于系统运行的稳定性以及受训学员掌握MDS基本操作技能有着重要的现实意义。
[1] 闫锋欣,曾泉人,张志强.C++ GUI Qt4 编程[M].北京:电子工业出版社,2013.
[2] 肖 鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南[M]. 北京:清华大学出版社,2010.
[3] 王 锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实践[M]. 北京:清华大学出版社,2009.
[4] 王静环.基于MultiGen Creator的视景仿真在地铁模拟驾驶仿真系统中的应用[J].制造业自动化,2011(6).
[5] 申闫春,朱幼虹,曹 莉,温转萍.基于OSG的三维仿真平台的设计与实现[J]. 计算机仿真,2007(6).
责任编辑 方 圆
Simulation of Onboard Monitoring Display System for train of Urban Transit based on Linux
JIN Zhufei, QIAN Xuejun
( Department of Electrical Engineering, Tongji University, Shanghai 200331, China )
Onboard Monitoring Display System for train of Urban Transit was the most important subsystem of Passenger Information System. It was combined a number of functions, such as information broadcast, video surveillance, emergency calling in one. Based on the Linux Operating System, the simulation of Monitoring Display System was implemented, and focused on the simulation of video monitoring by OpenSceneGraph.
Monitor Display System; Linux; simulation
U231.6∶TP39
A
1005-8451(2014)07-0058-04
2013-12-27
金祝飞,在读硕士研究生;钱雪军,高级工程师。