四旋翼飛行器_第1頁(yè)
四旋翼飛行器_第2頁(yè)
四旋翼飛行器_第3頁(yè)
四旋翼飛行器_第4頁(yè)
四旋翼飛行器_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于ParrotAR.Drone2.0開(kāi)發(fā)的學(xué)習(xí)(研究)ParrotAR.Drone2.0孫明星2013.05.21伊拉克戰(zhàn)爭(zhēng)中美軍使用的戰(zhàn)場(chǎng)情報(bào)偵察機(jī)六軸飛行器八軸飛行器1.NET、

C#、

VisualStudio2012及GoogleEarth目錄2GPS介紹3接下來(lái)要著重解決的問(wèn)題1.NET、C#與VisualS/dotnet:一般指.NetFramework框架.它是由微軟開(kāi)發(fā)的一種平臺(tái),一種技術(shù)。我們選用了較新的4.0版。C#(sharp):是可用于創(chuàng)建要運(yùn)行在.NET上的應(yīng)用程序的語(yǔ)言之一,它是從C和C++語(yǔ)言演化而來(lái),是Microsoft專門(mén)為使用.NET平臺(tái)而創(chuàng)建的。C#語(yǔ)言的的主要特點(diǎn)語(yǔ)法簡(jiǎn)潔,不允許直接操作內(nèi)存,去掉了指針操作。徹底的面向?qū)ο笤O(shè)計(jì),C#具有面向?qū)ο笳Z(yǔ)言所應(yīng)有的一切特性:封裝繼承及多態(tài)。與Web緊密結(jié)合,C#支持絕大多數(shù)的Web標(biāo)準(zhǔn),如HTML,XMLSOAP等。強(qiáng)大的安全機(jī)制,可以消除軟件開(kāi)發(fā)中的常見(jiàn)錯(cuò)誤(如語(yǔ)法錯(cuò)誤).NET提供的垃圾回收器能夠幫助開(kāi)發(fā)者有效地管理內(nèi)存資源。兼容性,因?yàn)椋茫W裱危牛缘墓舱Z(yǔ)言規(guī)范(CLS),從而保證能夠與其他語(yǔ)言開(kāi)發(fā)的組件兼容。靈活的版本處理技術(shù),因?yàn)椋茫UZ(yǔ)言本身內(nèi)置了版本控制功能,是開(kāi)發(fā)人員更加容易的開(kāi)發(fā)和維護(hù)。完善的錯(cuò)誤及異常處理機(jī)制,C#提供完善的錯(cuò)誤和異常處理機(jī)制使程序在交付應(yīng)用時(shí)能更加健壯。1.1VisualStudio2012C#進(jìn)行.net開(kāi)發(fā)使用的工具---VisualStudi(微軟的一款集成開(kāi)發(fā)環(huán)境).目前最新版本為VisualStudio2012.VisualStudio

簡(jiǎn)介:一套完整的開(kāi)發(fā)工具集用于開(kāi)發(fā)桌面應(yīng)用程序、

ASP.NETWeb應(yīng)用程序、XML、WebService、移動(dòng)應(yīng)用程序.為快速開(kāi)發(fā)提供強(qiáng)大支持1.2.NET、C#與VisualStudio2012三者關(guān)系圖開(kāi)發(fā)工具:VisualStudio2102VB.NETF#VC++.net

C#.NETFramework………..提供函數(shù)庫(kù)及類庫(kù)CSharp開(kāi)發(fā)桌面應(yīng)用程序Winform

Internet應(yīng)用程序ASP.NET手機(jī)開(kāi)發(fā)(嵌入式開(kāi)發(fā))WP81.3.net

能干什么?安裝visualstudio2012后的圖標(biāo)雙擊圖標(biāo)啟動(dòng)后132進(jìn)入vs后新建項(xiàng)目選擇類型控制臺(tái)程序編寫(xiě)運(yùn)行簡(jiǎn)單的HelloWrold!程序1.3.1一個(gè)簡(jiǎn)單的由C#編寫(xiě)的HelloWorld!控制臺(tái)程序

1.4.1GoogleEarth本節(jié)介紹的GoogleEarthAPI是目前Goolge官方網(wǎng)站上最新的GoogleEarthAPI接口定義,也是Google所推薦使用的。與早期的KeyHoleAPI相比有了很多新的特性,增加了很多接口,這些接口基本都是基于KeyholeAPI封裝的,我們將在以后的內(nèi)容中介紹一些關(guān)于KeyholeAPI的應(yīng)用,使得讀者能夠更加深入地理解GoogleEarthAPI的實(shí)質(zhì)。IApplicationGE接口:是GoogleEarthAPI開(kāi)發(fā)中最重要的一個(gè)接口,通過(guò)該接口可以控制GoogleEarth程序的開(kāi)啟、關(guān)閉、獲取地圖窗口的句柄、操作主窗體句柄,還可以進(jìn)行獲取地圖視場(chǎng)照相機(jī)對(duì)象、獲取GoogleEarth版本號(hào)、轉(zhuǎn)換坐標(biāo)等一系列復(fù)雜操作。C#實(shí)例代碼:1.4.2KMLKML全稱是KeyholeMarkupLanguage(KML),是一個(gè)基于XML語(yǔ)法和文件格式的文件,用來(lái)描述和保存地理信息如點(diǎn)、線、圖片、折線并能夠在GoogleEarth客戶端顯示。什么是KML文件<kml

xmlns="/kml/2.0"><Placemark><description><![CDATA[<ahref=":8888/">GoogleSearch!</a>]]></description><name>GoogleHeadquarters</name><LookAt><longitude>-122.0839</longitude><latitude>37.4219</latitude><range>540.68</range><tilt>0</tilt><heading>3</heading></LookAt><Point><coordinates>-122.0839,37.4219,0</coordinates></Point></Placemark></kml>

1.4.2KML如何撰寫(xiě)KML,有以下幾種方式:使用GoogleEarthclient撰寫(xiě)KML文件:使用文本編輯器:使用開(kāi)發(fā)環(huán)境來(lái)自動(dòng)生成KML文件:

GoogleEarth客戶端支持了大量的顯示標(biāo)簽用來(lái)創(chuàng)建和保存成KML文檔。在撰寫(xiě)KML過(guò)程中,你可以先用文本編輯器修改KML文檔,然后在GoogleEarth客戶端中打開(kāi)看顯示的效果,這和你修改一個(gè)HTML文檔并在瀏覽器之中觀看效果是一樣的。1.4.2KMLKML元素表1.5GE二次開(kāi)發(fā):開(kāi)發(fā)的工具和環(huán)境:C#在VS環(huán)境為例在VS中引入GoogleEarthAPI如何把這些數(shù)據(jù)生成KML數(shù)據(jù)格式在GoogleEarth上顯示寫(xiě)一個(gè)程序,來(lái)定時(shí)掃描GPS數(shù)據(jù),通過(guò)將其數(shù)據(jù)解析后,生成一個(gè)kml文件,如Pathplanned.KML文件(kml文件實(shí)際就是xml文件,你按照生成xml文件的方式做就行。只是要注意里面的定義。具體定義,你可以在GoogleEarth自定義一個(gè)標(biāo)簽,保存為一個(gè)kml文件,用記事本打開(kāi)這個(gè)kml文件就知道是什么了。然后你只需要根據(jù)你搜索到的經(jīng)緯度,替換掉里面對(duì)應(yīng)的經(jīng)緯度即可)。

1.5.1C#中如何把GPS的數(shù)據(jù)生成KML格式在GoogleEarth上顯示

xmlns="/kml/2.2"><Document><name>Pathplanned</name><Styleid="yellowLineGreenPoly"><LineStyle><color>ff0000ff</color><width>8</width></LineStyle><LookAt><longitude>123.407983300000</longitude><latitude>41.76337500000</latitude><range>10</range><tilt>10</tilt><heading>-10</heading></LookAt></Style><Placemark><name>AbsoluteExtruded</name><LineString><extrude>1</extrude><tessellate>1</tessellate><altitudeMode>clampToGround</altitudeMode><coordinates>123.407983300000,41.76337500000,10123.407983300000,41.76240556000,10</coordinates></LineString></Placemark></Document></kml>黑色=可見(jiàn),紅色

=不可見(jiàn),綠色=視線

總共24顆GPS衛(wèi)星。地球任意一點(diǎn)可以看到5-12顆衛(wèi)星。任一衛(wèi)星的瞬時(shí)位置可根據(jù)星歷計(jì)算得到。2.1距離交會(huì)法觀測(cè)方程2.2.1GPS模塊所提供的數(shù)據(jù)幀介紹

$GPGGA,161229.48,3723.24757,N,12158.34167,W,1,07,1.0,9.0,M,,,,0000*18$GPGLL,3723.24757,N,12158.34167,W,161229.48,A*2C$GPGSA,A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.5*33$GPGSV,2,1,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71$GPGSV,2,2,07,09,23,313,42,04,19,159,41,15,12,041,42*41$GPRMC,161229.48,A,3723.24757,N,12158.34167,W,0.13,309.62,120598,,*102.3ARM-Linux平臺(tái)下GPS信號(hào)的采集與處理定位和導(dǎo)航是很多便攜移動(dòng)設(shè)備以及汽車電子設(shè)備的重要功能之一,所以GPS在上述設(shè)備中得到了廣泛的應(yīng)用?;贏RM-Linux的嵌人式平臺(tái)以其開(kāi)放性、安全性、健壯性和穩(wěn)定性越來(lái)越成為各種便攜設(shè)備和車載導(dǎo)航設(shè)備的主要開(kāi)發(fā)平臺(tái)。如何實(shí)現(xiàn)GPS模塊和嵌人式ARM-Linux平臺(tái)之間的通信成了實(shí)現(xiàn)系統(tǒng)定位導(dǎo)航的基礎(chǔ)。

GPS模塊與ARM-Linux平臺(tái)之間采用異步串行傳送方式進(jìn)行數(shù)據(jù)傳送的,咱們實(shí)驗(yàn)室購(gòu)買(mǎi)的GPS模塊采用USB轉(zhuǎn)串口通信。ARM-Linux平臺(tái)與GPS通信可選的協(xié)議有很多種,目前普遍采用的是NMEA-0183通信協(xié)議。

2.3.1NMEA-0183通信協(xié)議

NMEA-0183協(xié)議是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的海事無(wú)線電技術(shù)委員會(huì)(BTCM)標(biāo)準(zhǔn),由美國(guó)國(guó)家海洋電子協(xié)會(huì)NMEA(NationalMarineElectronicsAssociation)制定的通信協(xié)議,其中規(guī)定了海用和陸用GPS接收設(shè)備輸出的定位位置數(shù)據(jù)、時(shí)間、衛(wèi)星狀態(tài)、接收機(jī)狀態(tài)等信息。除NMEA-0183協(xié)議之外,還有差分用的RTCMSC-104格式,各個(gè)廠商互不兼容的二進(jìn)制格式等,但以NMEA-0183使用最廣泛。為實(shí)現(xiàn)ARM-LINUX平臺(tái)與GPS之間的通信,應(yīng)清楚協(xié)議規(guī)定的GPS輸出的數(shù)據(jù)格式和報(bào)文。NMEA-0183規(guī)定的格式如下:

波特率:9600b/s

數(shù)據(jù)位:8bit

奇偶校驗(yàn):無(wú)

開(kāi)始位:1bit

停止位:1bit報(bào)文格式:報(bào)文的語(yǔ)句串(十進(jìn)制ASCII碼)格式全部信息如圖1。圖1中具體內(nèi)容:$為串頭,表示串開(kāi)始;GP為交談識(shí)別符。XXX為語(yǔ)句名,NMEA規(guī)定的常用語(yǔ)句有以下6種:GGA,衛(wèi)星定位信息;GLL,地理位置-經(jīng)度和緯度;GSA,GNSSDOP偏差信息,說(shuō)明衛(wèi)星定位的信號(hào)的優(yōu)劣情況;GSV,GNSS天空范圍內(nèi)的衛(wèi)星;RMC,最基本的GNSS信息,指能夠達(dá)到定位目的的基本信息等語(yǔ)句。ddd為數(shù)據(jù)字段,字母或數(shù)字,“,”為域分隔符;*表示串尾;hh表示$與*之間所有字符代碼的校驗(yàn)和;為回車控制符;為換行控制符。在實(shí)際的GPS應(yīng)用中,并不會(huì)用到NMEA的全部信息,而是根據(jù)具體的需要,從中選取有用的信息,忽略其余的信息內(nèi)容。下面以GPRMC語(yǔ)句為例來(lái)介紹。該語(yǔ)句包含時(shí)間、日期、方位、速度和磁偏角等信息,基本上可以滿足一般的導(dǎo)航需求。GPRMC語(yǔ)句的結(jié)構(gòu)為:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,*hh。

數(shù)據(jù)區(qū)說(shuō)明如下:

(1)UTC時(shí)間,hhmmss.sss(時(shí)分秒.毫秒)格式;(2)定位狀態(tài),A=有效定位,V=無(wú)效定位;

(3)緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸);

(4)緯度半球N(北半球)或S(南半球);

(5)經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸);

(6)經(jīng)度半球E(東經(jīng))或W(西經(jīng));

(7)地面速率(000.0~999.9節(jié),前面的0也將被傳輸);

(8)地面航向(000.0~359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸);

(9)UTC日期,ddmmyy(日月年)格式;

(10)磁偏角(000.0~180.0度,前面的0也將被傳輸);

(11)磁偏角方向,E(東)或W(西)。

2.3.1NMEA-0183通信協(xié)議

2.5GPS信號(hào)的采集和處理

為實(shí)現(xiàn)ARM-Linux平臺(tái)下GPS信號(hào)的采集與處理,涉及到Linux下串口編程技術(shù),首先給出Linux串口通信的原理,然后利用多線程編程技術(shù)來(lái)完成GPS數(shù)據(jù)采集與NMEA數(shù)據(jù)格式的解析。大多數(shù)GPS接收機(jī)與各種處理器平臺(tái)進(jìn)行數(shù)據(jù)交換時(shí),都采用異步串行傳送方式,提供一個(gè)符合RS-232C電氣標(biāo)準(zhǔn)的數(shù)據(jù)接口。在Linux操作系統(tǒng)中,所有設(shè)備以設(shè)備文件的形式存儲(chǔ)在目錄/dev/下,串口設(shè)備文件為/dev/ttyUSB*,在Linux中,若要設(shè)置串口的參數(shù),如改變串口的波特率、字符大小等,可通過(guò)POSIX標(biāo)準(zhǔn)終端接口,該接口被稱為termios,在系統(tǒng)頭文件中定義。它包括一個(gè)數(shù)據(jù)結(jié)構(gòu)和一系列操縱這些數(shù)據(jù)結(jié)構(gòu)的函數(shù)組成。有關(guān)串口的所有參數(shù)配置都保存在接口termios的結(jié)構(gòu)struct

termios中,該結(jié)構(gòu)定義如下:

struct

termios

{

tcflag_t

c_iflag;/*輸人模式標(biāo)志*/

tcflag_t

c_oflag;/*輸出模式標(biāo)志*/

tcflag_t

c_cflag;/*控制模式標(biāo)志*/

tcflag_t

c_lflag;/*本地模式標(biāo)志*/

cc_t

c_cc[NCCS];/*特殊控制字符*/

}

其中的c_iflag成員是用來(lái)控制輸入處理選項(xiàng)的,它影響到終端驅(qū)動(dòng)程序?qū)⑤斎氚l(fā)送給程序前是否對(duì)其進(jìn)行處理,及怎樣對(duì)其進(jìn)行處理。c_oflag成員是用來(lái)控制輸出數(shù)據(jù)的處理,并決定在發(fā)送輸出數(shù)據(jù)到顯示屏和其他輸出設(shè)備之前,終端驅(qū)動(dòng)程序是否以及如何來(lái)處理它們。c_cflag用于存放各種決定終端設(shè)備硬件特性的控制標(biāo)志,如串口的波特率、奇偶校驗(yàn)、停止位、數(shù)據(jù)位等。存放在c_lflag

中的本地模式標(biāo)志用來(lái)操縱串口如何處理輸入字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論