嵌入式智能沙盘上位机的实现与研究

2012-01-29 08:35东北大学通信与信息系统研究所王志远隋金坪候淇滨
电子世界 2012年11期
关键词:沙盘插值纹理

东北大学通信与信息系统研究所 沙 毅 王志远 隋金坪 候淇滨

嵌入式智能沙盘上位机的实现与研究

东北大学通信与信息系统研究所 沙 毅 王志远 隋金坪 候淇滨

沙盘在当今社会尤其是战争方面仍然扮演举足轻重的角色。虚拟电子沙盘与实物沙盘的结合更能反应出真实的地形地貌,给人以大局与细节的统筹。本文采用模拟简单山地地形,深入浅出地详细阐述智能沙盘系统的几大主要模块技术:地形三维数据的处理技术,PC机上的可视化技术,嵌入式控制技术,等。

智能沙盘;嵌入式;地形仿真

1.引言

随着科学技术的发展,我国也在加快军队信息化现在化建设的脚步,作为非常重要的作战工具——沙盘,沙盘的智能化对部队信息化建设起到了非常重要的作用。

目前普通沙盘只能对一块地形或一个建筑群进行模拟,要想再获取其他地形地貌的信息,就必须另制沙盘。智能沙盘可以灵活多变,不拘泥于一种地形的限制,从环保角度考虑,节约了大量的原材料以及资金,从时间角度考虑,通过传来的三维数据,可以快速的模拟出不同地区的地形地貌,并同时配以三维仿真技术进行效果辅助。

2.嵌入式智能沙盘原理及实现流程图

智能沙盘其原理是利用步进电机阵列(轴杆)托起沙盘平面,通过控制电机,使阵列各个轴杆上升不同高度,以构成各种各样的沙盘地形。通过嵌入式操作系统可以实现一个智能沙盘的重复利用。通过曲面拟合算法、曲面分割采点等算法对目标地区相应地理三维数据、地理信息进行处理、整合,再结合嵌入式技术,控制步进电机从而模拟出目标地区地形地貌,并同时在PC机上配以基于VC++ OPENGL的三维仿真效果。其主体结构框图及实现流程图如图1、图2。

图1 主体结构框图

图2 智能沙盘实现流程图

3.嵌入式智能沙盘实现技术

3.1 地形数据的处理

3.1.1 数据高程模型(DEM)简介与获取

DEM是一定范围内规格网点的平面坐标(x,y)及高程(z)的数据集,主要是描述区域地貌形态空间分布,由其可派生出等高线.坡度图等信息。建立DEM的常用方法主要有以下几种:

(1)直接从地面测量。

(2)根据航拍测量途径获取数据。

(3)从现有地形图上采集。

3.1.2 地形曲面的插值拟合

在地形曲面的插值拟合中,是基于matlab中的griddata函数完成的。Matlab中的griddata函数可以将位于同一空间坐标系下的散点插值为规则格网,提供了包括基于Dclaunay三角形的线性插值、三次多项式插值及最近点插值,可以方便地实现结合邻近离散点分布特征的光滑曲面拟合。

3.1.3 地形数据的采样

根据硬件部分所有电机进行矩阵排列,在matlab中对所拟合好的曲面进行曲面分割,此过程是基于matlab中的interp2函数完成的,使得采样出的每个高程数据都能对应相应位置的步进电机。将采出的的高程数据进行数据等价转换,转换为电机旋转的脉冲,通过串口传输至嵌入式控制模块。

图3

数据的插值拟合、采样部分代码如下:

3.1.4 matlab的后续处理

在完成插值拟合,采点的基础上,借助matlab,可以观察到插值拟合后的真实图样,以及由采样点形成的仿真图样,可以通过两图的对比,可以观察到两者之间是否存在较大差异,若出现较大差异,则可通过增多或改变采点模式来改善仿真图样,以使其更加接近真实图样,使其真实展示现实。另外可借助matlab中的contour3(),contour()来显示地形的三维等高线和二维等高线,使非常直接的清楚的了解地形特征。(图形为随意举例出的,见图3、图4)

图4

3.2 PC机上的可视化

3.2.1 OPENGL简介

PC仿真是基于VC6.0上封装的OPENGL图形库完成的。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与V C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:包括建模、变换、颜色模式设置、光照和材质设置、纹理映射、位图显示和图像增强、双缓存动画等功能,可以逼真的仿真模拟出地形,是实现沙盘PC机上可视化的最佳开发平台。

3.2.2 仿真地形的生成

3.2.2.1 场景坐标系

在从场景物体位置转化成设备坐标系位置,最后物体显示在屏幕上的过程中存在四种坐标系:建模坐标系(Modeling Coordinate),世界坐标系(World Coordingate),规范化设备坐标系(Normalized Device Coordinate)和设备坐标系(Device Coordinate)。

3.2.2.2 图形变换

图5 顶点变换过程

图6 云的绘制流程图

三维图形的显示是一个复杂的过程,首先将世界坐标系中的三维物体经过一系列三维几何变换,为了使要显示的物体位置、大小和方向适当,还必须要经过投影,然后在通过定义一个三维视景对物体进行裁剪,只显示出投影在视景内的部分;接着在屏幕窗口内定义一个矩形,称为视口,视景体投影后的图形就在该视口内显示;最后通过再做一些适当变换,使图形在屏幕坐标系中显示出来。

在基本OPengl渲染过程中主要有以下几种变换:

(1)视图变换:用于指定观察者的位置和方向。在一个场景中,我们希望改变观察者的位置和观察者角度。用于改变观察者方位和角度的变换,就是视图变换。观察者位于点(0,0,0),且视线朝着-Z方向。也就是说,只有在Z<0的地方绘图,才有可能被观察到。

(2)模型视图变换:移动和变换场景中的模型。此变换用于移动和旋转场景中的物体。使用模型视图变换完全可以代替视图变换。模型变换主要包括:模型平移glTranslate{fd}(TYPEx,TYPEy,TYPEz);模型旋转glRotate{fd}(TYPE angle,TYPEx,TYPEy,TYPEz);模型缩放glScale{fd}(TYPEx,TYPEy,TYPEz)。

(3)投影变换:对视见空间进行裁剪和扭曲;投影变换有两种形式,及平行投影变换和透视投影变换。透视投影变换,对于相同大小的物体,离视点越近投影越大,离视点越远投影越小,远到极点时消失成为灭点。平行投影,无论物体距离相机多远,投影后的物体大小尺寸不变。平行投影直接把物体投影到屏幕上,反映了物体的真实大小,主要用于工程图纸绘制方面。

(4)视口变换:对最终输出进行缩放;视口变换就是将视景体内投影的物体显示在二维的视口平面上。运用相机模拟方式,将经过几何变换、投影变换和裁剪变换后的物体显示于屏幕窗口内指定的区域内。

下面简单介绍顶点变换过程:OpenGL将图形显示在屏幕上要经过多个变换过程,对应三维图形显示过程,OpenGL中物体顶点的变换过程如图5所示。

3.2.2.3 光照系统的设置

光照系统主要分为光源、模型材质、光照模型三个部分。材质是指构成三维实体的材料在光照模型中对于红、绿、蓝、三原色的反射率,其定义分为环境、漫射、镜面反射成分,通过材质定义可以大大提高所绘制的三维场景的逼真度。而光照模型主要有环境光、漫射光、反射光等。可逼真模仿真实光源效果。

3.2.2.4 纹理映射

颜色纹理生成的方法一般是预先定义纹理模式,然后在物体表面的点与纹理模式的点之间建立对应关系,即物体空间与纹理空间对应。当物体表面的可见点确定后,接着用纹理模式的对应点参与到光照模型计算中,这样就可把纹理模式加在物体表面上。纹理映射技术将在现实世界拍摄的位图文件映射到物体的表面,使我们感觉到物体的外观与现实世界中的真实物体一样,增强了所绘制物体的真实感。该过程采用的是BMP格式的位图。

3.2.2.5 仿真地形天空的生成

在进行虚拟3D场景构建时,一般都需要生成天空场景。在此采用盒子的方法生成天空,这种方法是首先绘制一个多边形,然后再进行纹理贴图。当纹理贴图使用得很好时盒子式的天空也会取得很好的视觉效果。但当纹理使用不当时在一个较大多边形边上的纹理易产生拉伸变形。此方法通常在绘制透过窗户的天空时被采用,而在绘制户外场景时不适合采用,天空中的云也是采用纹理贴图技术来实现的,图6是云的绘制流程图。

3.2.2.6 山地起伏的实现

在地理科学描述山地的方法,一般使用山地等高线来描述。等高线图可以形象地反映山地的情况,在计算机图形处理技术上,等高线地图给我们提供了还原山势地貌的可行性。该过程中,采用灰度等高线图,用黑白色的深浅表示山势的高低。使用InitTerrain(…)建立地域数组函数,由图形读出对应点高度,灰度等高线图的制作可通过matlab完成,可利用matlab中的mat2gray()函数进行绘制,最终再进过Photo shop的加工修饰就可得到(见图7)。

3.2.2.7 3DS模型导入

模型信息包括模型的顶点,图元类型,顶点法线,模型的材质等,但由于openGL只提供了最基本的图元绘制方法,所以在绘制具有大量图元的复杂物体时,显得力不从心。由于。3ds模型文件格式是很常用的格式,所以采用3DSMax建模,可根据地形需要在3DSMax进行建模,后根据其所在位置,进行导入。这样就可使观察者有未到其地,便观其物之感。

图7 灰度等高线图

4.结束语

智能沙盘新型灵活,并可重复使用。所采用的技术手段具有面向性,并不针对某一特定地区,原则上只要我们可以获取目标地区三维数据信息,即可应用智能沙盘进行模拟,方便快捷,而且节约材料,可重复利用,有利于环境保护和可持续发展。

[1]费广正,乔林编著.Visual C++6.0高级编程技术OPENGL篇[M].北京:中国铁道出版社,2000,9.

[2][美]Dave Shreiner主编。OPENGL编程指南[M].机械工业出版社,2010,3.

[3][美]亨塞尔曼编著.精通Matlab7[M].清华大学出版社,2006,5.

[4]柳超,卜淮原.虚拟电子沙盘实现技术探析[J].重庆工业高等专科学校校报,2002,3.

[5]陈本富,王贵武等.基于Matlab的数据处理方法在GPS高程拟合中的应用[J].昆明理工大学学报,2009,10.

沙毅(1959—),男,东北大学通信与信息系统研究所副教授,1982年7月获得北京航空航天大学无线电通讯专业学士学位,1988年4月获西北工业大学数字信号处理方向硕士学位,2000年9月晋升为副教授,主要研究方向:软件无线电理论与应用技术研究,图像处理与识别技术研究,嵌入工系统与FPGA、DSP技术研究,GPS与GSM/GPRS结合的定位和跟踪系统研究,无线射频卡(RFID)应用技术研究。

猜你喜欢
沙盘插值纹理
沙盘游戏
ERP电子模拟沙盘在高校创新创业教育中的应用
沙盘活动设计、实施和反思——以武夷山一中沙盘活动开展为例
基于BM3D的复杂纹理区域图像去噪
基于Sinc插值与相关谱的纵横波速度比扫描方法
使用纹理叠加添加艺术画特效
TEXTURE ON TEXTURE质地上的纹理
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
消除凹凸纹理有妙招!