《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的仿人機(jī)器人面部驅(qū)動(dòng)系統(tǒng)
基于FPGA的仿人機(jī)器人面部驅(qū)動(dòng)系統(tǒng)
來源:電子技術(shù)應(yīng)用2013年第6期
肖志鋒, 段玉琴, 蔡 勇, 蔣 剛
西南科技大學(xué) 制造科學(xué)與工程學(xué)院, 四川 綿陽 621010
摘要: 針對(duì)單片機(jī)在處理多任務(wù)事件時(shí)的延時(shí)問題,提出了基于現(xiàn)場可編程門陣列(FPGA)的驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)方案。根據(jù)FPGA的多任務(wù)可并行處理特點(diǎn),分別進(jìn)行設(shè)計(jì)和驗(yàn)證并通過在一片F(xiàn)PGA上統(tǒng)一實(shí)例化模塊,簡化了驅(qū)動(dòng)系統(tǒng)的硬件結(jié)構(gòu)。實(shí)驗(yàn)表明,基于FPGA的驅(qū)動(dòng)系統(tǒng)可有效提高面部表情控制準(zhǔn)確度和表情再現(xiàn)速率。
中圖分類號(hào): TP242.6
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)06-0127-03
FPGA-based facial drive system of humanoid robot
Xiao Zhifeng, Duan Yuqin, Cai Yong, Jiang Gang
School of Manufacturing Science and Engineering, Southwest University of Science and Technology, Mianyang 621010, China
Abstract: SCM exist delay defect in the treatment of multi-tasking incident. This paper proposed the design scheme of the drive system based on field programmable gate array(FPGA). According to the feature of FPGAs′ multi-tasking parallel processing, designed verification respectively. It was simplified the hardware structure by unified instantiated modules in an FPGA. Compared with expression experiments show that, it was concluded that the driving system based on FPGA can effectively improve facial expression control accuracy and expression reproduction rate.
Key words : FPGA; humanoid robot; facial expression; drive system

    為了能夠充分表達(dá)人類的情感,仿人機(jī)器人通過多個(gè)運(yùn)動(dòng)機(jī)構(gòu)牽動(dòng)仿真人面皮實(shí)現(xiàn)人類表情[1-3]。這種面部機(jī)構(gòu)具有自由度眾多、運(yùn)動(dòng)復(fù)雜、控制精度要求高等特點(diǎn)。實(shí)踐表明,由于指令順序執(zhí)行,單個(gè)單片機(jī)很難完成多任務(wù)系統(tǒng)的設(shè)計(jì)。然而,采用多個(gè)單片機(jī)分布控制的方式,雖然能夠滿足設(shè)計(jì)需求,但系統(tǒng)穩(wěn)定性較差,設(shè)計(jì)成本增加。

    本文選用非定制邏輯器件FPGA作為控制芯片來完成整個(gè)驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì)。區(qū)別于單片機(jī),F(xiàn)PGA并行的設(shè)計(jì)理念可使系統(tǒng)模塊獨(dú)立運(yùn)行,在簡化系統(tǒng)架構(gòu)的同時(shí),提高執(zhí)行機(jī)構(gòu)的協(xié)同性。
1 面部運(yùn)動(dòng)分析與系統(tǒng)硬件結(jié)構(gòu)
    本系統(tǒng)用于驅(qū)動(dòng)西南科技大學(xué)自主研發(fā)的MSR2型仿人機(jī)器人面部產(chǎn)生人類表情,如圖1所示。其面部具有21個(gè)基本動(dòng)作單元AU(Action Unit),主要集中分布于眉毛、眼球、眼瞼、嘴巴和下頜等5個(gè)部位,如圖2所示。表1給出了5個(gè)部位的驅(qū)動(dòng)電機(jī)和傳感器分布情況。

    面部驅(qū)動(dòng)系統(tǒng)是仿人機(jī)器人控制系統(tǒng)的一個(gè)組成部分,面部單元運(yùn)動(dòng)指令由上層PC機(jī)完成。因此,本文將面部驅(qū)動(dòng)系統(tǒng)劃分成電機(jī)控制、反饋信號(hào)采集和上位機(jī)通信三個(gè)部分,圖3所示為硬件結(jié)構(gòu)示意圖。

2 FPGA模塊化設(shè)計(jì)
    本設(shè)計(jì)選擇Altera公司Cyclone II系列FPGA器件EP2C5Q208C8,作為驅(qū)動(dòng)系統(tǒng)核心控制芯片。
2.1 電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)
    仿人機(jī)器人頭部空間狹小,選用的微型舵機(jī)型號(hào)為H301,其旋轉(zhuǎn)角速度為500°/s。H301的控制僅需一路周期為20 ms的PWM脈沖, 有效正脈寬范圍為0.5 ms~2.5 ms,對(duì)應(yīng)舵機(jī)旋轉(zhuǎn)角度范圍為0°~180°。PWM脈寬與H301轉(zhuǎn)角呈線性對(duì)應(yīng)關(guān)系。驅(qū)動(dòng)系統(tǒng)需要實(shí)現(xiàn)對(duì)21路舵機(jī)的控制,即需要FPGA輸出21路PWM[4]。PWM的輸出可以作為一個(gè)模塊來設(shè)計(jì),以下是舵機(jī)模塊SteeringGear實(shí)例SG1的Verilog HDL代碼:
    SteeringGear SG1(.clk(clk)               //50 MHz時(shí)鐘輸入
    .rst_n(rst_n)                                     //復(fù)位信號(hào),低電平有效
    .pwm_out_en(pwm_EN)                       //PWM輸出使能
    .correct_temp(pc_chang)                      //PWM參數(shù)修正
    .pwm_val(Data_Received)  //轉(zhuǎn)角控制
    .pwm(pwm[1]))   //PWM輸出
  
應(yīng)pwm_val的值為7 500。因此,舵機(jī)模塊設(shè)計(jì)正確。
2.2 反饋信號(hào)采集模塊設(shè)計(jì)
     位置檢測電位器作為反饋傳感器,反饋面部機(jī)構(gòu)的運(yùn)動(dòng)位置,為驅(qū)動(dòng)系統(tǒng)提供誤差補(bǔ)償。系統(tǒng)選用精密電位器J50S,其線性精度為±0.1%。
    J50S反饋的電壓信號(hào)是模擬量,F(xiàn)PGA的模數(shù)轉(zhuǎn)換外置了16位ADC芯片LTC1864。電位器檢測的理論精度為0.005 2°。驅(qū)動(dòng)系統(tǒng)將面部位置反饋電位器分成6、7兩組,由LTC1864配合單8路模擬開關(guān)CD4051實(shí)現(xiàn)。與FPGA硬件接口如圖5所示。

    在Slave FIFO操作模式下,增強(qiáng)型8051內(nèi)核利用固件將CY7C68013A配置成Slave FIFO模式后,不參與外設(shè)與USB主機(jī)的數(shù)據(jù)交互[5-6]。經(jīng)過實(shí)驗(yàn)測試,Slave FIFO模式的USB數(shù)據(jù)傳輸速率可達(dá)21.6 Mb/s, 滿足了系統(tǒng)需求。
3 驅(qū)動(dòng)系統(tǒng)工作流程
    圖7所示為驅(qū)動(dòng)系統(tǒng)主要工作流程圖。驅(qū)動(dòng)系統(tǒng)上電復(fù)位初始化后,USB模塊監(jiān)測上位機(jī)PC的指令;當(dāng)?shù)玫絇C指令后,USB模塊接收運(yùn)動(dòng)數(shù)據(jù);FPGA將數(shù)據(jù)分配給電機(jī)模塊;電機(jī)旋轉(zhuǎn)驅(qū)動(dòng)面部運(yùn)動(dòng)機(jī)構(gòu),牽扯仿真人面皮展現(xiàn)人類表情。位置反饋模塊采集電位器的角位移,與理論值計(jì)算運(yùn)動(dòng)誤差;如果誤差在允許范圍內(nèi),則反饋數(shù)據(jù)至PC;否則通過誤差補(bǔ)償算法,給原始數(shù)據(jù)添加補(bǔ)償系數(shù),重新分配數(shù)據(jù)。

4 系統(tǒng)實(shí)驗(yàn)與結(jié)果分析
    將本文設(shè)計(jì)的仿人機(jī)器人面部驅(qū)動(dòng)系統(tǒng)與以單片機(jī)為核心的系統(tǒng)做表情對(duì)比實(shí)驗(yàn)。MSR2面部前一版本的驅(qū)動(dòng)系統(tǒng)選用3個(gè)單片機(jī)(型號(hào)為STM32F103VE),分別控制3個(gè)模塊,單片機(jī)之間采用CAN總線通信。
    為了達(dá)到實(shí)驗(yàn)?zāi)康?,選擇驚訝、厭惡、憤怒、欣喜4種有明顯區(qū)分的表情作測試。系統(tǒng)有13個(gè)檢測點(diǎn)位置,即反饋電位器的檢測點(diǎn)。實(shí)驗(yàn)允許每個(gè)檢測點(diǎn)的誤差為±1°。兩個(gè)驅(qū)動(dòng)系統(tǒng)分別針對(duì)每種表情重復(fù)實(shí)驗(yàn)100次,得到400組反饋數(shù)據(jù)。根據(jù)均方差公式分別計(jì)算出各個(gè)檢測點(diǎn)的偏差,并通過Matlab軟件得到兩個(gè)系統(tǒng)的4種表情控制偏差對(duì)比圖,如圖8所示。

 

 

    由圖8可以得出,基于FPGA的驅(qū)動(dòng)系統(tǒng)的控制精度要高于以STM32分布控制的精度。經(jīng)測試基于FPGA的驅(qū)動(dòng)系統(tǒng)響應(yīng)時(shí)間約為703 ms,而基于STM32單片機(jī)的驅(qū)動(dòng)系統(tǒng)的響應(yīng)時(shí)間約為978 ms。由此得出,以FPGA為核心的控制系統(tǒng), 總體性能優(yōu)于基于STM32的驅(qū)動(dòng)系統(tǒng)。
    本文分析了仿人機(jī)器人面部運(yùn)動(dòng)控制點(diǎn),將其驅(qū)動(dòng)系統(tǒng)劃分成了3個(gè)模塊,分別介紹了各個(gè)模塊的FPGA設(shè)計(jì)方法,并給出了系統(tǒng)主要工作流程。通過實(shí)驗(yàn)驗(yàn)證,基于FPGA的驅(qū)動(dòng)系統(tǒng)基本達(dá)到了人類表情變化的速率和較為準(zhǔn)確的表情展現(xiàn)度。目前,采用該驅(qū)動(dòng)系統(tǒng)后,仿人面部可以區(qū)分出18種表情。隨著后續(xù)仿真人面皮制作工藝的提高,仿人機(jī)器人再現(xiàn)的表情將更為細(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ī)器人[J].機(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ī)械臂多路舵機(jī)控制器設(shè)計(jì)[J]. 微特電機(jī), 2011(4):73-75.
[5] 錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2006.
[6] 劉吉, 楊德偉,文懷濤,等.基于USB通信的FPGA高速數(shù)據(jù)采集系統(tǒng)[J]. 現(xiàn)代電子技術(shù), 2011,34(10):186-192.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。