国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在Android內(nèi)核層實(shí)現(xiàn)GNSS/INS組合導(dǎo)航的方法

      文檔序號(hào):8282076閱讀:2362來源:國知局
      一種在Android內(nèi)核層實(shí)現(xiàn)GNSS/INS組合導(dǎo)航的方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及衛(wèi)星定位導(dǎo)航領(lǐng)域,尤其涉及在車聯(lián)網(wǎng)、車載Android系統(tǒng)中使用 GNSS/INS組合導(dǎo)航定位技術(shù)的方法。
      【背景技術(shù)】
      [0002] 智能操作系統(tǒng)與車輛結(jié)合是發(fā)展趨勢。蘋果公司推出了 Carplay, Google公司推 出了 Android Auto等都是典型代表。這中趨勢代表著智能車聯(lián)網(wǎng)的發(fā)展趨勢。作為車載 操作系統(tǒng),應(yīng)該滿足兩個(gè)方面的需求:①向下支持車輛或車載電子的各種專用硬件;②向 上能夠支持第三方開發(fā)者,很容易地去調(diào)用各類車載導(dǎo)航、車輛主動(dòng)安全等算法;
      [0003] 高精度衛(wèi)星導(dǎo)航定位是利用地面增強(qiáng)系統(tǒng),提高衛(wèi)星定位的精度。目前普通衛(wèi)星 導(dǎo)航的定位精度只能在10-20米,通過高精度定位算法可以將定位精度提高到亞米級(jí),從 而可以掌握車輛變道、超速等行為,實(shí)現(xiàn)車輛主動(dòng)安全控制,是車聯(lián)網(wǎng)亟需的技術(shù);慣性導(dǎo) 航技術(shù)是一種不依賴于外部信息、也不向外部輻射能量的自主式導(dǎo)航系統(tǒng)。其通過測量載 體在慣性參考系的加速度,將它對(duì)時(shí)間進(jìn)行積分,且把它變換到導(dǎo)航坐標(biāo)系中,就能夠得到 在導(dǎo)航坐標(biāo)系中的速度、偏航角和位置等信息。二者結(jié)合,即成為高精度組合導(dǎo)航,是車輛 領(lǐng)域非常重要的算法。目前這一算法還沒有和車載操作系統(tǒng)結(jié)合,因此廣大第三方開發(fā)者 很難使用。
      [0004] 目前實(shí)施組合導(dǎo)航的難度較大,一般第三方App開發(fā)者難以使用。因此本發(fā)明的 目的即:(I)Android第三方應(yīng)用開發(fā)者調(diào)用原有標(biāo)準(zhǔn)GNSS普通定位API,即可獲得高精度 組合導(dǎo)航定位結(jié)果;(2)現(xiàn)有Android第三方應(yīng)用程序無需進(jìn)行修改,即可直接獲得高精度 組合導(dǎo)航定位結(jié)果;(3)調(diào)用本方法在Java框架層新增加的API,在Java應(yīng)用層獲得更為 準(zhǔn)確的車載姿態(tài)信息(航向角、俯仰角、橫滾角等)。這些信息是車輛App應(yīng)用開發(fā)者很需 要的。

      【發(fā)明內(nèi)容】

      [0005] 本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:
      [0006] -種在Android內(nèi)核層實(shí)現(xiàn)GNSS/INS組合導(dǎo)航的方法,其特征在于,包括:
      [0007] -個(gè)增加跨硬件HAL的傳感器數(shù)據(jù)訪問代理模塊的步驟:基于Android操作系統(tǒng) 公開架構(gòu),通過修改標(biāo)準(zhǔn)Android系統(tǒng)的GPS HAL內(nèi)核及SensorHAL內(nèi)核,實(shí)現(xiàn)Android底 層的組合導(dǎo)航算法,并擴(kuò)展了 Android系統(tǒng)的GPS接口,包括:
      [0008] -個(gè)增加接口函數(shù)的步驟:配合傳感器數(shù)據(jù)訪問代理模塊工作,增加的接口函數(shù) 是在標(biāo)準(zhǔn)Android系統(tǒng)中從Java本地調(diào)用層開始擴(kuò)充和修改,以實(shí)現(xiàn)數(shù)據(jù)在HAL內(nèi)核、 Linux內(nèi)核驅(qū)動(dòng)以及傳感器數(shù)據(jù)訪問代理模塊之間的交互;其中,接口函數(shù)具體包括:
      [0009] 接 口函數(shù)一:在 hardware/libhardware/include/hardware/gps. h 中,添加 一組 IMUGpsInterface 接口 函數(shù),由標(biāo)準(zhǔn) Andorid 內(nèi)核中 GpsInterface 接口的 get_ extensionO函數(shù)引出,用以滿足組合導(dǎo)航定位中的相關(guān)設(shè)置(如傳感器的類型、傳感器的 米樣率等)需求;在標(biāo)準(zhǔn)Andorid內(nèi)核中GpsInterface接口的set_position_mode ()中, 擴(kuò)展了 GPS_POSITION_MODE_MU。
      [0010] 接口函數(shù)二:在GPS應(yīng)用框架層的JNI中也相應(yīng)擴(kuò)展相關(guān)接口函數(shù),
      [0011] 在:
      [0012] frameworks/base / services / jni/ com_andro id_server_location_ GpsLocationProvider.cpp 中,添加對(duì)應(yīng)于 IMUGpsInterface 接口的函數(shù)供 GpsLocationProvider 調(diào)用,
      [0013] 在:
      [0014] frameworks/base/ services/ java/ com/android/ server/location/ GpsLocationProvider. java 中,添加 native 函數(shù)來調(diào)用 JNI 中的 IMUGpsInterface 接口 函數(shù),在GpsLocationProvider添加與GPS HAL層相對(duì)應(yīng)的定位模式GPS_P0SITI0N_M0DE_ MU,根據(jù)系統(tǒng)設(shè)置中的設(shè)置將用戶選擇的定位模式傳遞到HAL層。
      [0015] 在上述的一種在Android內(nèi)核層實(shí)現(xiàn)GNSS/INS組合導(dǎo)航的方法,重新實(shí)現(xiàn)標(biāo)準(zhǔn) Android的Sensor HAL內(nèi)核中的相關(guān)接口和數(shù)據(jù)訪問函數(shù),使其通過新設(shè)置的傳感器數(shù)據(jù) 代理(Sensor Data Agent, SDA)與慣性傳感器硬件進(jìn)行交互;擴(kuò)展標(biāo)準(zhǔn)Android的GPS HAL 內(nèi)核,使其也能夠通過SDA與慣性傳感器硬件進(jìn)行交互。通過SDA,可以將GNSS硬件數(shù)據(jù) 與Sensor硬件數(shù)據(jù)引導(dǎo)到任意一個(gè)HAL內(nèi)核中,從而實(shí)現(xiàn)組合導(dǎo)航算法。具體包括對(duì)標(biāo)準(zhǔn) Android的Sensor HAL和GPS HAL進(jìn)行修改的過程:
      [0016] 過程一:對(duì)標(biāo)準(zhǔn)Android的Sensor HAL進(jìn)行修改,將標(biāo)準(zhǔn)Android中各種慣性傳 感器統(tǒng)一為的SensorBase模塊定義為IMUProxySensor,由SensorBase派生;從面向應(yīng)用 程序的SensorService基本服務(wù)到傳感器硬件驅(qū)動(dòng)的調(diào)用邏輯如下:
      [0017] 調(diào)用I :Sensor應(yīng)用框架層的SensorService從Sensor HAL驅(qū)動(dòng)文件加載獲取 sensor_poll_device_t 后,會(huì)初始化 IMUProxySensor。在初始化 IMUProxySensor 時(shí),通過 socket連接到SDA模塊上;
      [0018] 調(diào)用 2 :SensorService 通過 sensor_moudle_t 提供的 getSensorList 函數(shù)來獲取 Sensor HAL驅(qū)動(dòng)支持的傳感器列表。頂U(kuò)ProxySensor向SDA模塊發(fā)送SDA_GET_SENSOR_ LIST消息,SDA模塊調(diào)用內(nèi)部數(shù)據(jù)讀取模塊的getSensorList ()接口獲取IMUSensor支持 的傳感器列表并通過SDA_SENSOR_LIST消息返回給IMUProxySensor ;
      [0019] 調(diào)用3:當(dāng)應(yīng)用程序向SensorService請(qǐng)求慣性傳感器數(shù)據(jù)的時(shí)候, SensorService 通過調(diào)用 IMUProxySensor 的 setDelayO 和 enable ()接口 設(shè)置需要打開 傳感器及對(duì)應(yīng)的采樣率。頂U(kuò)ProxySensor發(fā)送SDA_SENSOR_LIST以及SDA_ACTIVE消息給 SDA模塊,SDA模塊調(diào)用數(shù)據(jù)讀取模塊中IMUSensor的相應(yīng)接口將參數(shù)設(shè)置到慣性傳感器硬 件模塊中;
      [0020] 調(diào)用4 :SDA模塊通過數(shù)據(jù)讀取模塊讀取到IMU數(shù)據(jù)之后發(fā)送SDA_MESSAGE消息 給 IMUProxySensor,IMUProxySensor 將收到的消息中的 IMU 數(shù)據(jù)上傳給 SensorService, SensorService將結(jié)果提供給應(yīng)用程序。
      [0021] 過程二:對(duì)標(biāo)準(zhǔn)Android的GPS HAL實(shí)現(xiàn)方法所做的修改,GPS HAL層的MU模塊 訪問子層與SDA模塊的交互符合下述調(diào)用邏輯:
      [0022] 調(diào)用1 :在標(biāo)準(zhǔn)Andorid的GPS HAL中新增加一個(gè)"MU模塊訪問子層",其作用是 與SDA通信獲得慣性傳感器的數(shù)據(jù)。與之對(duì)應(yīng)的,是標(biāo)準(zhǔn)Andorid的GPS HAL內(nèi)核通常設(shè) 置有的"GNSS模塊訪問子層",用以獲得GNSS硬件數(shù)據(jù);
      [0023] 調(diào)用2 :根據(jù)標(biāo)準(zhǔn)Andorid的GPS HAL的通常實(shí)現(xiàn)方法,在初始化GPS HAL時(shí)候會(huì) 調(diào)用其基本接口 Gpslnterface: :init()(對(duì)應(yīng)本發(fā)明的實(shí)現(xiàn)稱為iwise_loc_int〇),本發(fā) 明在該接口函數(shù)的實(shí)現(xiàn)中增加對(duì)" MU模塊訪問子層"的初始化,并使其通過socket連接到 SDA模塊;
      [0024] 調(diào)用3 :在初始化GPS HAL時(shí),GpsLocationProvider從系統(tǒng)設(shè)置中獲取定位模式、 打開的傳感器、傳感器的采樣率及擴(kuò)展數(shù)據(jù),通過調(diào)用set_position_mode接口和本發(fā)明 添加的IMUGpsInterface中的一組接口將設(shè)置信息保存到組合導(dǎo)航定位實(shí)現(xiàn)子層的共享 數(shù)據(jù)iwise_data_t(見本發(fā)明權(quán)利要求點(diǎn)4中表18
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1