深圳技師學院電子信息技術系 盛春明
人類科學技術的不斷進步,促使仿生機器人向更多領域發展。其中,頭部仿生機器人為電影行業的發展做出了巨大貢獻,許多影片拍攝過程中難以呈現的鏡頭效果,可以利用頭部仿生機器人的特效技術來實現。
數據驅動控制是指控制器設計不需要受控過程中的數學模型信息,設計知識僅源于受控系統的離線、在線輸入或輸出的數據和進行數據處理后得到的信息,具有假設意義上的魯棒性、穩定性和收斂性保障的控制方法和理論。一句話來說,就是數據直接作用于控制器設計的控制方法和理論。
STM32微控系統是32位精簡指令集的處理器內核,在運行狀態中頻率為達到72MHz。STM32芯片將外置設備、輸入和輸出端口以及高速存儲器高度集成到一起,全部設備的通信接口具有統一標準。芯片內部還有16位計時器11個、12位的數模轉換器2個以及12位的雙通道模數轉換器1個。
STM32微控芯片的ARM 32位精簡指令集處理器內核嵌入在固態和靜態存儲器中,能兼容ARM的一切軟件及工具,代碼效率非常高。STM32微控芯片存儲數據和程序功能的發揮在于其內部的嵌入式固態存儲器,而靜態隨機存儲器則具有讀寫CPU的時鐘速度的功能。STM32微控芯片支持固態存儲、動態隨機存儲、靜態隨機存儲和閃存四種不同模式,這也是其系統進行片選的四個信號收發點。
系統中有3個可變靜態存儲器中斷線經過OR,然后連接到嵌套矢量中斷控制器。且系統外部存儲器可以執行除PCCARD外的所有代碼,其目標頻率為SYSCLK/2。因此,如果系統時鐘運行功率為72MHz,外部訪問就以36MHz的功率運行。嵌套矢量中斷控制器能提供的中斷優先級數量達到16個,同時可以對43個可屏蔽中斷通道進行處理。
外部中斷/事件控制器有可以產生中斷/事件請求的探測器線,一共有19條,其中每一條線能被獨自屏蔽,也能獨自選擇觸發事件。如果外部線有超過內部外圍總線長度的時鐘周期脈沖,外部中斷/事件控制器就能及時探測到。有16個外部中斷線可以連接到EXTI的總線擴展器上。
啟動STM32微控系統時首先要選擇系統時鐘,如果開啟復位功能的話CPU時鐘將會選用功率為8MHz的晶振。系統是否成功啟動可以選用外部的一個4—16MHz時鐘進行監視。在此過程中,系統會先后禁止控制器和關鍵中斷管理。當STM32微控系統啟動時,用Boot引腳選擇導入存儲器(可以從固態存儲器、靜態隨機存儲器和系統存儲器這三項中選擇),其導入程序存在于系統存儲器中,以利用USART1對固態存儲器進行重新編程。
STM32微控系統電源工作電壓范圍為2.0V—3.6V,接入外部電源后通過VDD引腳為系統內的輸入/輸出端口和調壓器供電。VSSA和VDDA電壓范圍為2.0V—3.6V,當RC和PLL電壓范圍在工作電壓內,VSSA必須與VSS相連,VDDA必須與VDD相連。當VDD失去作用時,需將供電源切換到備份寄存器和外部32KHz晶振中。當系統從2V電壓開始啟動時或系統電壓掉到2V時,可以利用系統電源管理設備中的上電或掉電復位電路進行相關操作。
STM32微控系統的調壓器有掉電模式、低功耗模式和主模式三種不同的運行模式。其中系統待機時用掉電模式,系統停止運行時用LPR,系統運行時用MR。微控系統的調壓器電流輸出狀態為高阻,核心電路啟用掉電模式,再加上功耗為零,這種調壓情況在很大程度上保證了SRAM和寄存器中內容的穩定存在。STM32微控系統的低功耗模式,使可用喚醒源和短時啟動之間的平衡點達到最佳,對系統功耗的降低十分有利。
2.4G是頻段在2.400GHZ—2.4835GHZ之間的一種無線技術的簡稱。2.4G無線技術不接外部電線,運行效率高,成本則相對低廉,電壓也很低,其特效體積能進行定向糾錯,調頻速度非常快。由于2.4G無線技術在運行時使用的是無須許可的全球開放頻段,并將高頻鍵控收發電路進行整合,使特效體積的數據實現高速傳輸。因此受到無線技術相關人士的廣泛使用。
邏輯分析儀是判定時序的儀器,它通過始終采集測試設備上的數字信號,并將其顯示出來。邏輯分析儀只顯示高電平和低電平兩種不同的狀態,而對于能持續的模擬量波形則沒有顯示效果。
邏輯分析儀能遵循一定的規律解碼電平序列,從而實現分析通信協議的目的。也能利用其更加簡便地對采樣信號進行設置,對不同路信號的時序進行分析,對信號的無意義干擾毛刺進行捕捉。
數據驅動頭部仿生機器人的控制就是通過2.4G無線模塊來接收遙控器發出的高頻信號,然后發揮邏輯分析儀的功能,對此無線模塊接收的波形進行測試分析。經過多次測試,結果表明邏輯分析儀接收的波形占空比隨著遙控器推桿位置的變化而變化,所以判別遙控器推桿位置的方式就是識別占空比波形的異同,然后用相關程序來確認。

舵機控制流程圖
頭部仿生機器人的相關運行動作分別由21個舵機配合完成,這些舵機在獲知遙控器推桿的位置信號之后,可以調整和控制頭部仿生機器人的眼、眉、嘴及下巴等部位的運動,來使機器人的面部表情實現不同的變化。
首先,測試仿生機器人內部的各個機械組成部分之間的牽制和影響,以及每個舵機在遙控器控制下運動幅度的的大小和其它相關運動情況。通過對仿生機器人內部舵機的運動范圍及幅度大小的觀察、記錄和分析,來了解通過單一舵機控制所能達成動作的不同變化以及機器人內部的機械組成部分,還有舵機控制過程中對其他舵機造成的影響。
其次,分析頭部仿生機器人的面部結構,并根據其面部肌肉動作在臉部不同部位選取錨點??梢栽诜律鷻C器人整個臉部選取21個不同的錨點,然后為不同的錨點定下原始三維坐標。根據遙控器測試結果,將單一舵機運動幅度最大值與此錨點中人體面部實際能動范圍相結合,進一步推算其它各個錨點對此錨點作用范圍產生影響的關系,從而將此錨點在某種表情要求下需要達到的坐標位置得出。
特定位置的錨點作用范圍根據仿生機器人的面部表情的變化,對該錨點的影響權值也會發生變化。通過多次同一個試驗的分析和計算可以得出具體的數值。下面以頭部仿生機器人面部錨點蘋果肌最高點在高興表情中為例,如圖2,有8個點在此錨點作用范圍內,分別在此錨點周圍八個不同位置。

圖2
Xa表示錨點
在錨點作用范圍內的8個點會對錨點產生不同的影響,在表達高興的表情時,對此錨點產生最大影響的是上下兩個點,而對次錨點產生最小影響的是左右兩個點。所以,在表達高興的表情時,可以得出此錨點的坐標位置為:
Xa=Wi*X1+Wi*X2+Wi*X3+Wi*X4+Wi*X5+Wi*X6+Wi*X7+Wi*X8
Wi∈(2/9,2/9,1/18,1/18,1/9,1/9,1/9,1/9,)
通過計算得出各種表情中錨點的理論坐標之后,開始進行數據編程,然后測試坐標效果,根據測試結果觀察仿生機器人的臉部表情變化是否符合人體面目表情需要,從而多次調試以達到最理想的坐標位置。這樣就基本確定各個表情下錨點的不同坐標位置。
在對頭部仿生機器人面部表情與錨點不同動作的關系之后,開始采集編程所需的相關各點在不同表情中的位置數據,將頭部仿生機器人的已知動作變化,轉化為程序中通俗易懂的數字信息。
通過反復實驗,對大量采集的數據進行編程測試,最終精確融合面部各點動作與數據,成功達成在數據驅動基礎上對頭部仿生機器人的各種面部表情的控制目標。
實現用數據驅動控制頭部仿生機器人是一個復雜而繁瑣的過程,需要巨大的工作量。不僅要進行反復試驗,采集大量所需數據,還要進行多次調試和分析。并且在此過程中,頭部仿生機器人的各個軟、硬件部分以及機械組成部分都可能發生這樣那樣的故障。
只有不斷實驗和計算,不斷分析和驗證,才能逐步實現數據驅動對各個舵機的控制及其作用的發揮,最終將不同的面部表情完美呈現出來。
[1]侯忠生,許建新.數據驅動控制理論及方法的回顧和展望[J].自動化學報,2009,35(6):650-667.
[2]孫立軍,張晨,熊鳴.基于數據驅動的頭部仿生機器人控制[J].電子測試,2015(5):161-163.
[3]孫立軍,張晨,熊鳴.頭部仿生機器人舵機控制研究[J].電子技術與軟件工程,2015(10):130-131.