深圳技師學(xué)院電子信息技術(shù)系 盛春明
人類科學(xué)技術(shù)的不斷進(jìn)步,促使仿生機(jī)器人向更多領(lǐng)域發(fā)展。其中,頭部仿生機(jī)器人為電影行業(yè)的發(fā)展做出了巨大貢獻(xiàn),許多影片拍攝過(guò)程中難以呈現(xiàn)的鏡頭效果,可以利用頭部仿生機(jī)器人的特效技術(shù)來(lái)實(shí)現(xiàn)。
數(shù)據(jù)驅(qū)動(dòng)控制是指控制器設(shè)計(jì)不需要受控過(guò)程中的數(shù)學(xué)模型信息,設(shè)計(jì)知識(shí)僅源于受控系統(tǒng)的離線、在線輸入或輸出的數(shù)據(jù)和進(jìn)行數(shù)據(jù)處理后得到的信息,具有假設(shè)意義上的魯棒性、穩(wěn)定性和收斂性保障的控制方法和理論。一句話來(lái)說(shuō),就是數(shù)據(jù)直接作用于控制器設(shè)計(jì)的控制方法和理論。
STM32微控系統(tǒng)是32位精簡(jiǎn)指令集的處理器內(nèi)核,在運(yùn)行狀態(tài)中頻率為達(dá)到72MHz。STM32芯片將外置設(shè)備、輸入和輸出端口以及高速存儲(chǔ)器高度集成到一起,全部設(shè)備的通信接口具有統(tǒng)一標(biāo)準(zhǔn)。芯片內(nèi)部還有16位計(jì)時(shí)器11個(gè)、12位的數(shù)模轉(zhuǎn)換器2個(gè)以及12位的雙通道模數(shù)轉(zhuǎn)換器1個(gè)。
STM32微控芯片的ARM 32位精簡(jiǎn)指令集處理器內(nèi)核嵌入在固態(tài)和靜態(tài)存儲(chǔ)器中,能兼容ARM的一切軟件及工具,代碼效率非常高。STM32微控芯片存儲(chǔ)數(shù)據(jù)和程序功能的發(fā)揮在于其內(nèi)部的嵌入式固態(tài)存儲(chǔ)器,而靜態(tài)隨機(jī)存儲(chǔ)器則具有讀寫(xiě)CPU的時(shí)鐘速度的功能。STM32微控芯片支持固態(tài)存儲(chǔ)、動(dòng)態(tài)隨機(jī)存儲(chǔ)、靜態(tài)隨機(jī)存儲(chǔ)和閃存四種不同模式,這也是其系統(tǒng)進(jìn)行片選的四個(gè)信號(hào)收發(fā)點(diǎn)。
系統(tǒng)中有3個(gè)可變靜態(tài)存儲(chǔ)器中斷線經(jīng)過(guò)OR,然后連接到嵌套矢量中斷控制器。且系統(tǒng)外部存儲(chǔ)器可以執(zhí)行除PCCARD外的所有代碼,其目標(biāo)頻率為SYSCLK/2。因此,如果系統(tǒng)時(shí)鐘運(yùn)行功率為72MHz,外部訪問(wèn)就以36MHz的功率運(yùn)行。嵌套矢量中斷控制器能提供的中斷優(yōu)先級(jí)數(shù)量達(dá)到16個(gè),同時(shí)可以對(duì)43個(gè)可屏蔽中斷通道進(jìn)行處理。
外部中斷/事件控制器有可以產(chǎn)生中斷/事件請(qǐng)求的探測(cè)器線,一共有19條,其中每一條線能被獨(dú)自屏蔽,也能獨(dú)自選擇觸發(fā)事件。如果外部線有超過(guò)內(nèi)部外圍總線長(zhǎng)度的時(shí)鐘周期脈沖,外部中斷/事件控制器就能及時(shí)探測(cè)到。有16個(gè)外部中斷線可以連接到EXTI的總線擴(kuò)展器上。
啟動(dòng)STM32微控系統(tǒng)時(shí)首先要選擇系統(tǒng)時(shí)鐘,如果開(kāi)啟復(fù)位功能的話CPU時(shí)鐘將會(huì)選用功率為8MHz的晶振。系統(tǒng)是否成功啟動(dòng)可以選用外部的一個(gè)4—16MHz時(shí)鐘進(jìn)行監(jiān)視。在此過(guò)程中,系統(tǒng)會(huì)先后禁止控制器和關(guān)鍵中斷管理。當(dāng)STM32微控系統(tǒng)啟動(dòng)時(shí),用Boot引腳選擇導(dǎo)入存儲(chǔ)器(可以從固態(tài)存儲(chǔ)器、靜態(tài)隨機(jī)存儲(chǔ)器和系統(tǒng)存儲(chǔ)器這三項(xiàng)中選擇),其導(dǎo)入程序存在于系統(tǒng)存儲(chǔ)器中,以利用USART1對(duì)固態(tài)存儲(chǔ)器進(jìn)行重新編程。
STM32微控系統(tǒng)電源工作電壓范圍為2.0V—3.6V,接入外部電源后通過(guò)VDD引腳為系統(tǒng)內(nèi)的輸入/輸出端口和調(diào)壓器供電。VSSA和VDDA電壓范圍為2.0V—3.6V,當(dāng)RC和PLL電壓范圍在工作電壓內(nèi),VSSA必須與VSS相連,VDDA必須與VDD相連。當(dāng)VDD失去作用時(shí),需將供電源切換到備份寄存器和外部32KHz晶振中。當(dāng)系統(tǒng)從2V電壓開(kāi)始啟動(dòng)時(shí)或系統(tǒng)電壓掉到2V時(shí),可以利用系統(tǒng)電源管理設(shè)備中的上電或掉電復(fù)位電路進(jìn)行相關(guān)操作。
STM32微控系統(tǒng)的調(diào)壓器有掉電模式、低功耗模式和主模式三種不同的運(yùn)行模式。其中系統(tǒng)待機(jī)時(shí)用掉電模式,系統(tǒng)停止運(yùn)行時(shí)用LPR,系統(tǒng)運(yùn)行時(shí)用MR。微控系統(tǒng)的調(diào)壓器電流輸出狀態(tài)為高阻,核心電路啟用掉電模式,再加上功耗為零,這種調(diào)壓情況在很大程度上保證了SRAM和寄存器中內(nèi)容的穩(wěn)定存在。STM32微控系統(tǒng)的低功耗模式,使可用喚醒源和短時(shí)啟動(dòng)之間的平衡點(diǎn)達(dá)到最佳,對(duì)系統(tǒng)功耗的降低十分有利。
2.4G是頻段在2.400GHZ—2.4835GHZ之間的一種無(wú)線技術(shù)的簡(jiǎn)稱。2.4G無(wú)線技術(shù)不接外部電線,運(yùn)行效率高,成本則相對(duì)低廉,電壓也很低,其特效體積能進(jìn)行定向糾錯(cuò),調(diào)頻速度非???。由于2.4G無(wú)線技術(shù)在運(yùn)行時(shí)使用的是無(wú)須許可的全球開(kāi)放頻段,并將高頻鍵控收發(fā)電路進(jìn)行整合,使特效體積的數(shù)據(jù)實(shí)現(xiàn)高速傳輸。因此受到無(wú)線技術(shù)相關(guān)人士的廣泛使用。
邏輯分析儀是判定時(shí)序的儀器,它通過(guò)始終采集測(cè)試設(shè)備上的數(shù)字信號(hào),并將其顯示出來(lái)。邏輯分析儀只顯示高電平和低電平兩種不同的狀態(tài),而對(duì)于能持續(xù)的模擬量波形則沒(méi)有顯示效果。
邏輯分析儀能遵循一定的規(guī)律解碼電平序列,從而實(shí)現(xiàn)分析通信協(xié)議的目的。也能利用其更加簡(jiǎn)便地對(duì)采樣信號(hào)進(jìn)行設(shè)置,對(duì)不同路信號(hào)的時(shí)序進(jìn)行分析,對(duì)信號(hào)的無(wú)意義干擾毛刺進(jìn)行捕捉。
數(shù)據(jù)驅(qū)動(dòng)頭部仿生機(jī)器人的控制就是通過(guò)2.4G無(wú)線模塊來(lái)接收遙控器發(fā)出的高頻信號(hào),然后發(fā)揮邏輯分析儀的功能,對(duì)此無(wú)線模塊接收的波形進(jìn)行測(cè)試分析。經(jīng)過(guò)多次測(cè)試,結(jié)果表明邏輯分析儀接收的波形占空比隨著遙控器推桿位置的變化而變化,所以判別遙控器推桿位置的方式就是識(shí)別占空比波形的異同,然后用相關(guān)程序來(lái)確認(rèn)。
舵機(jī)控制流程圖
頭部仿生機(jī)器人的相關(guān)運(yùn)行動(dòng)作分別由21個(gè)舵機(jī)配合完成,這些舵機(jī)在獲知遙控器推桿的位置信號(hào)之后,可以調(diào)整和控制頭部仿生機(jī)器人的眼、眉、嘴及下巴等部位的運(yùn)動(dòng),來(lái)使機(jī)器人的面部表情實(shí)現(xiàn)不同的變化。
首先,測(cè)試仿生機(jī)器人內(nèi)部的各個(gè)機(jī)械組成部分之間的牽制和影響,以及每個(gè)舵機(jī)在遙控器控制下運(yùn)動(dòng)幅度的的大小和其它相關(guān)運(yùn)動(dòng)情況。通過(guò)對(duì)仿生機(jī)器人內(nèi)部舵機(jī)的運(yùn)動(dòng)范圍及幅度大小的觀察、記錄和分析,來(lái)了解通過(guò)單一舵機(jī)控制所能達(dá)成動(dòng)作的不同變化以及機(jī)器人內(nèi)部的機(jī)械組成部分,還有舵機(jī)控制過(guò)程中對(duì)其他舵機(jī)造成的影響。
其次,分析頭部仿生機(jī)器人的面部結(jié)構(gòu),并根據(jù)其面部肌肉動(dòng)作在臉部不同部位選取錨點(diǎn)??梢栽诜律鷻C(jī)器人整個(gè)臉部選取21個(gè)不同的錨點(diǎn),然后為不同的錨點(diǎn)定下原始三維坐標(biāo)。根據(jù)遙控器測(cè)試結(jié)果,將單一舵機(jī)運(yùn)動(dòng)幅度最大值與此錨點(diǎn)中人體面部實(shí)際能動(dòng)范圍相結(jié)合,進(jìn)一步推算其它各個(gè)錨點(diǎn)對(duì)此錨點(diǎn)作用范圍產(chǎn)生影響的關(guān)系,從而將此錨點(diǎn)在某種表情要求下需要達(dá)到的坐標(biāo)位置得出。
特定位置的錨點(diǎn)作用范圍根據(jù)仿生機(jī)器人的面部表情的變化,對(duì)該錨點(diǎn)的影響權(quán)值也會(huì)發(fā)生變化。通過(guò)多次同一個(gè)試驗(yàn)的分析和計(jì)算可以得出具體的數(shù)值。下面以頭部仿生機(jī)器人面部錨點(diǎn)蘋(píng)果肌最高點(diǎn)在高興表情中為例,如圖2,有8個(gè)點(diǎn)在此錨點(diǎn)作用范圍內(nèi),分別在此錨點(diǎn)周?chē)藗€(gè)不同位置。
圖2
Xa表示錨點(diǎn)
在錨點(diǎn)作用范圍內(nèi)的8個(gè)點(diǎn)會(huì)對(duì)錨點(diǎn)產(chǎn)生不同的影響,在表達(dá)高興的表情時(shí),對(duì)此錨點(diǎn)產(chǎn)生最大影響的是上下兩個(gè)點(diǎn),而對(duì)次錨點(diǎn)產(chǎn)生最小影響的是左右兩個(gè)點(diǎn)。所以,在表達(dá)高興的表情時(shí),可以得出此錨點(diǎn)的坐標(biāo)位置為:
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,)
通過(guò)計(jì)算得出各種表情中錨點(diǎn)的理論坐標(biāo)之后,開(kāi)始進(jìn)行數(shù)據(jù)編程,然后測(cè)試坐標(biāo)效果,根據(jù)測(cè)試結(jié)果觀察仿生機(jī)器人的臉部表情變化是否符合人體面目表情需要,從而多次調(diào)試以達(dá)到最理想的坐標(biāo)位置。這樣就基本確定各個(gè)表情下錨點(diǎn)的不同坐標(biāo)位置。
在對(duì)頭部仿生機(jī)器人面部表情與錨點(diǎn)不同動(dòng)作的關(guān)系之后,開(kāi)始采集編程所需的相關(guān)各點(diǎn)在不同表情中的位置數(shù)據(jù),將頭部仿生機(jī)器人的已知?jiǎng)幼髯兓?,轉(zhuǎn)化為程序中通俗易懂的數(shù)字信息。
通過(guò)反復(fù)實(shí)驗(yàn),對(duì)大量采集的數(shù)據(jù)進(jìn)行編程測(cè)試,最終精確融合面部各點(diǎn)動(dòng)作與數(shù)據(jù),成功達(dá)成在數(shù)據(jù)驅(qū)動(dòng)基礎(chǔ)上對(duì)頭部仿生機(jī)器人的各種面部表情的控制目標(biāo)。
實(shí)現(xiàn)用數(shù)據(jù)驅(qū)動(dòng)控制頭部仿生機(jī)器人是一個(gè)復(fù)雜而繁瑣的過(guò)程,需要巨大的工作量。不僅要進(jìn)行反復(fù)試驗(yàn),采集大量所需數(shù)據(jù),還要進(jìn)行多次調(diào)試和分析。并且在此過(guò)程中,頭部仿生機(jī)器人的各個(gè)軟、硬件部分以及機(jī)械組成部分都可能發(fā)生這樣那樣的故障。
只有不斷實(shí)驗(yàn)和計(jì)算,不斷分析和驗(yàn)證,才能逐步實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)對(duì)各個(gè)舵機(jī)的控制及其作用的發(fā)揮,最終將不同的面部表情完美呈現(xiàn)出來(lái)。
[1]侯忠生,許建新.數(shù)據(jù)驅(qū)動(dòng)控制理論及方法的回顧和展望[J].自動(dòng)化學(xué)報(bào),2009,35(6):650-667.
[2]孫立軍,張晨,熊鳴.基于數(shù)據(jù)驅(qū)動(dòng)的頭部仿生機(jī)器人控制[J].電子測(cè)試,2015(5):161-163.
[3]孫立軍,張晨,熊鳴.頭部仿生機(jī)器人舵機(jī)控制研究[J].電子技術(shù)與軟件工程,2015(10):130-131.