计算机应用论文

定位系统软件设计

时间:2021-02-09 12:21:56 计算机应用论文 我要投稿

定位系统软件设计

  定位系统软件设计

  【摘要】分析定位系统软件IPS设计的几个问题,包括建模,及对异常处理、通讯信号处理、绘制图像的部分探讨。

  【关键词】水下定位;软件;C#

  1.概述

  随着社会的发展,海洋资源显得越来越重要。

  而人类探索、开发海洋资源的主要工具之一就是水下机器人。

  有缆遥控水下机器人(ROV)、无缆水下机器人(AUV)是两大发展方向。

  当ROV潜入水下时通过电缆可以传输它的方位信息,但AUV没有电缆就难以知道它在水下的方位了。

  一般水下机器人下水时都会带上一个声信标,并通过费伦蒂公司海洋研究设备部(Ferr-

  anti O.R.E)研制的综合超短基线声跟踪系统Trackpoint之类的设备,获得水下目标相对母船的位置。

  如果把这个信息输入到计算机,并利用GPS获得母船的经纬度,就可以计算出水下目标的经纬度。

  Integrated Positioning System(IPS)是创新水下技术有限公司(Creative Underwater Technology Inc.)开发的一套软件,就可以进行这样的计算。

  但IPS是一个独立的程序,使用时需要占用一台主机,并且购买IPS的价格不菲。

  如果研究自主的类似IPS的定位系统(MyIPS),不仅节约采购经费,还可以把程序嵌入到AUV的水面监控系统中。

  MyIPS综合了多门学科,主要用到计算机图像、通讯、信号处理、大地测量等。

  2.系统结构

  2.1 硬件

  工控机一台,有25针和9针RS-232串口各一个;

  4410D型TrackpointⅡ,带发声器,应答器;

  NovAtel公司OEM4型GPS卡。

  2.2 系统结构

  MyIPS利用4410D型TrackpointⅡ获取水下目标的相对位置,用GPS卡获得母船的大地坐标。

  然后计算出水下目标的大地坐标。

  其结构如图1所示:

  3.数学模型

  从系统结构图可以看到,MyIPS有两个数据源:TrackpointⅡ数据和GPS数据。

  MyIPS的关键就是从这两组数据计算出所需。

  如果归结成数学问题就是已知椭球面上一点的经度纬度(母船的经度纬度,由GPS获得),椭球面上另外一点至该点的大地线长度和大地线的方位角(水下目标相对母船位置,由TrackpointⅡ获得),推求另外一点的经度纬度。

  这是高等大地测量学中的大地主题正解问题。

  如图2所示:椭球面极三角形PAB,P为极点,A点为椭球面上一已知点,大地线AB的大地方位角A1.2亦为已知值,且已知A及B两点间的大地长度S1。

  求B点的经度纬度。

  对这个问题我国著名大地测量专家张志新曾于六○年代提出过计算公式,见参考文献[1、2]。

  这里根据实际的需求情况,在允许的误差范围内进行简化,以便于计算。

  当声信标的类型为TRANSPONDER或RESPON-DER4410D型TrackpointⅡ的绝对精度如下表所示:

  实际上4410D型TrackpointⅡ的有效距离为2km,当距离为2km时TrackpointⅡ的误差至少为2km×0.5%=10m。

  参考“国际椭球”的参数,取地球的曲率半径=6,371,228米,在以为半径的球体中,弦长L=2km对应的弧长S为:

  S=2×arcsin=2×6371228×acsin ()≈2000.0188m

  S-L=0.0188<<10m.

  S和L的值相差不大,远小于Trackpoint的10m误差,因此就把TrackpointⅡ测量的距离当做两点间的大地线长。

  同时以平面坐标系来计算B点的坐标。

  同样采用“国际椭球”的参数。

  如图3所示,A点为母船位置,用GPS获取该点的经纬度,B点为水下目标的位置。

  当Trackpoint系统连接上COMPASS后,将COMPASS/RS232 DATA设置为以正北为基准,Trackpoint输出的BRG(BEARING,目标方向)就是∠NAB,X就是△x,Y就是△y。

  则:

  纬度差为:360°×;

  经度差为:360°×。

  若COMPASS/RS232 DATA没被设置为以正北为基准,则∠NAB=HDG(HEADING,母船方向)+BRG(BEARING,目标方向),又因为AB=S.R.(SLANT RANGE,斜距),则△x=S.R*sin∠NAB,△y=S.R*cos∠NAB。

  用A点(母船)的经纬度相应加上经度纬度差就得到B点(目标)的经纬度。

  在距离不远的情况下,这样计算的精度就可以满足要求了。

  4.软件设计

  4.1 设计概要

  本人使用的是Visual C#.NET,所以以下举例是基于C#语言。

  MyIPS具有可视化的界面,有便捷的操作菜单和工具条,其界面如图4所示:

  MyIPS不仅以数字的`形式反映数据,还可以图形的方式直观的反映出,母船与水下目标的位置关系。

  程序简要流程图如图5所示:

  4.2 主要技术及算法

  ①异常处理

  当要从COM1和COM2读取数据,及试图和数据库连接时可能出现异常情况。

  因此使用try-catch 语句对可能出现的异常进行处理,以增强软件的健壮性。

  实际使用中COM端口可能会被占用或其它故障,以致无法使用。

  将打开COM端口的命令放到try语句块中,则当出现以上可能时,程序转到catch语句,执行异常情况下的处理程序。

  ②数据处理

  Trackpoint输出的数据格式有九种,而GPS输出的数据也有好几种。

  以GPS的GPGGA格式数据为例:   $GPGGA,082631.00,3041.4634,N,11118.4636,E,1,06,1.5,128.29,M,-24.23,M,,*46

  这是一条完整的GPGGA格式的GPS数据,可以看到数据的开头有一个标识符号$,当从缓冲区读取数据时,读到$字符就表示后面的数据就是要提取的有用信息。

  对于Trackpoint输出的NMEA ORE、NMEA TTM格式的数据也是以“$”符号作为开始标志。

  NCSC格式以“J”符号作为开始标志,其它格式的数据虽然没有特殊的符号作为开始标志,但它们的开头都包含时间信息如“16:55:32”,但读到相隔两个字符长度的“:”时,就表示一条数据开始了。

  数据处理的代码如下:

  取出各有效字段后,还要将其类型由字符串型转化成浮点小数型,再进行数据计算,并把结果存储到数据库文件中去。

  ③绘图

  假设以母船为中心,在800*600的矩形中心画上船的标记,同时定义一个变量Tick作为放大倍数。

  母船的位置在屏幕上以像素表示为点(400,300),经度和纬度差的数值很小,在距离近时可能只有0.0001°的差别,因此需要将经纬度差乘上Tick,比如:当Tick=10000时,则经纬度每变化0.0001°,在屏幕上的变化就是一个像素的位移。

  屏幕的像素是以左上角为原点的,如果按上北下南左西右东的方向在屏幕上建立坐标系,则目标B点的像素坐标表示成如下(在东北半球时):

  =+Tick×△x(=400,为A点像素的X坐标);

  =-Tick×△y(=300,为A点像素的Y坐标);

  当在其它半球时需相应变换正负号。

  若定义两个变量WE和NS,当在东半球时WE=1,在西半球时WE=-1;

  当在南半球时NS=1,在北半球时NS=-1;

  修改上面公式成:

  =+WE×NS×Tick×△x(=400,为A点像素的X坐标);

  =+WE×NS×Tick×△y(=300,为A点像素的Y坐标);

  WE和NS的取值可由GPS数据判断。

  如:

  $GPGGA,082631.00,3041.4634,N,11118.4636,E,1,06,1.5,128.29,M,-24.23,M,,*46

  通过数据分析函数可以提出第3和第4个逗号之间的字符“N”,表示在北半球,所以NS=-1,同样“E”表示在东半球,所以WE=1。

  另外,视图的放大和缩小按钮可以改变Tick的大小,然后刷新视图,这样可以满足目标和母船距离远近不同时在屏幕上的反映。

  5.结论和建议

  从上述可以看出,设计IPS的主要技术并不复杂,但实际中因为TrackpointⅡ和GPS发送数据的速率不同,要想更快的分析数据,还必须研究优化的算法。

  为了提高在远距离时计算结果的精度,还要对数学模型进行改进,添加修正参数。

  参考文献

  [1]张志新.大地坐标计算公式[J].测绘通报,1956,2(4).

  [2]张志新.远距离大地坐标正反解公式[J].测量制图学报,1958,2(3).

  [3]OPERATION AND MAINTENANCE MANUAL FOR THE ORE MODEL 4410D-01 TRACKPOINT Ⅱ Plus SYSTEM.

【定位系统软件设计】相关文章:

无线定位系统在移动通信工程中的应用10-30

计算机软件设计方法03-29

四轮定位价格07-05

软件设计专业毕业生自我评价12-14

软件设计中用户身份的认证方法03-12

软件设计师求职简历模板下载01-24

学习型社会建设中电大办学系统定位和功能的思考12-11

简历的定位与包装12-27

论法学的学科定位07-26