北斗杯大学组三等奖优秀作品(8)

2018-12-19 22:17

在GNSS/INS组合导航系统的数据处理过程中,对轨迹的观察分析有时是需要三维显示的,尤其是在高程变化明显的实验中(如机载实验)。在本套系统中,我们编写了一个三维显示模块,利用解算结果输出的经纬高数据,画出载体的行进轨迹,并以动画方式显示其动态过程,如图8:

图8 基于DirectX的三维动态显示轨迹

为了更方便地观察轨迹特点和细节,还可以对图像进行缩放、平移和旋转操作,如图9:

图9 三维轨迹的缩放、平移和旋转

三维图形的编程目前有两种主流方法,一是使用OpenGL开源类库,二是使用微软提供的DirectX SDK,我们选择的是后者。

在进行三维图像编程中,DirectX是一个底层接口,只提供画点画线的函数,

36

我们通过这些函数自己编写了画虚线及画有线宽的直线的方法,学习了DirectX编程环境中二、三维字体的显示和透视原理的相关知识,但是这样还远远不够,其中一个难题就是“如何在对绘制图形进行放大缩小的同时保持作为背景的坐标系统保持原状(刻度线会随之发生变化,但坐标系统边界应该保持不变)”,在参考大量资料后我们找到的解决方法如下:建立两个视角系统,一个视角系统不随鼠标操作变化,坐标轴边框(上图中黄色实线)就放在此系统中,把需要移动的刻度线(黄色虚线)和绘制图形放在另一个可变的视角系统中,这样它们就可以响应相关的操作了。

在动态显示的部分,我们则采用Mesh方法制作了红色图标,然后通过不断刷新其位置来实现这一功能。

在已有的同类型商业软件中,我们发现它们的三维显示模块中用户对三维轨迹观看视角的调整是通过界面上的调节条(Trackbar)实现的,而现今的用户在观看三维显示(如Google Earth)时早已习惯用鼠标在画面上完成所有操作。因此,我们将视角调节的功能放在鼠标左键上实现,放大缩小使用滚轮实现,鼠标右键则实现图形拖动。

用DirectX完成的三维轨迹显示依然有很大的局限,比如说图幅的限制及缺乏实物背景的抽象性。如果能把GNSS/INS处理结果导入Google Earth中,利用Google Earth已有的强大功能和丰富的空间信息进行处理结果的显示,会得到更为出色的效果。

谷歌地球(Google Earth,GE)是一款Google公司开发的虚拟地球仪软件,它把卫星照片、航空照相和GIS布置在一个地球的三维模型上。Google Earth于2005年向全球推出,被“PC 世界杂志”评为2005年全球100种最佳新产品之一。用户们可以通过一个下载到自己电脑上的客户端软件,免费浏览全球各地的高清晰度卫星图片。

Google Earth中信息的输入是通过kml文件,是xml文件的一种,在初步的显示中,我们使用的是kml的placemark标签,即点位标记功能,读取处理结果的经纬高信息,将测量载体所测位置和其姿态,速度等描述信息输出到kml文件中,然后通过调用桌面版Google Earth程序打开该kml文件进行输出显示,显示结果如图10:

37

图10 Google Earth上显示测量轨迹

由于在kml文件中加入了点的描述信息,因此可以用鼠标点选图中显示的点迹,点的经纬高等相关信息就会通过“气泡”显示的方式出现在图面中;当顺序选择和显示连贯的点迹时,就实现了实验场景回放的功能,将为组合导航结果的后处理分析研究提供丰富的、身临其境的现场信息。如图11:

图11 Google Earth上对测量点属性的显示及场景回放功能

上述方式需要单独启动Google Earth,将Google Earth的三维地球绑定到数据处理软件中,将处理数据实时动态地显示在Google Earth上,把Google Earth绑定到自己软件的窗口中,不需要单独打开启动,体现了软件的整体性。我们利用Google Earth的COM API并结合KML文件方式实现了这一功能。基于 Com API的开发方式主要用来控制Google Earth的视角、实现动画效果;而基于KML的开发方式主要用来生成地理要素,实现数据的动态更新等。在实际开发中,我们结合了这两种开发方式,以得到比较理想的效果。将Google Earth的三维地球绑定到本地的软件窗口中,如图12:

38

图12 嵌入程序内部的Google Earth显示

在进行所有有关输出显示时,由于GNSS/INS测量采样频率很高(每秒200Hz),造成处理所得数据量较大。处理文件时,采用“整读整取”的方法,将所有内容都读入内存中,然后进行数据提取,这种做法程序实现简单,但程序运行起来内存占用率很高,严重时会造成程序运行速度缓慢,有时甚至会出现程序卡死崩溃的现象;相反,一次只读入并处理一行数据,读完再循环利用这些变量处理第二行数据,用这样的方法进行数据的读取有效地避免了内存资源的浪费,有效地降低了内存占用,保证了程序正常稳定运行。

4 软件其它辅助功能

在整个GNSS/INS组合导航数据处理分析软件中,我们还加入了一些与之相关的常用辅助功能作为外围模块。如IMU数据标定时的三维操作提示和输入文件的自动格式识别和格式转换功能。

IMU(Inertial Measurement Unit,惯性测量单元 ),是惯性导航系统INS的核心测量单元。一个IMU包含了三轴加速度计和三轴陀螺,加速度计检测载体运动的比力信号(运动加速度和地球万有引力),而陀螺检测载体的角速度信号。

对用户使用情况的长期调查发现,很多用户在对IMU进行参数标定的过程中容易在操作转台时,对转台的转位发生误解,从而造成标定的失败。我们针对这一情况,利用三维设计软件Google SketchUp完成了标定所需IMU姿态的三维绘制,并建立起自动提示界面,使用户更方便准确地进行IMU标定。

39

图13 IMU标定姿态提示

参考文献

[1] 高宪军、翟林培,GPS/ INS 组合导航系统的研究,光学精密工程,12(2),(2004年4月,p146-1

50)

[2] 孙红星、付建红,使用复合滤波器实现双差GPS / INS动态组合高精度定位定姿.信息科学版,34(12), (2009年12月)

[3] IE User Guide ,NovAtel, 2010 [4] POSPac User Manual,Applanix,2003

[5] 李铭 译 C#高级编程(第七版),清华大学出版社,2010年11月

40


北斗杯大学组三等奖优秀作品(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十三五”重点项目-聚偏氟乙烯(PVDF)项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: