[XMOVE自主設計的體感方案] 歷代版本系統介紹(一)X-MOVE1.0


 

編者注: X-MOVE是作者在業余時間於2010年6月份啟動的以運動傳感開發,算法和應用的平台,目前已經發展了三個版本,第四版的開發接近尾聲。發布在博客園僅為交流技術,不存在商業目的,作者保留一切權利。

 一 . 前言和懷舊-關於1.0

  XMOVE目前已經發展了四代,為了更好的讓大家了解它的發展歷程,本系列的博文將介紹XMOVE各代系統的特性,硬件特征和軟件。同時也能更好的總結系統中的不足。

    

  XMOVE1.0開發時間2010年6月-2010年8月。 

  XMOVE1.0是我在本科三年級准備考研的六月份着手開發的。當時的我郁悶於考研繁重的復習,想找些樂子。在經過激烈的思想斗爭和聽取同學意見后,我還是決定開始這個項目——也是我在本科期間完成的第三個大型嵌入式開發項目。下這個決心是需要勇氣的,因為考研需要心無旁騖,我原以為用一點點課余時間就可以,沒想到,一做就是滿當當的兩年。現在開發體感的人不計其數,但在2010年上半年,我這樣的開發者絕對是少數,可是,當年沒有抓住機會啊。

  大三期末考試一完,我就瘋狂的從淘寶上買東西,選器件,創造了一天拿五次快遞的記錄。於是,一個拉桿箱里放着烙鐵芯片傳感器各種工具,就那么浩浩盪盪的回家了,考研?等來了再說!於是,在家里,那段時間我沒有打一分鍾游戲,看一部電影,穿着小短褲在燥熱的七月份焊板子調代碼。傳感器是MMA7455,那叫一個不好焊,不論怎樣都不通,最后還是找家鄉一個修手機的大哥幫忙解決了。

  那是一個非常燥熱的晚上,我弄到十二點鍾,可是SPI總線的數據還是讀不出來!應該不是硬件問題,於是仔細的檢查了代碼發現了問題,可是這時調試器不能用了。糾結了半天,還是先洗洗睡了。一晚上都是各種奇怪的夢,第二天6點起床,上電,傳感器的值很好的讀出來了!哈哈,現在想起來都非常開心。這種快樂,比吃了一頓大餐強太多了。 接下來就是外圍工作,開發上位機界面,寫無線協議,研究算法,都算比較順利。

  准確的講,XMOVE1.0的開發時間僅僅從7月到8月一個月時間。它的出生代表了我的不成熟,所有的開發工具和方法都非常山寨,好在自己在嵌入式開發上已經有了豐富的經驗。PCB做的有火柴盒那么大,接收器用的是以前買來的巨大的MSP430開發板,上位機軟件使用MFC開發:連圖表控件都是我用GDI畫圖一點點描出來的,整個程序只有一個主文件,超多的流程跳轉和奇怪的注釋,不過,這也是當年的獨特記憶,有無比興奮的短暫暑假,有搞不出來到城南吃的夜宵,不是么?

  下圖是XMOVE1.0的傳感器硬件,很山寨吧?

 

  下面這張圖記錄了當時的開發場景:

   下面是我當時制作的宣傳折頁

  內頁:

 下面,我將當時的設計文檔的多數部分介紹給大家,同時描述它的主要系統架構和實現細節。

 

二. 背景和問題的提出

(一)研究背景和問題提出

  現代技術的發展,使得生產力水平大大提高,以往眾多必須由人參與的過程可由速度更快,精度更高且不知疲倦的機器替代。而人,也希望更方便的與機器進行交流。以下是一些案例:

  案例1. 當前,病人(尤其是精神病人)需要全天候監護,但往往醫院的人力資源有限,不可能做到這點。醫療系統迫切的希望找到一種渠道,不僅可方便的監控病人的心跳,血壓等數據,更希望計算機可掌握病人當前在做什么,處於何地。這種需求,對嬰幼兒監控,更是必要的。

  案例2運動員的運動過程,到現在為止多數還是由教練員進行評定和考核。但是人的反應速度是有限的,人很難掌握運動過程中的很多細節:如瞬時加速度,速度等運動學特征及可數學推導出的力學細節。

  案例3:計算機科學發展迅速,計算機處理性能和存儲容量有了巨大的進步。但人機交互方式依然僅限於普通的鍵盤鼠標。這對於一些殘障人士是不利的,而更直觀的動作控制可大幅度的提高人機交互的速率和有效性。

  因此,解決上述問題的關鍵,在於能找到一種方法對動作進行監控和分析的方法,使得以其為基礎的“動作監控”,“動作控制”成為可能。

  這種動作監控系統應具有以下基本特征:

1.    具有重量輕,封裝小,使其對宿主的影響減到最低程度。

2.    盡可能詳細准確的獲得運動數據。(這部分將在以后部分詳細介紹)

3.    低成本,面向大眾

4.    可編程器件,具備高速處理特征和升級特征,而不限於已固定的方法。

5.    整套的軟硬件系統,實現方便的操作和高可靠性。

(二)核心問題和解決思路

  

  五大需求中,電子技術似乎給出了最好的回答。當前的電子技術,使得小型封裝,低功耗,低成本的信息高速處理成為可能。而當今的射頻技術,更將系統脫離了線纜的限制,可方便的掛載於宿主身上。而核心問題,即整個系統的關鍵,在於如何盡可能詳盡的獲得“運動數據”。

  下面,我們以人體為討論對象,來分析這個問題。

  人體動作的表現,主要是四肢動作。獲得四肢的動作,基本相當於獲得了人動作的核心數據。但不能將四肢看成四個質點,因為四肢會有平移運動,更有轉動等。傳感節點掛載在手腕和腳腕這些容易活動的部位,可更好的掌握當前的運動信息。因此,各個節點的運動維度是6維,包含了三個絕對位移坐標軸,三個角度轉動坐標軸。因此,需要采用動作傳感器獲得這六維的運動數據。而所謂的動作傳感器,就是“微機電傳感器”——MEMS.

  

獲得運動數據的關鍵

  MEMS(Micro Electro Mechanical Systems)本質上是一種把微型機械元件(如傳感器、制動器等)與電子電路集成在同一顆芯片上的半導體技術。一般芯片只是利用了硅半導體的電氣特性,而 MEMS 則利用了芯片的電氣和機械兩種特性。

  那么,MEMS傳感器的工作原理是什么?在 MEMS 傳感器芯片內,三軸(X、Y、Z)上的運動或傾斜會引起活動硅結構的少量位移,造成活動和固定元器件之間的電容發生變化。在同一封裝上的接口芯片把微小的電容變化轉變成與運動成比例的校准模擬電壓。為確保可重復使用的性能,接口芯片允許出廠后微調,因此,無需對終端產品的生產線進行調整。通常的模擬量采樣的方式有兩種:靜電電容式和壓電電阻式的更有優勢,而前者在低功耗方面更具優勢,消耗電流更低。硅電容加速傳感器的元件是由單晶硅和玻璃做成的。這種設計能確保相對於時間和溫度的例外的可靠性、准確性和穩定性。通常一個 1g 的元件能承受多於 40 000g 的加速度 (1g = 地球自由引力的加速度) 。

1.  三軸加速度傳感器

  加速度傳感器的原理,在於利用芯片中微機電結構,利用間接測量由於動作變化產生的電容改變,來獲得加速度值。當然,不同的傳感器,原理不同。數字式傳感器與模擬的相比,是在芯片中內置和AD轉換器,數字式芯片對外界電路干擾不敏感,但價格稍貴。加速度計的主要用途是測量加速度值,當然,利用算法,可以測得速度,位移,絕對傾角等物理信息。

2.三軸陀螺儀

  提供運動處理能力的另一關鍵技術,就是傳統上用於測量絕對旋轉速率的陀螺儀。振動質量陀螺儀利用科氏加速度在一個結構的兩個共振模式之間產生的能量傳遞,科氏加速度出現在旋轉參照坐標系中,並與旋轉角速度成正比,參見圖1。陀螺儀通過測量科氏加速度來獲得角速度(Ω)。
  

3.  磁場計

  為校正加速度計的旋轉誤差,一些廠商使用磁力計來完成傳統上用陀螺儀實現的傳感功能。這些器件確定手持設備相對於磁北方向的旋轉運動,並通常用於調整地圖的顯示方向以使之與用戶當前面對的方向相對應。磁力計無力實現快速旋轉測量(大於5赫茲),而且,在存在外部磁場時(如存在揚聲器、音頻耳機),甚至當設備周圍存在鐵磁材料時,數據易於受到污染。

4. GPS

  對於大尺度的速度和位移監測,由於以上的慣性坐標系統會因為誤差漂移問題產生累積錯誤,故在條件允許的情況下應加入GPS(全球衛星定位)獲得人體的位置和速度數據。它在人體監控方面是非常重要的,但對人機交互方面,卻不是必須的。

  雖然加速度計可為簡單的方位和傾斜應用提供基本的運動傳感,但在光學圖像穩定(OIS)等更復雜的應用中,卻存在一些影響加速度計操作和性能的限制。加速度計只能提供線性和向心加速度、重力和振動的總和。需要增加陀螺儀才能提取加速度的線性運動信息的某個分量。在運動處理方案中,陀螺儀必須精確地測量角速度旋轉運動。

  要滿足最終用戶的功能預期,需要獲得三軸旋轉運動和三軸直線運動的信息。一個常見的誤解是,要使手持系統具有運動處理功能,工程師需要加入陀螺儀或加速度計,即只需二選一。確實,已經有業界分析師提出這樣的問題,“哪一個將在運動傳感器競賽中獲勝?”

  


    事實上,要准確地描述線性和旋轉運動,需要設計者同時用到陀螺儀和加速度計。單純使用陀螺儀的方案可用於需要高分辨率和快速反應的旋轉檢測;單純使用加速度計的方案可用於有固定的重力參考坐標系、存在線性或傾斜運動但旋轉運動被限制在一定范圍內的應用。但同時處理直線運動和旋轉運動時,就需要使用陀螺儀和加速度計的方案。
    在跟蹤傾斜和旋轉運動時,加速度計在設備不運動時提供更准確的加速度測量,而MEMS陀螺儀在設備運動時測量精度更高。如圖2所示,傳感器融合算法通常用來把加速度計和陀螺儀的數據相結合,從而在較寬的頻帶內實現准確的旋轉測量。

  

我們需要的是怎樣的傳感器

  經過如上的分析,我們認識到,加速度傳感器在運動監測中非常關鍵的,但在低速度下可提供較為詳細的數據,而陀螺儀的使用,可大幅度提高在快速運動中的精度。磁場計可方便的標正地磁方向,GPS導航系統可在大尺度下實現速度,位置的測量。以下是各傳感器的情況分析:

 

  可以看到,傳感器使用的越多,其測量性能會更好,但也會不可避免的帶來額外問題。如成本大幅度上升,功耗大大提高,軟件復雜度不可估計,主CPU處理性能帶來瓶頸等問題。

  獲得人體運動的關鍵數據,一個節點是斷然不可能解決問題的,需要多節點組網。其設計對成本變得更加敏感,但也同樣有好處:我們不需要在每個節點都使用所有傳感器。這個問題將在下面進行分析。

組網節點的需求

  由前述分析,我們可得知,為了獲得人體的動作數據,需進行多節點組網。這就需要有如下的解決原則:

  •  不是所有節點都要使用全部傳感器,這樣可簡化系統,節約成本
  • 一主多從的星型網絡結構,中央節點將承擔數據通信,控制和計算作用
  •   盡可能將計算分布化,減小中央節點計算量,減小延遲。
  •   合適的節點數量

 

  經過仔細的考慮和分析,我們采用三個子節點,一個中央節點的處理原則。這樣可較為准確的獲得運動數據,同時不會將系統變得過分復雜。

  以下是各節點的設計方案和介紹:

  

  如左圖,顯示了各個子節點的系統結構,傳感器將數據收集並交給主控CPU,CPU將數據處理后發送給無線通信模組,並實時響應中央節點的信息。供電系統保證節點正常工作。 下圖為系統整體結構,各節點將數據壓縮返回中央節點,中央節點處理后發送給拓展總線,可以連接電腦或其他外部設備,實現多種控制和運用。

 

 

三.  器件選型和介紹

  (一)總體需求

  如上所述,我們需要低成本,低功耗的傳感器,也需要滿足低功耗的高速CPU,充分考慮到原型機的設計環境,選擇合適的,方便焊接的封裝模式也是重要的。

  器件應具備這些條件:

  • l  低電壓工作:3.3V核心電平
  • l  小型封裝,方便焊接,盡可能選用SOP等封裝,避免采用BGA封裝的芯片
  • l  良好的抗干擾特性,優先選用數字器件
  • l  具備低功耗模式

(二)主控CPU選擇

  MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16位超低功耗的混合信號處理器(Mixed Signal Processor)。稱之為混合信號處理器,主要是由於其針對實際應用需求,把許多模擬電路、數字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。 MSP430 系列單片機的電源電壓采用的是 1.8~3.6V 電壓。因而可使其在 1MHz 的時鍾條件下運行時芯片的電流會在 200~400uA 左右,時鍾關斷模式的最低功耗只有 0.1uA 。 

  本系統選用的CPU是MSP430F169, MSP430F1xx 基於閃存的 MCU 提供 1.8 伏至 3.6 伏工作電壓、高達 60kB 的閃存/ROM 和 8 MIP(帶有 FLL + SVS),利用鎖相環技術(FLL),將其頻率鎖定在16MHz。正常工作電流1毫安。

  豐富的片內外設包含了ADC和DAC,可方便的對傳感器傳遞的模擬電壓進行分析和采集。同時具備低功耗模式,切換自如。包含了硬件的SPI/I2C總線,和RS232串口。

  具備低成本特性,單樣片價格在50元,大批量采購可獲得更低的成本。

  

(三)加速度傳感器MMA7455L

  本設計采用了飛思卡爾MMA7455方案,融合了MMA7455L 的I2C 和SPI2 種接口模式,MMA7455L 是XYZ 軸(±2g, ±4g, ±8g)三軸加速度傳感器[注:1g=9.807m/s2]。可以實現基於運動的功能,如傾斜滾動、游戲控制、按鍵靜音和手持終端的自由落體硬盤驅動保護,門限檢測和點擊檢測功能等,具有更高的封裝高度,但價格卻更低。提供I2C和SPI接口,方便與MCU的通訊,,此非常適用於手機或個人設備中的運動應用,包括圖像穩定、文本滾動和移動撥號。 

  

  它是全球最薄的三軸加速度傳感器,I2C總線需外接上拉電阻,因此本系統采用了SPI方式將其接入。成本低可低至每片20元,數字接口方便使用。

(四)GPS導航模組

    GPS導航模組選用的是HOLUX 公司的GR-87系列GPS模塊,它使用了SiRF star III解決方案,內置了ARM7處理器和1MB的SRAM,具有低功耗,搜星速度快的特點,利用RS232方式接入系統。

  

(五)電源供應  

      考慮到該系統是為手持移動設計的,除了在軟件方面盡可能節約電能以外,選用合適的穩定電源是必須的,故系統選用了鋰電池供電,設計了穩定的5V轉3.3V穩壓芯片和RC濾波電路,為系統提供純凈的3.3V核心電壓。使用USB口充電,盡可能的考慮到了充電的方便性。

   另外,一路狀態指示燈和開關也是應當的。

         電源具有如下特征:

  • 3.7V,330MAH容量
  • l  支持過沖,過放保護
  • l  充電限制電壓5V
  • l  具備狀態指示燈,以及一路電源硬件開關。

 

四.  硬件設計介紹

(一)子節點介紹

  上圖即是已完成的原型機。為了盡可能減小對使用者的影響,本設計采用了小型化的封裝。使得其電路尺寸達到了45*24*13mm,重量不足22g(含電池).可方便的掛載於人體的手腕和腳踝上,可靠方便,實用美觀。

  實例圖給出了系統的佩戴方式。

  系統外形參數:

    長,寬,高:50*28*13mm (封裝尺寸,含外殼)

    質量(含電池):21.2g

      (不含電池):9.8g

    節點數量:3個。分別掛載於兩個手腕和右腳踝上。

  

  

  節點性能指標

(1)        動作檢測性能:

  2G模式下最高1/64G精度,8G模式下最高1/32G精度。最大承受5000G沖擊。

  算法模擬了一個精度為3度的傾角測試儀。

(2)        無線通信性能

  空曠室外最遠距離:50m。

  室內直線最遠距離:80m

  測試表明,最遠距離下系統丟包嚴重,為提高系統性能,並未設計反饋重傳機制。遠距離下會導致控制動作不連續,因此合理的通信距離為15m之內且盡量避開障礙物。

(3)        電源管理性能:

  3.7V,330mAH鋰電池模組,系統設計了過載和過放保護。充電時間為2小時。可不間斷運行48小時以上,低功耗模式待機時間理論值為1個月。快速充電特性:5分鍾充電可供半小時以上的正常使用。

  由於各工作模式系統狀態不同,因此無法給出詳細的工作功耗,在3.3v電平下,系統功耗約在8mA左右(理論平均值)。但實際上,大部分的電流消耗在了無線模塊以及LED指示燈上。

  

(二)中央節點硬件成品和結構

中央節點是整體系統中非常重要的一環,它需要接收,處理數據,並向電腦發送控制和監視信號。同時還要響應電腦端的信號,發送給下位機使其改變工作模式。

   整個系統對中央節點性能要求很高,因此選用了處理能力更為強大的MSP430F449,將其倍頻到最快速度,由於直接采用USB供電,故不需考慮省電問題。

1.   中央節點結構框圖

注意:由於開發時間限制,中央節點的主控CPU電路板不是作者設計的。僅為接口齊全方便而使用之。這也造成了中央節點體積較為臃腫的問題。

  

2. USB-RS232橋接器設計方案

  作者對於串口編程較為熟悉,自帶USB鏈路的控制芯片會帶來眾多不確定性,因此本設計采用了專門的RS232轉USB橋接器CH340T芯片進行數據轉在電腦端可被識別為一路硬件串口。可自適應波特率,性能優異。它直接將CPU產生的3.3V串口信號轉換為USB鏈路數據。

五.軟件框架結構

(一)總體軟件結構

    系統軟件分為三個部分,子節點軟件,中央節點軟件和上位機終端軟件,缺一不可。其中,子節點和中央節點涉及嵌入式軟件編程,采用了IAR系列編譯軟件將其編譯至MSP430。其細節請查閱相關資料。

1.子節點軟件部分

  如圖所示,子節點的運行模式較為簡單,系統控制單元管理着工作模式和數據處理算法的選擇,主任務采集數據並處理后,將有用的信息通過射頻方式發送出去。

  

  子節點的工作流程,通過定時器獲得准確的定時,通過中斷方式采集和處理數據,每次完成數據處理和發送后,再次檢查工作狀態。若工作狀態由於中央節點的控制而改變,則重新寫入配置選項而繼續處理。  

2.    中央節點軟件部分

  

  中央節點的軟件結構和子節點有所區別,其接受無線模組的數據,進行數據處理,然后將其發送到電腦端,這包含了串行數據協議和動作感應協議。

3.    電腦監控終端的軟件框架

  電腦監控終端采用了MFC結構編制,其軟件編譯環為Visual C++ 6.0,串口編程采用了MSCOMM控件。使用了多種控件實現了復雜的功能。其使用和介紹請參考《使用說明》,程序編制請參考MFC相關書籍。此處不再贅述。

  

五.    軟件核心算法

(一)加速度傳感器相關

        加速度傳感器MMA7455L支持2G,4G,8G加速度模式檢測,脈動檢測模式和自由落體檢測。也包括休眠功能。它們的主要特點如下表:下面將對幾類核心算法和問題進行分析。

工作模式

工作特點

適用范圍

案例

2G檢測

三軸2G量程,1/64G精度

靜態傾角測試儀

低速動作檢測

四肢傾斜角度測量

手勢動作

4G檢測

三軸4G量程,1/32G精度

高速人體運動檢測

快速出拳,快速跳躍

8G檢測

三軸8G量程,1/32G精度

高速機械運動檢測

(不適合人體運動)

碰撞,擊打

脈動檢測

中斷輸出

拍打檢測

鼠標單雙擊運用

門限和自由落體檢測

中斷輸出,自由落體時所有值為0

硬盤保護應用等

(不適合人體運動)

休眠模式

低功耗

休眠時適用

不工作休眠

1.   2G模式下的傾角計算算法

  傾角檢測是一項最為簡單有效的功能,它可在靜止情況下獲得很准確的二維傾角值。這在動作檢測中相當常用。下面具體討論它的實現算法。

 在靜止情況下,可讀取當前X,Y軸的加速度值,則這兩個加速度的平方和可為:

        再將上面的計算結果與Z軸上的加速度值做正切運算,即可求出傾角:

   

2.   手勢動作檢測

   手勢動作檢測的主要原理是利用采集的加速度值與存儲器中對應的動作進行曲線擬合,以獲得對當前動作的判斷。但由於CPU本身的處理性能限制以及對判斷准確性的要求,不可能也沒有必要提取其全部信息進行分析,更多的是將其門限化,獲得關鍵數據。

它可檢測的動作類型有:上,下,左,右,擊打,畫圓和畫十字。

         以下是采用監控終端對不同的動作的加速度曲線進行的記錄。

  

  

 

  下面,我們將向上運動作為具體案例,來分析算法。此時,我們將注意力放在Z軸上(鉛垂軸),比較方便進行數據處理。

       如下圖,向上運動分為兩個部分,一是上升部分,另外是下降部分。曲線圖中加速度曲線是理想狀態下的加速度值,數字對應點反應了加速度的變化。而速度曲線則是加速度的積分,此處為了說明問題,不強求曲線的絕對准確性。

         1-3點:速度從0改變至負最大,加速度是負的,加速度在點3值為0。

         3-4點:速度從負值變為正值,加速度在點4從正變為0。

  4-1點:速度從正變為0,加速度在點1從負變為0。

  然而,實際采集的加速度曲線並不完美,它有各種毛刺和突變現象,且到現在為止,作者都沒有找到一種合適的方法進行曲線擬合。但是,另一種解決辦法就是右圖所示的思路。它將曲線進行門限判斷,成為方波,則加速度值僅需表示為0,1,-1三種情況。但三個加速度值不容易存儲和處理,因此做以下變換:

  

原加速度

編碼為

+1

1,0

0

0,0

-1

1,0

  這樣,每個手勢都能轉換為8位的加速度值,進而能編碼為16位的Unsigned int數據類型,與存儲的手勢動作矩陣相比較,就能獲得當前的手勢動作。

  但問題依然存在,檢測動作可能會出錯,這類似於通信中的“誤碼”問題。直接將不符合的剔除,會在實際使用中造成極大的錯判。實際證明,必須采用權重計算的方法,查找最適合的手勢動作。步驟如下:

(1)     存儲7種標准手勢動作到如下的權重矩陣中:

 

  SP是在內存中存儲的7種標准動作信息。P是總共的類型,該例中位7,I是單位

(2)     若向量Sq存儲了當前需要計算判斷的手勢,采用如下迭代算法:

 

 

     經過幾次連續迭代,V(n)存儲的值就是當前的動作手勢。

實踐證明,這樣的匹配算法是合適的,但不同的動作准確率不同,經測試表明,上下測試的准確率能達到80%以上,但畫圈和畫十字的准確率降低到60%,對於一般的動作感應而言已足夠。

        采用其他的更復雜的算法,如利用離散積分獲得速度和位移信息,也可以解決此類問題,但也會遇到更多的困難,此部分將在后面描述。

 

3. 離散積分算法

  • 理論回顧

         物理學的加速度積分可獲得速度,而速度積分可獲得位移信息。三軸加速度傳感器可實現加速度的測量,但通常3D檢測是困難的,因為你無法判斷絕對坐標系,且無法判斷g的分量,此時,就必須引入陀螺儀甚至磁場計來計算。但此部分,我們僅考慮二維情況,即前提是z軸保持水平,僅計算X,Y方向上速度和位移。這適用於鼠標的情況。

       上述兩式給出了加速度,速度和位移三者的關系。但是,數字系統中采集的數據都是離散的,而且采樣頻率也是一限制值,故積分運算時,將轉化為離散積分進行。而准確度和簡單有效的算法,則是需要討論的重點問題。

  •  低通濾波器

  由於信號有有一定的毛刺影響結果,為更好的提高精確度,應使數據過低通濾波器加以平滑。但階數不能太高,否則會造成對信號變化的不敏感

  • 精確定時

  離散積分中,必須嚴格的規定數據采樣時間以獲得准確的間隔。本系統采用了系統的硬件定時器,每秒鍾采樣100次。這樣可大幅度提高精確性。

  • 提高精確度的技巧

  由於無法采用積分中取極限的辦法,因此采用一定技巧獲得更高精確度是非常有意義的。下圖指出了積分中誤差的主要原因,即通常的計算中,將每個“小細條”看成矩形,而多余的那些構成了一大主要誤差。解決辦法是在原來矩形面積的基礎上再加上三角形的面積。

  

  • 靜止判定

  不論采用何種誤差補償方法,誤差都會存在且會隨着積分的進行變得越來越大。因此必須考慮消除誤差的做法。系統采用了靜止檢測,當發現超過20次采樣值低於門限時,將其判斷為靜止,這樣可將加速度和速度歸零。以避免誤差的繼續增大。

 

  • 實踐中遇到的問題

  此原理並不復雜,左圖給出了完整的流程圖,並有相應的完整源程序,來源於飛思卡爾半導體公司的技術文檔,但作者將其實踐后發現了一些不可逾越的問題。

  此原理是可行的,但也許適用於加速度變化較大的應用,如汽車和其他機械。以人移動鼠標動作為例,它僅能提供1-2m/s2的加速度,剛剛超過了傳感器本身的門限,這樣會大大的影響其精度,而G的干擾,使得一旦測量平面和水平面形成角度差,誤差便迅速增大而導致自激現象。因此,必須指出,若想測量低速條件下的動作,陀螺儀的引入必不可少。

 

4.陀螺儀-加速度計組合判斷簡述

  我們先認識下實用准確但更復雜的運用——慣性導航,它會給我們帶來另外的思路。

      軍事中,慣性導航時一項很重要的運用。它不存在信號的電磁干擾,全天候,機動靈活;其可靠性,小體積和抗惡劣環境的能力使其廣泛地應用於戰術導彈,炮彈的慣性導航系統。但軍事運用中所用的陀螺儀和加速度傳感器的精度要求都極高,其陀螺漂移不能超過1度/小時,加速度零偏不超過10-6m/s2。強大的傳感器加上極准確優秀算法,可使得飛行器在不與外界通信的條件下通過計算獲得當前需要的數據。但其成本也是驚人的,一枚陀螺儀傳感器的價格可達幾萬美元,且對中國實行禁運。

  微型慣性測量組合系統結構可分為平台式慣性導航系統(慣性導航組合安裝在慣性平台的台體上)和捷聯式慣性導航系統(慣性導航組合直接安裝在載體上)。后者省去平台,所以結構簡單、體積小、維護方便,但儀表工作條件不佳,影響精度且計算工作量大。而本系統,可將其看成是大大簡化的捷聯式慣性系統。

      下圖顯示了采用陀螺儀和加速度計組合的動作判斷方法。其原理是陀螺儀將外界剛體的轉動抵消,這樣加速度計就可在絕對坐標系下進行工作,配合高精度的加速度計,就可獲得非常精確地離散積分結果。

  而這種抵消運算的方法,可簡單的表述為加速度矢量坐標運算和姿態矩陣運算。這些運算方法,由於硬件和時間限制,作者並未實際運用於本系統中。

  下面簡述這種矩陣變換的原理,其涉及了很復雜的矩陣運算,因此僅做簡要介紹。更詳細的理論可查看有關慣性導航的書籍。

(1) 地理坐標系和載體坐標系

        由於不涉及大尺度的導航運用,我們將地理坐標系看成標准三維空間。規定鉛垂方向,正北和正東方向。

    載體坐標系是固連在載體上的坐標系,假設OXYZ是載體坐標系,由於它與運動物體固連在一起,因此載體坐標系的中心通常都取在物體的重心處,OX軸沿載體向前,OY軸沿載體向右,OZ軸垂直於OXY面並且x、Y、z軸構成右手坐標系。微慣性測量組合的加速度計和陀螺儀都是直接安裝在載體上的,因此傳感器的輸出信號就是微慣性測量組合在載體坐標系相對於慣性空問的各個方向上所敏感到的信號。載體坐標系與載體固連, 而我們的任務,則是地理坐標系和載體坐標系的變換,以獲得在地理坐標系上的絕對運動狀態。

  

(2)  兩種坐標系的變換算法

 

假設開始時載體坐標系於地理坐標系重合與坐標系OXYZ如圖2-6。載體坐標系Oxyz先繞Oz軸轉動 ,得到坐標系 ,再繞 軸轉動 ,得到坐標系 ,最后繞 轉動 ,得到地理坐標系 ,這是載體相對於地理坐標系的姿態角 , , 中分別稱為載體的航向角,俯仰角和滾動角,根據坐標軸轉動的順序,載體坐標系 到地理坐標系Oxyz的轉換矩陣 為:

 

 

  上述的旋轉順序是z.Y.X,事實上,可能的旋轉順序有12種,不同的旋轉順序對應不同的轉換矩陣,對於其余的11種情況,坐標變換矩陣可以用同樣的方法推導出來。不同的旋轉順序就對應於不同的Euler角,如何選擇旋轉順序不僅是一個理論問題,也是一個工程問題。當矩陣 求得以后,就可以根據載體坐標中測量的加速度求得在相應的地理坐標系中的加速度,從而便可以進行導航計算。

 

(3)   可行性分析

  上面的轉換矩陣,將涉及大量的線性和非線性運算,而為了提高精度,必須采用浮點算法。但這不是問題的關鍵,即使這樣做了,離成功還很遠。我們還需要以下的工作:

  • l卡夫曼濾波或中值濾波以消除噪聲干擾
  •  進一步改進的離散積分算法,以獲得對干擾和偏離的不敏感性。

  維數的增加會導致算法復雜度倍增,改進算法是必須的工作。而現有模型已經無法滿足計算要求,需引入方向余弦矩陣的正交化和四元數的運算。而為了實現准確的手勢軌跡判斷,必須安裝很高精度的三軸加速度傳感器和陀螺儀。並依賴復雜的算法和無線數據傳送。這些工作已經超出了一個普通本科生能力范圍。而成本亦是極大地難題,三軸陀螺儀的價格普遍在200元每個以上,而精度足夠的加速度傳感器亦在100元以上。作者走到這步時,不得不選擇放棄。因為沒有精確度很高的硬件和強大的處理性能,即使再強的軟件算法也是無可奈何的事情。

七. 無線組網應用

(一)無線通信方案

  當前主流通信方案有以下幾類,如藍牙,802.11b(WIFI)以及基於2.4GHZ的ZIGBEE等等協議,但它們在這個運用中都不是最適合的,因為,本系統要求高速而簡單的星型組網模式,CPU的主要任務應盡可能的安排給數據采集和處理,是不適合放置動輒幾十KB的無線協議和算法的。因此,選用合適的,低功耗的RF方案勢在必行。

  由作者的經驗,選擇了由NORDIC公司生產的NRF24L01型RF射頻通信模組進行點對多點通信。作者對其較為熟悉,因此大大縮短了RF無線通信所需的時間。

  它具備以下特點:

(1) 2.4Ghz 全球開放ISM 頻段免許可證使用

(2) 最高工作速率2Mbps,高效GFSK調制,抗干擾能力強,特別適合工業控制場合

(3) 126 頻道,滿足多點通信和跳頻通信需要

(4) 內置硬件CRC 檢錯和點對多點通信地址控制

(5) 低功耗1.9 - 3.6V 工作,待機模式下狀態為22uA;掉電模式下為900nA

(6) 內置2.4Ghz 天線,體積小巧15mm X29mm

 

  以上為其系統結構圖。

   該設備的無線系統應具有如下的需求:

1.    通信速率要求較高,為保證盡可能短的延時,數據包可能每秒發送100次以上。

2.    可靠性要求低,不需要反饋重傳機制,以提高速率。

3.    提供中斷設計,使得在發送和接受數據完成或開始時提供中斷提示。

4.    簡單星型組網設計,中央節點主要接收數據,子節點主要發送數據。但中央節點也會發送控制指令,改變子節點的工作方式。

5.    具備低功耗休眠狀態

6.    盡可能簡潔的通信協議,方便程序編制和數據處理。

  設計的NRF24L01模組將板載於主控板上,利用SPI總線接入系統,中斷指示接口IRQ接入CPU中斷腳。系統采用Enhanced ShockBurstTM收發模式。Enhanced ShockBurst TM收發模式下,使用片內的先入先出堆棧區,數據低速從微控制器送入,但高速(1Mbps)發射,這樣可以盡量節能,因此,使用低速的微控制器也能得到很高的射頻數據發射速率。與射頻協議相關的所有高速信號處理都在片內進行,這種做法有三大好處:盡量節能;低的系統費用(低速微處理器也能進行高速射頻發射);數據在空中停留時間短,抗干擾性高。Enhanced ShockBurstTM技術同時也減小了整個系統的平均工作電流。

  三個子節占用三個子頻道,芯片硬件支持最多6個頻道的數據偵聽,這樣做盡可能的避免了干擾。

八. 應用介紹和展望

(一)項目當前的進度

         該項目進行了兩個月,取得了很多的進步和成就,得到了很多老師和同學的認可,也促使我寫完這篇技術文檔。對於一個普通大學生而言,技術文檔可能並不能一針見血的指出問題的關鍵。我知道去逛電子市場被人愚弄的痛苦,也知道焊接電路突然焊錯而幾百塊錢付之一炬的艱辛。但項目依舊繼續。馬上考研的我已不能繼續投入我更多的心血。但我想說,我在努力。

         眾多的更新和運用並沒有寫入該文檔,因為它們不涉及核心算法。但可羅列如下:

l  上位機3D繪圖-可3D顯示當前模組的姿態,並加以動態着色

l  FPS游戲模式,一只手模擬鼠標,一只手模擬鍵盤,可方便的實現運動和視角控制,但尚無法建立對射擊和其他快捷鍵的控制。

l  雙手極品飛車模式

l  更加美化的產品外包裝。

l  其他更多拓展

  我依然無法原諒自己沒有使用陀螺儀這一致命的錯誤,使得很多問題沒法得到根本解決。它的作用不僅僅可用於離散積分的角度校正,更能獲得很多讓人驚異的功能。可以說,使用加速度計,該系統吸引了別人的眼球,若再加上陀螺儀,她就足夠讓人歡呼雀躍了。但這些,我卻沒有做到。

  感慨之余,我不得不認識到,產品開發非常有可能產生全部推倒重來的結果。但是這是必須的,但對於一個學校的項目而言,要求這么多也許有點太過苛刻了。作者不想在這篇技術文檔中袒露太多感情因素,但若說關注,僅僅自己一個人是遠遠不夠的,而且,即時做出來了,又能如何?

(二)總結和展望

  不同於學校里的很多課程報告,一些內容很空泛的總結寫在文章的結尾作為結束。這篇技術文檔的讀者,讀者如果真的能看到這個位置,我就已經很感激了。

  如果機會成熟,該項目會在作者考研結束,即2011年時繼續開工,那時作者將會將硬件方案進行擴充,主要涉及以下幾點:

l  重新設計電路板,使得其滿足更小型化和精致的封裝

l  改用其他更高級型號的傳感器——精度更好,當然價格更貴的加速度傳感器,三軸陀螺儀。

l  重新加強和拓展軟件功能,修改無線通信和其他信道的通信協議

l  更多精細的優化判斷算法

l  更小型化的中央處理節點,使得其真正U盤化。

  而我更希望,她在我的手中,變得真正強大起來,獲得更多的人的認可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM