• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    在Android平臺(tái)上實(shí)現(xiàn)基于MEMUS傳感器的室內(nèi)定位軟件

    2015-10-21 18:43:14寧莉莎
    科技與企業(yè) 2015年16期
    關(guān)鍵詞:函數(shù)庫(kù)功能模塊航向

    寧莉莎

    引言

    常規(guī)的全球定位GPS[1]雖然能獲得平面控制點(diǎn)的高精度坐標(biāo),但是GPS的定位原理是空間的距離交匯,也就是利用空間分布的衛(wèi)星以及衛(wèi)星與地面點(diǎn)的距離交會(huì)得出地面點(diǎn)位置,對(duì)于室內(nèi)的定位目標(biāo),衛(wèi)星信號(hào)會(huì)被障礙物遮擋而暫時(shí)中斷造成衛(wèi)星信號(hào)失鎖,為了更精確的獲取一個(gè)人的行蹤,一款基于MEMUS傳感器的室內(nèi)定位軟件的出現(xiàn)有必要,這一款軟件能很好的彌補(bǔ)GPS由于失鎖而造成室內(nèi)不能精確定位,本文介紹了在Android的平臺(tái)上,基于MEMUS傳感器的室內(nèi)定位軟件。

    1、Android介紹

    Android系統(tǒng)的結(jié)構(gòu)框架可分為應(yīng)用程序?qū)?,?yīng)用程序框架層,系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。四個(gè)板塊在軟件中的作用如下:

    1)應(yīng)用程序?qū)樱篔ava代碼的編寫,數(shù)據(jù)的采集,軌跡的顯示。在應(yīng)用程序?qū)拥木帉憰r(shí)可以直接借用應(yīng)用程序框架層的所發(fā)布的代碼塊,進(jìn)行代碼的重寫,來(lái)編寫功能模塊。

    2)應(yīng)用程序框架層:其中有四大基本組件Service,Activity,Broadcast Receiver,Content Provider來(lái)為應(yīng)用程序?qū)哟a的編寫提供方便。

    3)系統(tǒng)運(yùn)行庫(kù):算法的實(shí)現(xiàn),數(shù)據(jù)的處理,處理完后只需要對(duì)系統(tǒng)運(yùn)行庫(kù)內(nèi)運(yùn)行的結(jié)果實(shí)行調(diào)用,將結(jié)果展示在手機(jī)上。

    4)Linux內(nèi)核層:Android是基于Linux 2.6的內(nèi)核開(kāi)發(fā)的。

    2、基于MEMUS傳感器的室內(nèi)定位軟件

    2.1系統(tǒng)框架設(shè)計(jì)

    基于MEMUS傳感器的室內(nèi)定位軟件相比于其他導(dǎo)航軟件優(yōu)點(diǎn)是維護(hù)成本較低,可擴(kuò)展性強(qiáng)[2]。軟件主要利用磁力計(jì)和加速度計(jì)組合的行人自主導(dǎo)航技術(shù)來(lái)收集航向數(shù)據(jù),用智能手機(jī)上的陀螺儀通過(guò)積分得到航向變化值,或利用加速度計(jì)傳感器接收的數(shù)據(jù)結(jié)合擴(kuò)展卡爾曼(EKF)濾波算法,根據(jù)加速度波形的周期性特征來(lái)進(jìn)行行人步態(tài)檢測(cè)和步長(zhǎng)估計(jì),最后把航向數(shù)據(jù)和行人行走距離運(yùn)用行人航跡推算(PDR)算法從而得到行人位置軌跡,并將數(shù)據(jù)在Android智能手機(jī)上復(fù)現(xiàn).

    算法包含四個(gè)核心步驟:找到航向,獲得步長(zhǎng),步態(tài)檢測(cè),位置確定。其中最基本的算法是PDR算法,PDR算法是一種已知最初位置的相對(duì)定位方法,通過(guò)行人行走的距離和方向來(lái)估計(jì)行人的位置。PDR算法的基本原理是假設(shè)初始位置為(x0,y0),測(cè)得航向θ和步長(zhǎng)d后,運(yùn)用公式2.1則可得到下一個(gè)位置的(x1,y1),依次類推,由此可得到最終位置 (xk,yk)。最后將坐標(biāo)點(diǎn)上的數(shù)據(jù)在應(yīng)用程序?qū)?,用相?duì)初始位置的坐標(biāo)顯示,在手機(jī)上描點(diǎn)。

    (2.1)

    2.2數(shù)據(jù)獲取

    在手機(jī)上獲取數(shù)據(jù)并顯現(xiàn),可將它分為功能模塊和外觀模塊,外觀模塊各按鈕控件的選擇都是在Manifest.xml中進(jìn)行的,有圖像和音頻的選擇,圖形圖像則放在drawable這個(gè)抽象類中,在xml中對(duì)圖像進(jìn)行調(diào)用;將所需的音頻信息放入到raw這個(gè)類中,音頻信息直接在src類中使用。

    對(duì)于功能模塊,我們分為定義,數(shù)據(jù)的收集,處理和顯示板塊。數(shù)據(jù)的收集:設(shè)置sensormanager類,用于提供訪問(wèn)和監(jiān)聽(tīng)傳感器的方法,獲取sensor對(duì)象,使用sensorEvent類來(lái)創(chuàng)建一個(gè)傳感器事件對(duì)象,將x軸,y軸和z軸的加速度力(包括重力)放入到數(shù)組中,如下:

    sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE;

    AcceleormeterEventListener =new SensorEventListener() {

    @Override

    public void onSensorChanged(SensorEvent event) {

    // TODO Auto-generated method stub

    array_now[0] = event.values[0];

    array_now[1] = event.values[1];

    array_now[2] = event.values[2];

    magneticData = " "+array_now[0]+" "+array_now[1]+" "+array_now[2]+" ";}}

    同理設(shè)置監(jiān)聽(tīng)器將x軸,y軸,z軸測(cè)量的空氣的壓力加速度放入另三個(gè)數(shù)組,在功能模塊使用Android提供定位函數(shù)并導(dǎo)入地圖。具體過(guò)程是首先是在AndroidManifest.xml清單文件里需要加入ACCESS_FINE_LOCATION權(quán)限;使用LocationProvider對(duì)象進(jìn)行GPS定位,而使用Criteria對(duì)象來(lái)實(shí)現(xiàn)自定義定位功能,criteria.setAccuracy()來(lái)進(jìn)行精度的設(shè)置,criteria.setPowerRequired()設(shè)置電量消耗等級(jí);根據(jù)設(shè)置的Criteria對(duì)象,獲取最符合標(biāo)準(zhǔn)的provider對(duì)象,根據(jù)當(dāng)前provider獲取最近一次位置信息,設(shè)置每隔十秒更行一次。數(shù)據(jù)的處理和顯示:運(yùn)用BP網(wǎng)絡(luò)來(lái)學(xué)習(xí)和存儲(chǔ)大量的輸入-輸出映射模式[3],其主要作用是處理數(shù)組中所有的數(shù)據(jù);然后通過(guò)JNI來(lái)實(shí)現(xiàn)對(duì)特征值的處理,其中底層的算法都是寫在JNI中,JNI的作用主要是實(shí)現(xiàn)Java和C函數(shù)庫(kù)的通信,是一個(gè)本地編程接口。一個(gè)JNI接口和C函數(shù)庫(kù)的生成過(guò)程是:1用javah工具生成符合JNI規(guī)范的c語(yǔ)言頭文件,2編寫c/c++代碼,3編寫Android.mk文件,4用ndk工具編譯并生成.so文件。最后是保存并將結(jié)果輸出。

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

    整個(gè)軟件的數(shù)據(jù)流程走向是,在應(yīng)用程序?qū)诱{(diào)用函數(shù)獲取傳感器中接收的數(shù)據(jù),將數(shù)據(jù)傳輸?shù)紺函數(shù)庫(kù)中,經(jīng)過(guò)算法處理后從JNI中提取出運(yùn)行后的坐標(biāo)點(diǎn),最后將坐標(biāo)點(diǎn)等數(shù)據(jù)再次傳入到應(yīng)用程序?qū)硬@示。由于人們的主要活動(dòng)是在室內(nèi),所以以獲得人物軌跡航向的擴(kuò)展卡爾曼(EKF)濾波核心算法為軟件基礎(chǔ),以Android手機(jī)為硬件平臺(tái),基于MEMUS傳感器的室內(nèi)定位軟件有很大的發(fā)展前景。

    參考文獻(xiàn)

    [1]明峰,寶紅,三枝.GPS定位技術(shù)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2006.51-59.

    [2]許睿.行人導(dǎo)航系統(tǒng)算法研究與應(yīng)用實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2008.11-18.

    [3]馬斌良,黃玉美,史恩秀等.基于神經(jīng)網(wǎng)絡(luò)代數(shù)算法的電子羅盤的標(biāo)定[J].儀器儀表學(xué)報(bào),2008,29(11):2305-2308.

    猜你喜歡
    函數(shù)庫(kù)功能模塊航向
    SVM逆系統(tǒng)在航向廣義預(yù)測(cè)和控制中的應(yīng)用
    知坐標(biāo),明航向
    用于優(yōu)化雷達(dá)信號(hào)處理的VSIPL函數(shù)庫(kù)
    基于Python的開(kāi)源GIS應(yīng)用開(kāi)發(fā)
    Scratch求最值和平均值
    考慮幾何限制的航向道模式設(shè)計(jì)
    基于BB60C的IQ數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
    基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
    輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
    M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
    淮北市| 衡山县| 普兰店市| 文成县| 大姚县| 田阳县| 临颍县| 建水县| 浮山县| 平和县| 天台县| 卢氏县| 神池县| 鹤岗市| 巢湖市| 兰坪| 永福县| 高密市| 双辽市| 时尚| 娄底市| 乌鲁木齐市| 龙井市| 西藏| 循化| 垫江县| 威信县| 江源县| 仙桃市| 林芝县| 宣恩县| 大冶市| 中方县| 沁阳市| 石嘴山市| 宁强县| 涡阳县| 府谷县| 遂平县| 本溪| 叶城县|