• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      無(wú)人機(jī)航攝拍照瞬間精確空間位置的確定

      2016-07-15 05:08:54曹鳳海宋占武喬永杰黃興琪
      測(cè)繪通報(bào) 2016年6期
      關(guān)鍵詞:飛控數(shù)組原始數(shù)據(jù)

      曹鳳海,宋占武,李 燕,劉 瀟,喬永杰,黃興琪

      (東方地球物理公司,河北 涿州 072750)

      ?

      無(wú)人機(jī)航攝拍照瞬間精確空間位置的確定

      曹鳳海,宋占武,李燕,劉瀟,喬永杰,黃興琪

      (東方地球物理公司,河北 涿州 072750)

      近年來(lái),隨著無(wú)人機(jī)與數(shù)碼相機(jī)技術(shù)的發(fā)展,無(wú)人機(jī)航測(cè)以其高效、精確、作業(yè)成本低、適用范圍廣等特點(diǎn),在地表復(fù)雜地區(qū)高分辨率影像的獲取方面優(yōu)勢(shì)明顯。無(wú)人機(jī)像片后續(xù)處理需要布設(shè)大量像控點(diǎn),工作量大,耗時(shí)耗力,特別是在地表復(fù)雜地區(qū)。如果通過(guò)衛(wèi)星定位的手段計(jì)算出拍照瞬間照片中心的精確位置和姿態(tài),則可以節(jié)省大量施工投入,有效提高生產(chǎn)效率。本文即利用PPK作業(yè)方式進(jìn)行航攝拍照瞬間空間位置的確定以進(jìn)行研究。

      一、硬件配置

      利用ARM板配GNSSOEM板組成簡(jiǎn)單的GNSS接收機(jī)。通過(guò)綜合測(cè)試并考慮體積方面的要求,建議GNSSOEM板采用Trimble公司的BD930板卡;為了適應(yīng)控制過(guò)程中的多線程操作,ARM板配WinCE操作系統(tǒng),要用兩個(gè)串口與GNSS差分板連接,其中一個(gè)記錄原始數(shù)據(jù),另一個(gè)輸出NMEA數(shù)據(jù)。

      二、整體設(shè)計(jì)

      系統(tǒng)整體設(shè)計(jì)思路為:在地面控制點(diǎn)架設(shè)基站持續(xù)接收GNSS定位數(shù)據(jù);空中(機(jī)載)ARM板持續(xù)記錄GNSS定位數(shù)據(jù),接收飛控拍照指令,收到飛控指令后控制相機(jī)拍照并記錄拍照的精確時(shí)刻;施工完成后,地面基站和空中GNSS數(shù)據(jù)聯(lián)合處理,計(jì)算出每個(gè)歷元(根據(jù)設(shè)置參數(shù)記錄,如果設(shè)置成5Hz,則每200ms一個(gè)歷元)的精確坐標(biāo),根據(jù)記錄的拍照精確時(shí)間內(nèi)插出每個(gè)拍照點(diǎn)的坐標(biāo)。本文只討論空中數(shù)據(jù)記錄和控制部分的幾個(gè)關(guān)鍵問(wèn)題的解決思路。

      三、空中數(shù)據(jù)記錄和控制部分的幾個(gè)關(guān)鍵問(wèn)題解決思路

      1. 精確時(shí)刻的確定

      GNSS差分板在鎖定衛(wèi)星后會(huì)通過(guò)一個(gè)針腳發(fā)送PPS信號(hào),將該針腳引到ARM板的“中斷”接口,通過(guò)監(jiān)控該脈沖的到來(lái)確定每秒開(kāi)始的精確時(shí)刻。

      為了應(yīng)用方便,在WinCE底層驅(qū)動(dòng)中,將“PPS到達(dá)”寫(xiě)成事件驅(qū)動(dòng),具體過(guò)程如下:

      1) 將與GNSS的PPS連接的針腳配置成“中斷模式”。

      2) 建立通知用戶(hù)事件,命名為“GPS1PPS”:

      g_hUserEvent=CreateEvent(NULL,FALSE,FALSE,_T("GPS1PPS"));

      其中,“g_hUserEvent”為用戶(hù)事件句柄。

      3) 建立中斷事件:

      g_hEINT3Event=CreateEvent(NULL,FALSE,FALSE,NULL);

      4) 初始化中斷事件:

      KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_IRQ,sizeof(UINT32), &g_SYSINTR,sizeof(UINT32),NULL);

      其中,“g_IRQ”是采用的中斷號(hào),在筆者的實(shí)際設(shè)計(jì)中,該針腳接到了“中斷3”,即“g_IRQ=IRQ_EINT3”。

      5) 建立中斷服務(wù)線程:

      hPPS=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadForEINT3,0,0,NULL);

      6) 服務(wù)線程函數(shù)實(shí)現(xiàn):

      DWORDWINAPIThreadForEINT3(void){

      DWORDdwResult;

      while(TRUE)

      {

      dwResult=WaitForSingleObject(g_hEINT3Event,INFINITE);

      SetEvent(g_hUserEvent);

      InterruptDone(g_SYSINTR);

      }

      return0;

      }

      該線程函數(shù)一直接收PPS信號(hào),當(dāng)PPS信號(hào)到達(dá)“中斷3”,該函數(shù)從驅(qū)動(dòng)層向應(yīng)用層產(chǎn)生事件報(bào)告。

      7) 應(yīng)用層捕獲PPS到達(dá)事件。建立線程,接收驅(qū)動(dòng)層發(fā)上來(lái)的“GPS1PPS”事件,該事件發(fā)生后,記錄該時(shí)刻:

      DWORDWINAPIGPS1PPSThread(LPVOIDlpParameter){

      HANDLEhGPS1PPSEvent=NULL;

      hGPS1PPSEvent=OpenEvent(EVENT_ALL_ACCESS,FALSE,TEXT("GPS1PPS"));

      while(1)

      {

      WaitForSingleObject(hGPS1PPSEvent,INFINITE);

      m_dPPSTick=GetTickCount64();

      }

      return1;

      }

      由于PPS只提供每秒開(kāi)始的精確時(shí)刻,要得到任意一時(shí)刻的精確時(shí)間,需要以PPS時(shí)刻為基礎(chǔ)加上到需要確定時(shí)刻的偏移值,該偏移值的確定需要用其他方式定時(shí)。為了應(yīng)用方便,筆者利用CPU距開(kāi)機(jī)以來(lái)的時(shí)間進(jìn)行相對(duì)定時(shí),即需要確定時(shí)刻的時(shí)間=PPS時(shí)刻+(需要確定時(shí)刻的CPU定時(shí)-PPS時(shí)刻的CPU定時(shí))。

      為了得到精確的CPU開(kāi)機(jī)以來(lái)的時(shí)間,重寫(xiě)“GetTickCount64()”函數(shù):

      doubleGetTickCount64(){

      staticLARGE_INTEGERTicksPerSecond= {0};

      LARGE_INTEGERTick;

      if(!TicksPerSecond.QuadPart)

      {

      QueryPerformanceFrequency(&TicksPerSecond);

      }

      QueryPerformanceCounter(&Tick);

      doubleRet= (double)Tick.QuadPart*1000.0/TicksPerSecond.QuadPart;

      returnRet;

      }

      該方法的實(shí)現(xiàn)思路為:首先獲得CPU時(shí)鐘到該時(shí)刻的震動(dòng)次數(shù),然后獲取CPU時(shí)鐘每秒鐘的震動(dòng)次數(shù)(震動(dòng)頻率),其比值即為開(kāi)機(jī)以來(lái)的秒數(shù),該方法定時(shí)精度很高。

      2. 捕獲飛控拍照指令信號(hào)

      飛控發(fā)送的拍照指令是一個(gè)閉合信號(hào)(短路信號(hào)),如果要捕捉到該信號(hào)并產(chǎn)生中斷事件,需要通過(guò)邏輯電路將閉合信號(hào)轉(zhuǎn)換成電平信號(hào),邏輯實(shí)現(xiàn)思路如下:

      如圖1所示,一般情況下DI_A與DI_B不閉合,Q1截止,XEINT2為高電平;當(dāng)DI_A與DI_B閉合時(shí)Q1導(dǎo)通,XEINT2由高電平變成低電平,即產(chǎn)生下降沿,發(fā)生中斷。當(dāng)DI_A與DI_B由閉合到斷開(kāi)后,Q1則從導(dǎo)通變?yōu)榻刂範(fàn)顟B(tài),XEINT2由低電平變成高電平,即上升沿,不產(chǎn)生中斷。

      閉合信號(hào)轉(zhuǎn)換為電平信號(hào)后,實(shí)現(xiàn)中斷的驅(qū)動(dòng)和應(yīng)用層事件的捕獲思路與處理PPS事件的道理相同,在筆者的實(shí)際設(shè)計(jì)中,該針腳接到了“中斷2”, 中斷觸發(fā)方式為下降沿觸發(fā)。應(yīng)用層接收到拍照信號(hào)后,由ARM板產(chǎn)生觸發(fā)相機(jī)拍照指令,并記錄拍照瞬間的精確時(shí)刻。

      圖1 實(shí)現(xiàn)原理

      3. GNSS原始數(shù)據(jù)記錄

      本文采用“雙緩沖”的方式接收和記錄GNSS原始數(shù)據(jù),具體實(shí)現(xiàn)思路如下:

      1) 定義兩個(gè)byte類(lèi)數(shù)組,根據(jù)實(shí)現(xiàn)情況定義大小,可以是64KB或更大。

      2) 用一個(gè)變量記錄當(dāng)前工作于哪個(gè)數(shù)組,另外用兩個(gè)變量記錄兩個(gè)byte數(shù)組存儲(chǔ)數(shù)據(jù)長(zhǎng)度。

      3) 當(dāng)接收到GNSS原始數(shù)據(jù),將其存儲(chǔ)到當(dāng)前工作byte數(shù)組,如果當(dāng)前數(shù)組已保存部分?jǐn)?shù)據(jù),則將新數(shù)據(jù)連接到原有數(shù)據(jù)后面,為了提高數(shù)據(jù)轉(zhuǎn)存效率,用“memcpy”內(nèi)存拷貝的方法。

      4) 當(dāng)當(dāng)前工作byte數(shù)組存儲(chǔ)數(shù)據(jù)達(dá)到指定的長(zhǎng)度,則將當(dāng)前工作byte數(shù)組指定為另一個(gè)byte數(shù)組,同時(shí)啟動(dòng)一個(gè)新的線程將達(dá)到指定長(zhǎng)度的數(shù)據(jù)寫(xiě)到Flash。

      5) 兩個(gè)數(shù)組交替進(jìn)行存儲(chǔ)數(shù)據(jù),配合多線程寫(xiě)Flash方式,接收GNSS原始數(shù)據(jù)和記錄兩不耽誤,達(dá)到“雙緩沖”的效果。

      4. 各線程的優(yōu)先級(jí)

      根據(jù)實(shí)際工作要求,對(duì)各線程優(yōu)先級(jí)作以下設(shè)計(jì):

      1)PPS線程優(yōu)先線設(shè)為“高”。

      2) 捕獲飛控拍照指令信號(hào)線程優(yōu)先級(jí)設(shè)為“一般”。

      3)GNSS原始數(shù)據(jù)記錄線程優(yōu)先級(jí)設(shè)置為“一般”。

      四、結(jié)束語(yǔ)

      在無(wú)人機(jī)低空航拍技術(shù)迅速發(fā)展的今天,如何提高作業(yè)效率、精度和質(zhì)量是行業(yè)內(nèi)一直追求的目標(biāo),本文從實(shí)用的角度闡述了利用PPK技術(shù)解決確定相機(jī)在空中拍照瞬間空間位置的思路。

      本文只對(duì)該方法實(shí)現(xiàn)思路的幾個(gè)關(guān)鍵問(wèn)題進(jìn)行了描述,且只涉及了原始數(shù)據(jù)采集部分,如果要實(shí)現(xiàn)產(chǎn)品化的應(yīng)用,還需要諸多的輔助技術(shù)、空中姿態(tài)數(shù)據(jù)的獲取及后處理應(yīng)用相關(guān)的開(kāi)發(fā)。

      (本專(zhuān)欄由天寶測(cè)量部和本刊編輯部共同主辦)

      天寶測(cè)繪解決方案專(zhuān)欄

      猜你喜歡
      飛控數(shù)組原始數(shù)據(jù)
      GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
      JAVA稀疏矩陣算法
      受特定變化趨勢(shì)限制的傳感器數(shù)據(jù)處理方法研究
      JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
      民用飛機(jī)飛控通電自檢測(cè)安全性研究
      無(wú)人機(jī)飛控軟件架構(gòu)設(shè)計(jì)初探
      02 飛控技術(shù)與機(jī)場(chǎng)安保引關(guān)注
      全新Mentor DRS360 平臺(tái)借助集中式原始數(shù)據(jù)融合及直接實(shí)時(shí)傳感技術(shù)實(shí)現(xiàn)5 級(jí)自動(dòng)駕駛
      飛控系統(tǒng)故障告警實(shí)時(shí)監(jiān)控軟件的設(shè)計(jì)與實(shí)現(xiàn)
      尋找勾股數(shù)組的歷程
      南开区| 屯门区| 滕州市| 开远市| 和田市| 胶南市| 嘉义县| 黑龙江省| 婺源县| 杭州市| 峡江县| 焦作市| 石城县| 惠州市| 潮州市| 犍为县| 金堂县| 镇远县| 岳池县| 左贡县| 九寨沟县| 襄樊市| 万载县| 奉贤区| 彭阳县| 简阳市| 营山县| 依安县| 东光县| 山阳县| 信宜市| 延寿县| 桃江县| 浙江省| 志丹县| 泸溪县| 勃利县| 莎车县| 政和县| 广西| 项城市|