导航与定位课程报告.docx
- 文档编号:24091126
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:16
- 大小:152.34KB
导航与定位课程报告.docx
《导航与定位课程报告.docx》由会员分享,可在线阅读,更多相关《导航与定位课程报告.docx(16页珍藏版)》请在冰豆网上搜索。
导航与定位课程报告
导航与定位课程实验报告
学生姓名:
韩宁
班学号:
116092--29
指导教师:
黄鹰
中国地质大学信息工程学院
2011年7月
实习一
【内容】
GPS设备的使用
要求:
(1)熟悉GPS设备使用
(2)使用GPS设备对地物进行静态绝对定位和对运动物体进行动态绝对定位。
【实习过程】
实习第一天,我们认识到了GPS定位所用到的仪器,并使用手持GPS设备完成了点线面定位测量的一系列操作。
刚开始老师就给我们演示了GPS设备的安装过程,以及各个部分的作用。
首先,我们需要选择一个开阔的地段来进行操作。
这样接收到的GPS卫星的监测数目会比较多,至少要得到四颗卫星数目才能够满足我们的需求。
然后确定了一个基准点作为参考点,当时老师在相应的位置做了个标志,开始安装第一个GPS设备,在把仪器拼接好一起之后,我们需要对仪器做一定的调整,开始是对三脚架的高度和间距做调整,使仪器尽量保持平稳,然后调整水准仪,使通过视镜可以看到我们做标记定位的点,这样我们就可以确定坐标点的位置了。
然后就是组装天线,把天线和我们刚刚组建的GPS仪器连接,这个天线的作用就是发送和接受GPS卫星的信息,最后就是和基准站差不多的方法来组装流动站。
做好安装的工作后,启动基准站接收机,我们需要用手持GPS通过蓝牙和GPS设备相连,打开配置菜单,测量形式/RTK基准站,测量类型:
RTK,设置坐标类型及天线类型的导入完成基本的设置,然后打开测量菜单RTK测量点的获得初始化,导入高程数据,利用相应的软件就可以开始测量当前GPS接收机的经纬度坐标了。
同样的方式测得流动站的位置,先设置接收机端口和波特率,连接电台,新建一个任务,输入任务名,参数等,完成基本的设置后就可以进行测量了。
需要注意的是流动站的配置要和基准站的相配对。
流动站测量数据的时候会出现数据不断跳动的现象,从列表中得到测量的点,完毕后还要进行点校正。
这三台设备的工作原理是:
基准站通过天线发送当前位置的信号给GPS卫星,卫星获得当前位置的坐标后又通过天线接收数据传送给接收机,通过手持GPS读出基准站的坐标。
基准站的测量利用的是相对定位的原理。
同理得出流动站的坐标信息,不同的是流动站利用的是相对定位的原理,得到的是相对基准站的坐标。
下午,我们利用手持GPS装置完成了点线面的测量操作。
在GPS首选项中定义好协议和端口,在实时设置里可以看到卫星的状态,在GPS机上的分布,然后激活这个GPS设备做好初步的设置之后,需要进行数据采集。
先以流动站的类型新建一个文件,写上我们组名,然后在选项里面记录间隔的时间,创建要素,即点,线,面,这样我们就开始做相应的测量操作了,点要素的时候就是一个点的信息,线要素的时候就是点的集合,面要素也是点的集合,但是他的首尾点的坐标是一样的,这样就形成了一个面。
GPS手持设备里显示我们并没有完成面的信息,是因为我们在画面的时候没有保证起始点和终点的重合,所以最后显示的还只是一条线。
以下就是在GPS手持设备里读出的关于数据。
点数据:
ID
X
Y
名称
备注
高程
0
114°23′33.68099976″
30°31′30.41200066″
a
26.205
线数据:
X
Y
名称
备注
高程
长度
0
17.164083
114°23′32.93000031″
30°31′31.21199989″
114°23′32.93199921″
30°31′31.20299911″
114°23′32.93000031″
30°31′31.15900040″
114°23′32.93999863″
30°31′31.10499954″
114°23′32.93199921″
30°31′31.04700089″
114°23′32.92300034″
30°31′30.99099922″
114°23′32.93600082″
30°31′30.87100029″
114°23′32.93199921″
30°31′30.81299973″
114°23′32.92499924″
30°31′30.75099945″
114°23′32.93299866″
30°31′30.69899940″
114°23′32.93299866″
30°31′30.65999985″
面数据:
X
Y
名称
备注
高程
长度
0
39.031261
114°23′32.93000031″
30°31′31.21199989″
114°23′32.93199921″
30°31′31.20299911″
114°23′32.93000031″
30°31′31.15900040″
114°23′32.93199921″
30°31′31.04700089″
114°23′32.92300034″
30°31′30.99099922″
114°23′32.93299866″
30°31′30.93000031″
114°23′32.93600082″
30°31′30.87100029″
114°23′32.92499924″
30°31′30.75099945″
114°23′32.93299866″
30°31′30.69899940″
114°23′32.93299866″
30°31′30.65999985″
114°23′32.38299942″
30°31′31.18499947″
测量图形:
实习二
【内容】
GPS信号解析:
编写小程序读取GPS信号并进行解析,将解析结果以一定形式展现出来。
【要求】
1、使用语言不限:
C,C++,C#,JAVA
2、对于获取信号可采用以一定时间间隔读取文件中GPS信号的形式代替从串口中读取信号。
3、该实验基本要求能解析出空间信息(即解析GPRMC格式的GPS信号),其他信号格式的解析以及星历图的绘制可在完成基本要求之后进行扩展。
【解析流程图】
【设计思想】
GPS设备通过对接收到的导航电文进行分析处理,计算出设备所在的经纬度、海拔、航速、航向等空间信息,并按照规定的协议将空间信息以及卫星信息进行组织,按照一定的波特率通过串口通讯(按位发送)提供给GPS设备使用者或者在GPS设备上进行显示。
但是由于资源的不足,我们不能得到GPS设备,只能由tob.txt文档里的导航电文代替设备中的数据输入,实现对不同类型导航电文的解析。
这就需要打开和读取文件里的内容,方法是:
CStdioFilefp;fp.Open("tob.txt",CFile:
:
modeRead);
然而卫星信息共有六种,包括GPGGA、GPGLL、GPGSA、GPRMC、GPGSV、GPVTG,他们之间的导航电文转换格式也不一样,这样我们需要一次读出每行的信息。
CStringtemp;fp.ReadString(temp);
不同的卫星信息解析后的信息也就不一样了。
这样我们就需要对每种类型的信息做解析
例:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
<1> UTC时间,hhmmss(时分秒)格式<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式<10>磁偏角(000.0~180.0度)
<11> 磁偏角方向,E或W<12>模式指示(A=自主定位,D=差分,E=估算,N=数据无效)
如:
$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21
解析出来的信息:
时间:
19点19分34.767秒定位状态:
有效
纬度:
北纬47度38.0173分经度:
西经122度11.1874分
速度:
0.109624节航向:
北方12.14度日期:
04年10月29日
类似的GPGGA、GPGLL、GPGSA、GPGSV、GPVTG也按它们自己的格式调用相应的解析函数进行解析。
具体解析时的思想是定义一个时间函数,OnTimer(),设置每次读取一行的时间,SetTimer(1,100,NULL);这样实现自动调用读出数据。
确定了时间之后,具体到每一行的操作,就是要从卫星类型之后开始读,直到“,”的地方为止,定义一个字符串,把读到的信息存在里面,与每个卫星类型相比较,找到匹配的类型,调用这种类型的解析函数。
对于各种卫星类型解析的具体思路是先定义一个大小适合的数组,把每行数据分解,两个逗号之间的内容存在相应的数组中,对每个数组做相应的处理实现解析的功能。
对于画出相应的轨迹图就需要运用VC画图的具体方法,画一个圆模拟地球的模型,标出N,S,W,E四个方向,确定中心点,然后也是运用时间函数自动的读出每个点的实时坐标,主要运用Moveto()和Lineto()函数实现实现画轨迹图的目的。
【调试结果】
【代码】
CStdioFilefp;
CStringtemp;
voidCGpsDlg:
:
Onstar()
{
SetTimer(1,100,NULL);
if(m_bstate==1){
fp.Open("tob.txt",CFile:
:
modeRead);
}
}
voidCGpsDlg:
:
OnTimer(UINTnIDEvent)
{
CStringtemp;
inti;
CStringhead="";
fp.ReadString(temp);
inta=temp.GetLength();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 导航 定位 课程 报告