《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的仿人機器人面部驅動系統(tǒng)
基于FPGA的仿人機器人面部驅動系統(tǒng)
來源:電子技術應用2013年第6期
肖志鋒, 段玉琴, 蔡 勇,, 蔣 剛
西南科技大學 制造科學與工程學院, 四川 綿陽 621010
摘要: 針對單片機在處理多任務事件時的延時問題,,提出了基于現(xiàn)場可編程門陣列(FPGA)的驅動系統(tǒng)設計方案。根據(jù)FPGA的多任務可并行處理特點,分別進行設計和驗證并通過在一片F(xiàn)PGA上統(tǒng)一實例化模塊,,簡化了驅動系統(tǒng)的硬件結構,。實驗表明,基于FPGA的驅動系統(tǒng)可有效提高面部表情控制準確度和表情再現(xiàn)速率,。
中圖分類號: TP242.6
文獻標識碼: A
文章編號: 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

    為了能夠充分表達人類的情感,,仿人機器人通過多個運動機構牽動仿真人面皮實現(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.

此內容為AET網站原創(chuàng),,未經授權禁止轉載。