关键词:实时 立体 导航 GPS 3S
1 引言
对于实时导航而言,往往不能将所有的地图全部调入内存而必须很好的管理图库[1],而在导航精度方面GPS的精度与导航图的精度都同等重要[2]。但无论何种导航,使用者往往要通过图上表示的地物和现地地物来识别位置,本文所建立的立体导航图正是为提高导航图的易识别性来提高导航的效果。
本文所建立的实时立体导航系统可以很方便地用做车载GPS,其成本较低。由于GPS和笔记本计算机的更新速度都很快,本系统能同时获得两方面的科技进步的支持,有更多的可选择性。
2 立体导航图的研制
立体导航图是根据等高线及地图来进行创建的,将等高线表达的地形作为场景几何并假设了太阳光照模型的条件下,应用扫描算法或光线跟踪算法编程创建立体地形图[3],再将立体地形图与地图合成立体地图并赋予相应坐标系即是立体导航图。
立体导航图是光栅图像,笔记本用的光栅图像显示器的屏幕由一系列显示单元组成,每一个显示单元为一个象素,生成立体图时,必须逐个像素地计算画面上相应景物表面区域的明暗度,为此不但要考虑光源对该区域入射光亮度和光谱组成,而且还要考虑该表面区域对光源的朝向,表面的反射性质,所以,建立立体导航图必须基于一定的光学物理模型。
2.1 场景坐标系
景物立体图像的建立是在三维直角坐标系统中进行的,首先必须确定XY平面。地球表面是曲面,必须将曲面投影成为平面,并将此平面定义为立体地形图的XY平面,将高程方向定义为场景坐标系的Z轴方向。本文所建立的立体导航图的立体造型是在Gauss-Kruger投影下的坐标系中进行的,Gauss-Kruger投影是等角圆柱投影,沿赤道每6°分带。本文的场景选在黑龙江省尚志县境内的帽儿山地区,该地区在投影分带中处于22带,所以,XY平面是以赤道为x轴,129度经线为Y轴的直角坐标系。在这一坐标系下对地形的表示和运动描述比较方便。需要注意的是,Gauss-Kruger投影中的x方向应设为场景坐标系的Y方向,而Y方向应设为X方向。由于等高线在矢量化时就已经是Gauss-Kruger投影,而且“UP”方向是N方向(即Y方向),所以只需将地形图正向扫描并按图上的坐标设置控制点,将等高线矢量化即可得到正确的场景坐标系。
矢量的等高线在场景描述中不方便于直接操作使用,将研究区域按一定的栅格大小栅格化是场景描述的第二步工作,在栅格化过程中,没有高程值的栅格通过内插处理将它们赋予高程值。而且栅格DEM的算法已有现成的程序可用。
通常每一个DEM的栅格数据使用无符号双字节表示,但有时为节省内存空间而使用单字节,使用单字节会损失一部分地形信息。
在Visual C++编程时,将场景坐标系中的DEM数据读入一个双字节的数组中使用如下的命令:
其中ar是Carchive类的引用,m和n是DEM模型中的行数和列数,通过上述操作,即可存放全部DEM数据并进行变换。
2.2 立体导航图的视点坐标系
视点坐标系是指以观察者的视线为Z轴,以“UP’方向为Y方向,X轴方向由Y×Z所确定的方向的坐标系。
为了建立立体导航图就必须将场景坐标系变换为视点坐标系,其变换方程如下:
显然变换由两部分组成,即平移和旋转。(1)式中前一矩阵为平移,后一矩阵为旋转。
一般而言有了视点坐标系,还需将视点坐标系转换至屏幕坐标系,并进行视窗剪切,这样产生的立体图像是实时产生的,随着用户位置和方向的移动可以产生相应的移动的实时动画。但这样导航图的实时计算时间会较长,对实时导航不利。所以,本文采用了将视点位置设于很远的位置,这样可以认为场景的全部区域均在视窗之内,在图像生产时不需进行视窗剪切(见图1)。
创建了立体地形图还必须与地图叠加才能成为立体导航图。立体地形图从本质上讲仍是平面图像,立体是在阴影的衬托下表现出来的,其平面特性即是缺点也是优点。其优点是它能很方便地与任何坐标一致的矢量和栅格图配准。将立体的地形图与等高线配准更能体现立体的视觉特性,并能适时的查询任何位置的高程值,配准的结果见图2。
立体地形图与等高线配准后显然增加了立体效果,但也增加了图上信息的饱和度。在此基础上叠加地图,其效果见图3。
从图3可见,三图配准只能在特殊情况下或在计算机里使用,用于输出到纸上是难以阅读的。但在计算机中用做导航图是非常方便和实用的,因为在计算机中立体地图中的三层可以方便组合和缩放。
3 手持GPS与笔记本连接
3.1 手持GPS的设定
为了将GPS与笔记本计算机相连接,并将GPS的数据实时采集到计算机,必须在GPS上的参数进行设定,并在编程时将对应的参数写入程序。本项研究使用了美国MAGELLAN公司生产的GPS 315和GARMIN公司生产的etrex(也称小博士),在此GPS 315上进入主菜单按MENU键,进入主菜单后再按“设置”键,在“设置”子菜单下按“波特率”,共有四种波特率供选择: l 2 0 0、4 8 0 0、9 6 0 0、l 9 2 0 0,本文选择传输波特率为9 6 0 0,在“设置”子菜单中还需要选择相应的数据格式NMEA-0183。
NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。它是在过去海用电子设备的标准格式0810和0812的基础上,增加了GPS接收机输出的内容而完成的。数据采用ANSI标准,以串口非同步传送,使用ASCⅡ格式如下:
设置了传输参数还需要设置GPS的坐标系统和椭球参数,在GPS315中坐标系是指公里网坐标(USER GRID)和经纬度坐标的选择,这确定GPS上的显示方式,但在传输时没有差别,因为从GPS实时传输进计算机的数据均是没有经过投影换算的经纬度,投影换算必须在计算机中进行。在GPS上椭球参数的设定只需要在相应的菜单中选择BJ54即可。
3.2 笔记本计算机的设定与操作
一般而言,计算机有多个通迅端口,通迅端口的列表可以通过WINDOWS的设备管理器来查询(COM1,COM4,COM5),当GPS与计算机的连线插在计算机的某一串行口(Serial Port)后,计算机对端口操作时就必须选择相应的端口名,本文使用的COM5。在实验中使用的是COMPAQ笔记本计算机,这一品牌的计算机没有现成的COM端口,而只有USB接口。实验时通过一条端口转换线来模拟一个COM5端口。
在VB编程时,通过加入MSCOMM(通讯控件)来实现对COM5的控制,对通讯控件的参数设置如下:
从COM5读入计算机的数据是由(2)式定义的数据串,而这里最关心的是经度和纬度,将读入的经度和纬度经过Gauss-Kruger投影换算成为(X,Y)坐标,并将它与前面的立体导航图进行坐标配准便构成了立体导航系统。
在处理立体导航图时使用了VC++,将立体导航图用文件方式存贮。当用VB实时处理导航时将导航图调入并与经投影变换的GPS采集的坐标点配准而构成立体导航系统。?
4 立体导航系统的应用
应用本文所建立的实时立体导航系统于2002年5月在帽儿山林场进行了实地操作。该系统被用于对帽儿山林场1994年以来的采伐迹地进行全面调查。
帽儿山林场从1994年至2001年间的采伐均是择伐,蓄积强度一般在50%以下,所以伐区分布很广,面积达5000hm2,约占总面积的25%,在采伐时所砍的小班线在调查时己难以分辨,所以调查时需要随时量取自己在图上的位置以确定在哪个小班,而且还要确定小班采伐的年代和采伐设计情况;在这种情况下,实时立体林相导航系统和笔记本计算机均发挥了不可替代的作用。
这一系统在伐区内的标准地复查中也发挥了主要作用,帽儿山实验林场的固定标准地有200余块,1983年首次实测,1993年复测,这次复测时,一部分中心桩已无法找到,但通过钉在树上的铝牌和立体林相导航系统的定位和导航找到固定标准地并进行了复测,复测时通过标准地设置时的每木定位图对每棵树的树号进行了核对。
立体导航系统还记录了每天调查的路线和到达每一点的时间,这些资料和方法将对任何一种野外调查都是非常有价值的(见图4)。?
图4立体导航系统2002年5月17日8:45分记录的导航路线(圆点带线)
从图4可见,立体导航图上公路与GPS所取得的路线之间有一定误差,这个误差可以通过多次实验来进行测定和校准,这次调查没有进行多次测定,而是使用一次数据进行了简单校准。这方面细致的研究工作将以后进行。
参考文献:
[1]龚国清,曾文.GPS电子地图的设计与实现[J].中国地质大学学报, l998年.Vol.23,No.4.
[2]武红敢,吴坚,王福贵,等.全球定位系统(GPS)在林业导航中的试验研究[J].林业科学,l999年.Vol 35,No.4.
[3]J.Amanatides.Ray Tracing with Cones[J].Computer Graphics,1984,Vol.18,No.3.
[4]彭群生,鲍虎军,金小刚.计算机真实感图形的算法基础[M].1999年,科学出版社.
[5]冯仲科,余新晓.“3S”技术及其应用[M].2000年,中国林业出版社.
评论
查看更多