文獻標識碼: A
文章編號: 0258-7998(2013)06-0127-03
為了能夠充分表達人類的情感,,仿人機器人通過多個運動機構牽動仿真人面皮實現(xiàn)人類表情[1-3]。這種面部機構具有自由度眾多,、運動復雜,、控制精度要求高等特點。實踐表明,,由于指令順序執(zhí)行,,單個單片機很難完成多任務系統(tǒng)的設計。然而,,采用多個單片機分布控制的方式,,雖然能夠滿足設計需求,但系統(tǒng)穩(wěn)定性較差,,設計成本增加,。
本文選用非定制邏輯器件FPGA作為控制芯片來完成整個驅動系統(tǒng)的設計,。區(qū)別于單片機,,F(xiàn)PGA并行的設計理念可使系統(tǒng)模塊獨立運行,在簡化系統(tǒng)架構的同時,,提高執(zhí)行機構的協(xié)同性,。
1 面部運動分析與系統(tǒng)硬件結構
本系統(tǒng)用于驅動西南科技大學自主研發(fā)的MSR2型仿人機器人面部產生人類表情,如圖1所示。其面部具有21個基本動作單元AU(Action Unit),主要集中分布于眉毛,、眼球,、眼瞼、嘴巴和下頜等5個部位,如圖2所示,。表1給出了5個部位的驅動電機和傳感器分布情況,。
面部驅動系統(tǒng)是仿人機器人控制系統(tǒng)的一個組成部分,面部單元運動指令由上層PC機完成,。因此,,本文將面部驅動系統(tǒng)劃分成電機控制、反饋信號采集和上位機通信三個部分,,圖3所示為硬件結構示意圖,。
2 FPGA模塊化設計
本設計選擇Altera公司Cyclone II系列FPGA器件EP2C5Q208C8,作為驅動系統(tǒng)核心控制芯片,。
2.1 電機驅動模塊設計
仿人機器人頭部空間狹小,,選用的微型舵機型號為H301,其旋轉角速度為500°/s,。H301的控制僅需一路周期為20 ms的PWM脈沖,, 有效正脈寬范圍為0.5 ms~2.5 ms,對應舵機旋轉角度范圍為0°~180°,。PWM脈寬與H301轉角呈線性對應關系。驅動系統(tǒng)需要實現(xiàn)對21路舵機的控制,,即需要FPGA輸出21路PWM[4],。PWM的輸出可以作為一個模塊來設計,以下是舵機模塊SteeringGear實例SG1的Verilog HDL代碼:
SteeringGear SG1(.clk(clk) //50 MHz時鐘輸入
.rst_n(rst_n) //復位信號,,低電平有效
.pwm_out_en(pwm_EN) //PWM輸出使能
.correct_temp(pc_chang) //PWM參數(shù)修正
.pwm_val(Data_Received) //轉角控制
.pwm(pwm[1])) //PWM輸出
應pwm_val的值為7 500,。因此,舵機模塊設計正確。
2.2 反饋信號采集模塊設計
位置檢測電位器作為反饋傳感器,,反饋面部機構的運動位置,,為驅動系統(tǒng)提供誤差補償。系統(tǒng)選用精密電位器J50S,,其線性精度為±0.1%,。
J50S反饋的電壓信號是模擬量,F(xiàn)PGA的模數(shù)轉換外置了16位ADC芯片LTC1864,。電位器檢測的理論精度為0.005 2°,。驅動系統(tǒng)將面部位置反饋電位器分成6、7兩組,,由LTC1864配合單8路模擬開關CD4051實現(xiàn),。與FPGA硬件接口如圖5所示。
在Slave FIFO操作模式下,,增強型8051內核利用固件將CY7C68013A配置成Slave FIFO模式后,,不參與外設與USB主機的數(shù)據(jù)交互[5-6]。經過實驗測試,,Slave FIFO模式的USB數(shù)據(jù)傳輸速率可達21.6 Mb/s, 滿足了系統(tǒng)需求,。
3 驅動系統(tǒng)工作流程
圖7所示為驅動系統(tǒng)主要工作流程圖。驅動系統(tǒng)上電復位初始化后,,USB模塊監(jiān)測上位機PC的指令,;當?shù)玫絇C指令后,USB模塊接收運動數(shù)據(jù),;FPGA將數(shù)據(jù)分配給電機模塊,;電機旋轉驅動面部運動機構,牽扯仿真人面皮展現(xiàn)人類表情,。位置反饋模塊采集電位器的角位移,,與理論值計算運動誤差;如果誤差在允許范圍內,,則反饋數(shù)據(jù)至PC,;否則通過誤差補償算法,給原始數(shù)據(jù)添加補償系數(shù),重新分配數(shù)據(jù),。
4 系統(tǒng)實驗與結果分析
將本文設計的仿人機器人面部驅動系統(tǒng)與以單片機為核心的系統(tǒng)做表情對比實驗,。MSR2面部前一版本的驅動系統(tǒng)選用3個單片機(型號為STM32F103VE),分別控制3個模塊,,單片機之間采用CAN總線通信,。
為了達到實驗目的,選擇驚訝,、厭惡,、憤怒、欣喜4種有明顯區(qū)分的表情作測試,。系統(tǒng)有13個檢測點位置,,即反饋電位器的檢測點。實驗允許每個檢測點的誤差為±1°,。兩個驅動系統(tǒng)分別針對每種表情重復實驗100次,,得到400組反饋數(shù)據(jù)。根據(jù)均方差公式分別計算出各個檢測點的偏差,,并通過Matlab軟件得到兩個系統(tǒng)的4種表情控制偏差對比圖,,如圖8所示。
由圖8可以得出,,基于FPGA的驅動系統(tǒng)的控制精度要高于以STM32分布控制的精度,。經測試基于FPGA的驅動系統(tǒng)響應時間約為703 ms,而基于STM32單片機的驅動系統(tǒng)的響應時間約為978 ms,。由此得出,,以FPGA為核心的控制系統(tǒng), 總體性能優(yōu)于基于STM32的驅動系統(tǒng)。
本文分析了仿人機器人面部運動控制點,,將其驅動系統(tǒng)劃分成了3個模塊,分別介紹了各個模塊的FPGA設計方法,,并給出了系統(tǒng)主要工作流程,。通過實驗驗證,基于FPGA的驅動系統(tǒng)基本達到了人類表情變化的速率和較為準確的表情展現(xiàn)度,。目前,,采用該驅動系統(tǒng)后,仿人面部可以區(qū)分出18種表情,。隨著后續(xù)仿真人面皮制作工藝的提高,,仿人機器人再現(xiàn)的表情將更為細膩豐富。
參考文獻
[1] TAKENO J, MORI K, NAITO Y. A robot with complex facial expressions[J]. Sensors & Transducers, 2009(6):18-26.
[2] 劉遙峰, 王志良. 基于情感交互的仿人頭部機器人[J].機器人, 2009,31(6):493-500.
[3] Jen Fuhua, Tai Jenchao, Liang Dahung, et al. Design and development of a robot head with facial emotion expression[J]. Journal of Technology, 2011,26(1):27-38.
[4] 張普行, 賈秋玲. 基于FPGA的機械臂多路舵機控制器設計[J]. 微特電機, 2011(4):73-75.
[5] 錢峰.EZ-USB FX2單片機原理,、編程及應用[M]. 北京:北京航空航天大學出版社,2006.
[6] 劉吉, 楊德偉,文懷濤,等.基于USB通信的FPGA高速數(shù)據(jù)采集系統(tǒng)[J]. 現(xiàn)代電子技術, 2011,34(10):186-192.