ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:152.34KB ,
资源ID:10195891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10195891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(导航与定位课程报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

导航与定位课程报告.docx

1、导航与定位课程报告导航与定位课程实验报告学生姓名: 韩宁 班 学 号: 116092-29 指导教师: 黄鹰 中国地质大学信息工程学院2011年7 月 实习一【内容】GPS设备的使用要求:(1)熟悉GPS设备使用 (2)使用GPS设备对地物进行静态绝对定位和对运动物体进行动态绝对定位。【实习过程】实习第一天,我们认识到了GPS定位所用到的仪器,并使用手持GPS设备完成了点线面定位测量的一系列操作。刚开始老师就给我们演示了GPS设备的安装过程,以及各个部分的作用。首先,我们需要选择一个开阔的地段来进行操作。这样接收到的GPS卫星的监测数目会比较多,至少要得到四颗卫星数目才能够满足我们的需求。然后

2、确定了一个基准点作为参考点,当时老师在相应的位置做了个标志,开始安装第一个GPS设备,在把仪器拼接好一起之后,我们需要对仪器做一定的调整,开始是对三脚架的高度和间距做调整,使仪器尽量保持平稳,然后调整水准仪,使通过视镜可以看到我们做标记定位的点,这样我们就可以确定坐标点的位置了。然后就是组装天线,把天线和我们刚刚组建的GPS仪器连接,这个天线的作用就是发送和接受GPS卫星的信息,最后就是和基准站差不多的方法来组装流动站。做好安装的工作后,启动基准站接收机,我们需要用手持GPS通过蓝牙和GPS设备相连,打开配置菜单,测量形式/RTK基准站,测量类型:RTK,设置坐标类型及天线类型的导入完成基本的

3、设置,然后打开测量菜单RTK测量点的获得初始化,导入高程数据,利用相应的软件就可以开始测量当前GPS接收机的经纬度坐标了。同样的方式测得流动站的位置,先设置接收机端口和波特率,连接电台,新建一个任务,输入任务名,参数等,完成基本的设置后就可以进行测量了。需要注意的是流动站的配置要和基准站的相配对。流动站测量数据的时候会出现数据不断跳动的现象,从列表中得到测量的点,完毕后还要进行点校正。这三台设备的工作原理是:基准站通过天线发送当前位置的信号给GPS卫星,卫星获得当前位置的坐标后又通过天线接收数据传送给接收机,通过手持GPS读出基准站的坐标。基准站的测量利用的是相对定位的原理。同理得出流动站的坐

4、标信息,不同的是流动站利用的是相对定位的原理,得到的是相对基准站的坐标。下午,我们利用手持GPS装置完成了点线面的测量操作。在GPS首选项中定义好协议和端口,在实时设置里可以看到卫星的状态,在GPS机上的分布,然后激活这个GPS设备做好初步的设置之后,需要进行数据采集。先以流动站的类型新建一个文件,写上我们组名,然后在选项里面记录间隔的时间,创建要素,即点,线,面,这样我们就开始做相应的测量操作了,点要素的时候就是一个点的信息,线要素的时候就是点的集合,面要素也是点的集合,但是他的首尾点的坐标是一样的,这样就形成了一个面。GPS手持设备里显示我们并没有完成面的信息,是因为我们在画面的时候没有保

5、证起始点和终点的重合,所以最后显示的还只是一条线。以下就是在GPS手持设备里读出的关于数据。点数据:IDXY名称备注高程01142333.68099976303130.41200066a26.205线数据:XY名称备注高程长度017.1640831142332.93000031303131.211999891142332.93199921303131.202999111142332.93000031303131.159000401142332.93999863303131.104999541142332.93199921303131.047000891142332.92300034303130

6、.990999221142332.93600082303130.871000291142332.93199921303130.812999731142332.92499924303130.750999451142332.93299866303130.698999401142332.93299866303130.65999985面数据:XY名称备注高程长度039.0312611142332.93000031303131.211999891142332.93199921303131.202999111142332.93000031303131.159000401142332.93199921303

7、131.047000891142332.92300034303130.990999221142332.93299866303130.930000311142332.93600082303130.871000291142332.92499924303130.750999451142332.93299866303130.698999401142332.93299866303130.659999851142332.38299942303131.18499947测量图形:实习二【内容】GPS信号解析: 编写小程序读取GPS信号并进行解析,将解析结果以一定形式展现出来。【要求】1、使用语言不限:C ,

8、C+ ,C# ,JAVA2、对于获取信号可采用以一定时间间隔读取文件中GPS信号的形式代替从串口中读取信号。3、该实验基本要求能解析出空间信息(即解析GPRMC格式的GPS信号),其他信号格式的解析以及星历图的绘制可在完成基本要求之后进行扩展。【解析流程图】 【设计思想】GPS设备通过对接收到的导航电文进行分析处理,计算出设备所在的经纬度、海拔、航速、航向等空间信息,并按照规定的协议将空间信息以及卫星信息进行组织,按照一定的波特率通过串口通讯(按位发送)提供给GPS设备使用者或者在GPS设备上进行显示。但是由于资源的不足,我们不能得到GPS设备,只能由tob.txt文档里的导航电文代替设备中的

9、数据输入,实现对不同类型导航电文的解析。这就需要打开和读取文件里的内容,方法是:CStdioFile fp; fp.Open(tob.txt,CFile:modeRead);然而卫星信息共有六种,包括GPGGA、GPGLL、GPGSA、 GPRMC、 GPGSV、GPVTG,他们之间的导航电文转换格式也不一样,这样我们需要一次读出每行的信息。 CString temp; fp.ReadString(temp);不同的卫星信息解析后的信息也就不一样了。这样我们就需要对每种类型的信息做解析例:$GPRMC,*hhUTC时间,hhmmss(时分秒)格式 定位状态,A=有效定位,V=无效定位纬度ddm

10、m.mmmm(度分)格式 纬度半球N(北半球)或S(南半球)经度dddmm.mmmm(度分)格式 经度半球E(东经)或W(西经)地面速率(000.0999.9节,前面的0也将被传输)地面航向(000.0359.9度,以真北为参考基准,前面的0也将被传输)UTC日期,ddmmyy(日月年)格式 磁偏角(000.0180.0度)磁偏角方向,E或W 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)如:$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,*21解析出来的信息:时间:19点19分34.767秒 定

11、位状态:有效纬度:北纬47度38.0173分 经度:西经122度11.1874分速度:0.109624节 航向:北方12.14度 日期:04年10月29日类似的GPGGA、GPGLL、GPGSA、 GPGSV、GPVTG也按它们自己的格式调用相应的解析函数进行解析。具体解析时的思想是定义一个时间函数,OnTimer(),设置每次读取一行的时间,SetTimer(1,100,NULL);这样实现自动调用读出数据。确定了时间之后,具体到每一行的操作,就是要从卫星类型之后开始读,直到“,”的地方为止,定义一个字符串,把读到的信息存在里面,与每个卫星类型相比较,找到匹配的类型,调用这种类型的解析函数。

12、对于各种卫星类型解析的具体思路是先定义一个大小适合的数组,把每行数据分解,两个逗号之间的内容存在相应的数组中,对每个数组做相应的处理实现解析的功能。对于画出相应的轨迹图就需要运用VC画图的具体方法,画一个圆模拟地球的模型,标出N,S,W,E四个方向,确定中心点,然后也是运用时间函数自动的读出每个点的实时坐标,主要运用Moveto()和Lineto()函数实现实现画轨迹图的目的。【调试结果】【代码】CStdioFile fp;CString temp;void CGpsDlg:Onstar() SetTimer(1,100,NULL); if (m_bstate=1) fp.Open(tob.t

13、xt,CFile:modeRead); void CGpsDlg:OnTimer(UINT nIDEvent) CString temp; int i; CString head=; fp.ReadString(temp); int a=temp.GetLength(); for (i=0;ia+1;i+) while (tempi!=,) /读协议类型 head+=tempi; i+; if (head=$GPGGA) /解析$GPGGA explainGPGGA(temp,i+1); break; if (head = $GPRMC) /解析$GPGMC explainGPGMC(temp

14、,i+1); break; if (head =$GPGSA) /解析$GPGSA explainGPGSA(temp,i+1); break; if (head =$GPGSV) /解析$GPGSV explainGPGSV(temp,i+1); break; CDialog:OnTimer(nIDEvent);void CGpsDlg:explainGPGMC(CString data ,int current) UpdateData (true); int len=data.GetLength(); CString strTemp; CString strData14; int j =

15、0; for (int i = current;j 12;/*j +,*/i+) if (j = 11) while (datai != * & i len) strTemp+=datai; i+; else while (datai != , & i len) strTemp+=datai; i+; strDataj+ = strTemp; strTemp = _T(); GPGMC g2; CString temp; if (!strData0.IsEmpty() temp = strData0.Left(2); temp += 时; temp += strData0.Mid(2,2);

16、temp += 分; temp += strData0.Mid(4); temp += 秒; g2.time = temp; if (!strData1.IsEmpty() if (strData1 = A) g2.state = 有效; else g2.state = 无效; if (!strData2.IsEmpty() temp = strData2.Left(2); temp += 度; temp += strData2.Mid(2); temp += 分; g2.latitude = temp; x=atoi(strData2.Mid(2)%100; if (!strData3.Is

17、Empty() if (strData2 = N) g2.latihaif = 北纬; else g2.latihaif = 南纬; if (!strData4.IsEmpty() temp = strData4.Left(3); temp += 度; temp += strData4.Mid(3); temp += 分; g2.longitude = temp; y=atoi(strData4.Mid(3)%100; if (!strData5.IsEmpty() if(strData5 = E) g2.longihaif = 东经; else g2.longihaif = 西经; if (

18、!strData6.IsEmpty() g2.speed = strData6 + 节; if (!strData7.IsEmpty() temp = 北方; g2.dic = temp + strData7 + 度; if (!strData8.IsEmpty() temp = strData8.Right(2); temp += 年; temp += strData8.Mid(2,2); temp += 月; temp += strData8.Left(2); temp += 日; g2.data = temp; if (!strData9.IsEmpty() g2.declibation

19、 = strData9 + 度; if (!strData10.IsEmpty() if(strData10 = E) g2.decdic = 东; else g2.decdic = 西; if (!strData11.IsEmpty() if (strData11 = A) g2.modtype = 自主定位; else if(strData11 = D) g2.modtype = 差分; else if(strData11 = E) g2.modtype = 估值; else g2.modtype = 数据无效; m_data=g2.data; m_time=g2.time; m_long

20、itude=g2.longihaif + g2.longitude; m_latitude=g2.latihaif + g2.latitude; m_direction=g2.dic; m_speed=g2.speed; drawp(x,y); UpdateData(false);其他解析信息的方法类似,这里就不一一列举出来了。void CGpsDlg:Onquit() CDialog:OnOK();void CGpsDlg:OnStop() if (KillTimer(1) m_bstate+; 总结以前的实习基本都是在电脑前写代码,这次有户外的实习,还接触了手持GPS设备,感觉很新颖。在课

21、堂上,老师讲解过这类设备,还有应用的原理,当时感觉能听明白,真正接触到的时候发现和理解的还是有差异。我们不再仅仅是了解这种设备干什么,主要还学会了具体怎么用,这对我们实际的应用有很大帮助。这次户外的实习也帮助我们对课堂上内容的理解和吸收,加深对绝对定位和相对定位的理解。在编程的过程中,我看到了程序的作用。以前写程序觉得就是实现一个特定的功能,对于他的实际应用不太了解,这次的实习和前一天的户外实习相结合,感觉到了编程的作用和功能,知道程序能真正创造出价值。实习是提高能力的过程,也是我们成长的过程。每次实习都能学到了很多新的知识,积累宝贵的经验,虽然感觉着手都很困难,在实习过程中也遇到了很多的问题,也感觉自己做出来的程序还是不够完善,有很多地方还需要改进和提高,但是我们就是在这种不断发现问题,不断解决问题的过程中才会看到自己的不足,才能看到和别人差距,我们的能力才会有所提高。而我还是需要多加努力,勤加练习。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2