CN103593871A - 一种航海雷达模拟器ppi图像的生成方法 - Google Patents
一种航海雷达模拟器ppi图像的生成方法 Download PDFInfo
- Publication number
- CN103593871A CN103593871A CN201310581827.1A CN201310581827A CN103593871A CN 103593871 A CN103593871 A CN 103593871A CN 201310581827 A CN201310581827 A CN 201310581827A CN 103593871 A CN103593871 A CN 103593871A
- Authority
- CN
- China
- Prior art keywords
- scene
- radar
- opengl
- data
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Radar Systems Or Details Thereof (AREA)
Abstract
本发明公开了一种航海雷达模拟器PPI图像的生成方法,包括以下步骤:读取港口的三维模型数据,将模型中的顶点列表块中的数据存储到顶点数组中;调用微软开发库中的设置定时器函数;响应定时器消息。本发明采用读取港口三维模型方法,能够利用真实世界中的港口、岸线、房屋、码头以及山脉等的三维信息,经过三维场景的绘制后,生成的深度信息中保留了场景的三维信息,进而生成的雷达回波图像更加逼真。本发明中生成的场景深度信息,由计算机的显卡使用Z-Buffer算法生成的,速度很快。本发明所生成的场景深度信息的宽度和高度,决定了雷达回波数据的方位量化数和距离量化数,通过提高场景深度信息的大小,可以提高雷达回波数据的分辨率。
Description
技术领域
本发明涉及一种航海雷达仿真技术,尤其涉及一种航海雷达模拟器PPI图像的生成方法。
背景技术
航海雷达模拟器是大型船舶操纵模拟器的一个重要组成部分,在人员培训、科研实验和教学等领域有重要应用。航海雷达是一种平面位置显示器(PlanePositionIndicator,PPI),通过向周围发射电磁波,并接收目标反射的回波对目标进行显示。由于雷达电磁波的频率很高,在目标尺寸远大于电磁波波长的情况下,可以使用几何光学或物理光学的原理进行近似。
传统的航海雷达模拟器,通过数字化仪和专用的电子海图数字化软件将纸质海图中的岸线或由符合S-57标准的数字化海图提取的岸线数据等主要信息经预处理后,生成ASCII字符格式的数据文件。然后,使用射线与岸线数据求交运算实时生成雷达回波。由于数据来源于电子海图,目标数据比较简单,不能完全体现真实世界中的场景(缺少房屋、码头建筑物和山型等信息)。另外,电子海图是一种二维的平面图,缺少目标的高度信息,因此不能有效的实现目标之间的遮挡关系。这是采用二维数据的主要缺点。
为了解决采用二维数据图像逼真度不高的问题,任鸿翔等人通过载入三维场景库,实时访问模型的几何信息,并利用射线组与场景库中模型表面的三角形求交来计算回波位置,图像逼真度有很大改善。由于采用了射线组,并且需要实时进行射线与三角形的求交运算,在场景比较复杂的情况下,该方法的运用受到了限制。在机载雷达PPI图像模拟领域,D'Amato等采用射线组与场景多边形求交的方法来模拟雷达回波图像,通过大量的简化场景多边形来提高绘制速度。前面提到的方法实际上都是一种简单的射线跟踪方法。射线跟踪方法源于计算机图形学,却已被广泛的应用在SAR图像模拟领域。为了解决射线跟踪在实时应用中的速度问题,Balz采用了一种光栅化的方法对SAR图像进行实时模拟,避免使用了耗时的射线跟踪算法。
现有航海雷达模拟器中PPI图像生成方法主要存在以下不足:
1)采用数字化的电子海图岸线数据。由于雷达与真实世界作用时,真实世界的模型是三维的。采用二维的海图岸线数据,丢掉了真实世界中的高度信息,并且只采用岸线数据也不能体现显示陆地上的回波。
2)采用射线与场景求交的方法。射线与场景求交实质上是一种简单的射线跟踪算法,它最大的缺点就是耗时较多,尤其是在场景复杂的情况下,需要对场景模型进行简化或者减少射线个数,这必将导致图像的逼真度下降。
3)图像的分辨率不高。现有雷达模拟器采用射线与场景求交的方法生成雷达回波图像,雷达的距离分辨率和方位分辨率取决于采用的射线数目,导致最终图像的分辨率不高。
本发明的参考文献如下:
[1]尹勇,刘秀文,李志华:《采用真雷达显示器的航海雷达模拟器的关键技术》系统仿真学报,2007.19(5):第1014-1017页。
[2]尹勇,金一丞:《页面更新方式雷达/ARPA模拟器图像生成的研究》大连海事大学学报,1996.22(4):第32-39页。
[3]任鸿翔,马海洋与刘彤《船舶操纵模拟器中三维场景库的雷达图像模拟》中国航海,2010(001):第7-10页。
[4]D'Amato,J.P.,et al.,Real‐time aircraft radar simulator for a navytraining system.Computer Applications in Engineering Education,2010。
[5]Coleman,C.J.,Araytracingformulationanditsapplicationtosomeproblemsinover‐the‐horizonradar.RadioScience,1998.33(4):p.1187-1197。
[6]Balz,T.andU.Stilla,HybridGPU-basedsingle-anddouble-bounceSARsimulation.GeoscienceandRemoteSensing,IEEETransactionson,2009.47(10):p.3519-3529。
[7]Franceschetti,G.,etal.,SARAS:Asyntheticapertureradar(SAR)rawsignalsimulator.GeoscienceandRemoteSensing,IEEETransactionson,1992.30(1):p.110-123。
[8]Auer,S.,S.HinzandR.Bamler,Ray-tracingsimulationtechniquesforunderstandinghigh-resolutionSARimages.GeoscienceandRemoteSensing,IEEETransactionson,2010.48(3):p.1445-1456。
[9]Balz,T.,Real-timeSARsimulationongraphicsprocessingunits.EUSAR2006,2006。
发明内容
为解决现有技术存在的上述问题,本发明要设计一种回波图像速度快、分辨率高和图像逼真的航海雷达模拟器PPI图像的生成方法。
为了实现上述目的,本发明的技术方案如下:一种航海雷达模拟器PPI图像的生成方法,包括以下步骤:
A、读取港口的三维模型数据,将模型中的顶点列表块中的数据存储到顶点数组中。
B、调用微软开发库中的设置定时器函数。
C、响应定时器消息
C1、使用图形程序开发库OpenGL绘制三维场景,具体绘制步骤如下:
C11、调用OpenGL的视点设置函数;
C12、调用OpenGL的旋转函数,旋转场景模型;
C13、调用OpenGL的透视投影设置函数;
C14、调用OpenGL的视口设置函数。
C2、调用OpenGL的读取像素函数,从显卡的内存中读取场景的深度值并保存到深度数组中。在绘制图像的过程中,计算机的显卡使用Z-Buffer算法对场景进行遮挡判断,并将场景的深度值实时的保存到显卡的内存中。
C3、将保存的深度值的坐标值转换到视坐标系下。
C4、根据转换后的深度值生成雷达回波数据。
C5、根据生成的雷达回波数据绘制雷达PPI图像。
与现有技术相比,本发明具有以下有益效果:
1、本发明采用读取港口三维模型方法,能够利用真实世界中的港口、岸线、房屋、码头以及山脉等的三维信息,经过三维场景的绘制后,生成的深度信息中保留了场景的三维信息,进而生成的雷达回波图像更加逼真。
2、本发明中生成的场景深度信息,由计算机的显卡使用Z-Buffer算法生成的,速度很快。
3、本发明所生成的场景深度信息的宽度和高度,决定了雷达回波数据的方位量化数和距离量化数,通过提高场景深度信息的大小,可以提高雷达回波数据的分辨率。
4、综上所述,本发明所设计的雷达PPI图像生成方法在绘制的实时性及真实感上优于其他方法,采用该方法可以科学、实时、逼真地绘制大规模场景的雷达回波图像。
附图说明
本发明共有附图4张,其中:
图1是本发明的流程图。
图2是3ds格式文件的结构示意图。
图3是生成雷达回波数据的流程图。
图4是绘制雷达PPI图像的流程图。
具体实施方式
下面结合附图对本发明做进一步详细地描述。如图1-4所示,一种航海雷达模拟器PPI图像的生成方法,包括以下步骤:
A、读取港口的三维模型数据,将模型中的顶点列表块中的数据存储到顶点数组中。
本发明能够读取3ds格式的三维数据。3ds格式文件是Autodesk公司制定的一种存储三维数据的方式。3ds文件由许多块(chunk)组成。一个块包含一个或多个子块。每个块都包括一个头部和一个主体。块的头部包含了该块的标识号和长度信息。块的主体包含了存储的数据。3ds文件的开头是主块,主块包括了3d编辑程序块和关键帧块,标识号分别为0x3D3D和0xB000。3d编辑程序块又包含了若干其他子块,其中标识号为0x4110的顶点列表子块包含了场景的顶点坐标。3ds格式文件的结构如图2所示。该步骤将标识号为0x4110的子块中的顶点数据读取到数组中。
B、调用微软开发库中的设置定时器函数
在程序中,使用微软开发库中的定时器函数
SetTimer(HWNDhWnd,UINT_PTRnIDEvent,UINTnElapse,TIMERPROClpTimerFunc)设置定时器。
参数hWnd为窗口句柄,nIDEvent为定时器标识号,nElapse为定时间隔,lpTimerFunc为回调函数,这里设置为常量NULL。将定时器间隔记为ΔT,单位为毫秒。则ΔT由下式确定,
ΔT*360/ΔA=T
其中ΔA为当前场景的水平视场角,单位为度;T为雷达的扫描周期,单位为毫秒。
C、响应定时器消息
在定时器的消息响应函数中,完成以下几个步骤:
C1、使用OpenGL绘制三维场景,该步骤又包括以下几个分步骤:
C11、调用OpenGL的视点设置函数
使用图形程序开发库OpenGL的函数gluLookAt(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,GLdoublecenterx,GLdoublecentery,GLdoublecenterz,GLdoubleupx,GLdoubleupy,GLdoubleupz)设置视点参数。
参数(eyex,eyey,eyez)为雷达天线在三维场景中的位置;
参数(centerx,centery,centerz)为视线方向,指向OpenGL的y轴;
参数(upx,upy,upz)为视线的向上方向,指向OpenGL的z轴。
C12、调用OpenGL的平移函数,平移场景模型
使用OpenGL的函数glTranslatef(GLfloatx,GLfloaty,GLfloatz)平移场景模型。参数(x,y,z)设置为(0,-h,0)。h表示雷达天线的高度,单位与场景模型的单位一致。
C13、调用OpenGL的旋转函数,旋转场景模型
使用OpenGL的函数glRotatef(GLdoubleangle,GLdoublex,GLdoubley,GLdoublez)旋转场景。
参数angle为旋转的角度,在本发明中代表了雷达的方位;每次旋转angle的值都会增大,有如下关系:
angle=(angle+ΔA)%360 (1)
ΔA表示当前场景的水平视场角,%是C语言中的取余操作。
参数(x,y,z)为旋转的中心轴,这里设置为OpenGL的y轴。
C14、调用OpenGL的透视投影设置函数
使用OpenGL的函数gluPerspective(GLdoublefovy,GLdoubleaspect,GLdoublezNear,GLdoublezFar)设置投影参数。
参数fovy为当前场景的垂直视场角,在本发明中代表雷达的垂直波束宽度;
参数aspect表示当前场景的水平视场角与垂直视场角的比值;
参数zNear为近裁剪平面的距离,在本发明中代表雷达的盲区范围;
参数zFar为远裁剪平面的距离,在本发明中代表雷达的最大量程。
C15、调用OpenGL的视口设置函数
使用OpenGL的函数glViewport(GLintx,GLinty,GLsizeiwidth,GLsizeiheight)设置视口大小。
参数x,y取0;
参数width为视口的宽度,单位为像素,在本发明中代表当前视场角范围内雷达的方位量化数;
参数height为视口的高度,单位为像素,在本发明中代表当前视场角方位内雷达的距离量化数。
C2、调用OpenGL的读取像素函数,读取场景的深度信息并保存到数组中
使用OpenGL的函数glReadPixels(GLintx,GLinty,GLsizeiwidth,GLsizeiheight,GLenumformat,GLenumtype,GLvoid*pixels)读取当前场景的深度缓冲区,并存储到参数pixels所指向的内存中。
pixels的定义如下:
GLfloatpixels[ZBUFFER_X*ZBUFFER_Y];
这里的常量ZBUFFER_X和ZBUFFER_Y分别等于步骤C1中第5步的width和height。
C3、将保存的深度信息的坐标值转换到视坐标系下
循环取出深度缓冲区pixels中的深度值,转换到视坐标系下,并保存到buffer中。转换公式为:
Zv=d*f/(f-Zs*(f-d)) (2)
Zs为转换前的深度值,Zv为转换后的深度值,d和f分别表示步骤C1中的步骤C14近裁剪平面和远裁剪平面的距离。
buffer的定义为:
doublebuffer[ZBUFFER_X*ZBUFFER_Y];
C4、根据转换后的深度信息生成雷达回波数据
一条方位线上的回波数据结构定义为:
structRADAR_RETURNS
{
UINTazimuthnum;
BYTEdata[TOTAL_RANGE_NUM];
};
azimuthnum表示该方位的方位号,范围是0~AZIMUTH_MAX,代表了0~360°。AZIMUTH_MAX表示雷达总的方位量化数。
数组data用于保存该方位上回波的强度。
常量TOTAL_RANGE_NUM表示一条方位上的回波个数,与步骤C3中的height参数相同。
当前视场角范围内包含了ZBUFFER_X条的方位数据,它的定义为:
RADAR_RETURNSradarReturns[ZBUFFER_X];
生成雷达回波数据的流程图如图3所示:
C41、初始化radarReturns中的数据为0;
C42、循环取出buffer中的深度数据点buffer[n];
如果深度值小于雷达当前的量程liangcheng,则当前深度数据点所对应的回波距离量化号r由下式计算:
r=(buffer[n]-zNear)*TOTAL_RANGE_NUM/(liangcheng-zNear) (3)
将data[r]的值设置为255。
如果深度值大于等于雷达当前的量程,则不对数据做其他处理。
C43、计算回波对应的方位号
方位号azimuthnum由下式计算:
azimuthnum=angle*AZIMUTH_MAX/360-ZBUFFER_X/2+i (4)
i=n/ZBUFFER_Y (5)
angle的含义见步骤C1的第1步,n表示当前循环的索引号。
C5、根据生成的雷达回波数据绘制雷达PPI图像
循环取出radarReturns中的回波数据,转换为直角坐标,并显示。绘制雷达PPI图像的方法见图4。
首先,初始化外层循环变量i。循环取出第i条方位线的方位号赋给变量az。然后,初始化内层循环变量r。循环取出第i条方位线上的回波数据,初始化变量m和value。每asp个回波数据取最大值,赋给变量value。其中asp表示一条方位上雷达的距离点数与雷达PPI图像半径的比:
asp=TOTAL_RANGE_NUM/WIDTH_2 (6)
WIDTH_2表示雷达PPI图像的半径,单位为像素。
函数convert将极坐标的雷达回波数据,转换为直角坐标。转换公式为:
r1=r/asp;(7)
x=cenX+r1*sin(az*PI*2.0/AZIMUTH_MAX); (8)
y=cenY-r1*cos(az*PI*2.0/AZIMUTH_MAX); (9)
(cenX,cenY)为雷达PPI图像的中心点的坐标,r1为当前回波在PPI图像上的距离,常量PI为圆周率,(x,y)为回波的直角坐标。
函数drawpixel函数在(x,y)处绘制雷达回波点,强度为value。
Claims (1)
1.一种航海雷达模拟器PPI图像的生成方法,其特征在于:包括以下步骤:
A、读取港口的三维模型数据,将模型中的顶点列表块中的数据存储到顶点数组中;
B、调用微软开发库中的设置定时器函数;
C、响应定时器消息;
C1、使用图形程序开发库OpenGL绘制三维场景,具体绘制步骤如下:
C11、调用OpenGL的视点设置函数;
C12、调用OpenGL的旋转函数,旋转场景模型;
C13、调用OpenGL的透视投影设置函数;
C14、调用OpenGL的视口设置函数;
C2、调用OpenGL的读取像素函数,从计算机的显卡的内存中读取场景的深度值并保存到深度数组中;在绘制图像的过程中,计算机的显卡使用Z-Buffer算法对场景进行遮挡判断,并将场景的深度值实时的保存到显卡的内存中;
C3、将保存的深度值的坐标值转换到视坐标系下;
C4、根据转换后的深度值生成雷达回波数据;
C5、根据生成的雷达回波数据绘制雷达PPI图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581827.1A CN103593871A (zh) | 2013-11-18 | 2013-11-18 | 一种航海雷达模拟器ppi图像的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581827.1A CN103593871A (zh) | 2013-11-18 | 2013-11-18 | 一种航海雷达模拟器ppi图像的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103593871A true CN103593871A (zh) | 2014-02-19 |
Family
ID=50083995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310581827.1A Pending CN103593871A (zh) | 2013-11-18 | 2013-11-18 | 一种航海雷达模拟器ppi图像的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593871A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020180730A1 (en) * | 2001-05-30 | 2002-12-05 | Konami Corporation | Image processing method, image processing program, and image processing apparatus |
-
2013
- 2013-11-18 CN CN201310581827.1A patent/CN103593871A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020180730A1 (en) * | 2001-05-30 | 2002-12-05 | Konami Corporation | Image processing method, image processing program, and image processing apparatus |
Non-Patent Citations (1)
Title |
---|
张闯: "基于建模技术的航海雷达回波图像的生成方法", 《中国优秀硕士学位论文全文数据库 工科科技II辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6260924B2 (ja) | レーザスキャンデータの画像レンダリング | |
CN103456041B (zh) | 一种基于s-57电子海图数据的三维地形和雷达地形生成方法 | |
CN108401461A (zh) | 三维建图方法、装置、系统、云端平台、电子设备和计算机程序产品 | |
CN103631148A (zh) | 一种基于ais的船舶驾驶实时虚拟增强仿真系统及方法 | |
CN104484852A (zh) | 一种点云曲面的复合几何图像表示方法 | |
CN105699951B (zh) | 基于dem数据叠加的航海雷达回波模拟方法 | |
CN103592650A (zh) | 基于图形处理器的三维声纳成像系统及其三维成像方法 | |
Huang et al. | Comprehensive sample augmentation by fully considering SSS imaging mechanism and environment for shipwreck detection under zero real samples | |
CN110706325B (zh) | 一种三维海底环境实时动态渲染方法和渲染系统 | |
CN110471061A (zh) | 一种实现机载合成孔径雷达成像的仿真方法及其系统 | |
Zhang et al. | A 3d visualization system for hurricane storm-surge flooding | |
Chiu et al. | GPU-based ocean rendering | |
CN116310221A (zh) | 一种船舶摇荡与视景波浪运动匹配方法、终端设备及介质 | |
CN103593871A (zh) | 一种航海雷达模拟器ppi图像的生成方法 | |
CN115393496A (zh) | 一种多激光雷达仿真点云的快速绘制方法和装置 | |
CN103135101B (zh) | 基于cuda和电子海图生成导航雷达海岸线回波的方法 | |
GB2554179A (en) | Method for generating an inverse synthetic aperture radar image | |
CN113470135A (zh) | 海面仿真图像的生成方法、装置和电子设备 | |
Kim et al. | Fast GPU computation of the mass properties of a general shape and its application to buoyancy simulation | |
Zhang et al. | LiDAR Simulator for Autonomous Driving in Ocean Scenes | |
Wang et al. | Three-dimensional reconstruction of underwater objects from side-scan sonar images | |
CN115574711B (zh) | 环境工程的测量方法和系统 | |
Vekinis et al. | Aeolus Ocean--A simulation environment for the autonomous COLREG-compliant navigation of Unmanned Surface Vehicles using Deep Reinforcement Learning and Maritime Object Detection | |
Zhang et al. | A LiDAR Point Clouds Dataset of Ships in a Maritime Environment | |
CN117951816A (zh) | 一种航行环境搭建方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140219 |