- 相关推荐
定位系统软件设计
定位系统软件设计
【摘要】分析定位系统软件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.
【定位系统软件设计】相关文章:
软件设计辞职报告03-16
个人礼仪形象的定位10-14
定位好自己的角色10-06
简历的重点定位12-09
求职个人简历定位12-09
确定位置教学教案10-08
市场定位策划书03-05
计算机病毒游戏型软件设计论文10-09
论“排除合理怀疑”的法律定位10-06
缺乏定位是职场“跳蚤”头号通病10-26