定位系统软件设计

更新时间:2024-04-14 作者:用户投稿原创标记本站原创 点赞:4992 浏览:19126

【摘 要 】分析定位系统软件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发送数据的速率不同,要想更快的分析数据,还必须研究优化的算法.为了提高在远距离时计算结果的精度,还要对数学模型进行改进,添加修正参数.

相关论文范文