張 利 張立杰 黃 彥
(宜昌測試技術研究所 宜昌 443003)
從1920年捷克斯洛伐克作家卡佩克在他的一本科幻小說—《羅薩姆的機器人萬能公司》中構思和幻想了第一個名字叫羅伯特(Robot)的機器人,到1947年美國橡樹嶺國家實驗室研制成功第一臺主從遙控機器人,再到2004年3月9日索尼公司的人形機器人“QRIO”在東京市舉行的節目彩排中登臺亮相,擔任樂隊指揮,機器人的研制取得了巨大的發展。“機器人時代已經拉開了序幕,機器人就在我們中間”。機器人,特別是娛樂機器人,已經發展成為一種產業,方興未艾[1]。
隨著一年一度的“全國舞蹈機器人大賽”的舉行,舞蹈機器人的研制在大學生中越來越普及。舞蹈機器人屬娛樂機器人的一種,它集軟件與硬件于一體,是一個比較完善的系統,其設計涉及到控制、機械、舞蹈與音樂等各方面。
機器人控制系統是整個舞蹈機器人的核心,直接影響到整個舞蹈機器人的性能和表現能力。在低成本的前提下,目前參加機器人比賽的舞蹈機器人多采用51系列單片機來直接實現對電機的控制,大大限制了對舞蹈機器人自由度的擴展和功能的擴展。特別是當驅動電機包含多路舵機時,這種控制方式就顯得“力不從心”,不能在產生舵機控制信號的同時完成對步進電機或直流電機的控制,以及實現其它一些輔助功能。為此有人采用雙或多CPU的控制方式,即系統采用兩個或多個單片機來分別實現對不同種類電機的控制。但是這種控制方式對機器人動作控制的協調性較差,且系統復雜,穩定性較差[3]。
本文介紹了一個基于AVR單片機和FPGA的舞蹈機器人控制系統,能同時實現對2個直流電機的伺服控制和對16個獨立舵機的調速控制。系統采用角度插值的舵機速度控制和節拍分割的舞蹈節奏控制方法,使舞蹈機器人能隨音樂節奏的變化自動切換舞蹈動作和速度。
基于該控制系統的舞蹈機器人在表演過程中動作平穩、流暢、節奏感好,系統穩定可靠,并在“2004濱州機器人邀請賽”中獲得亞軍。
控制系統硬件設計是整個舞蹈機器人系統設計的基礎,直接影響到機器人性能的發揮和可擴展性以及系統軟件編程的復雜程度。
控制系統的硬件包括:單片機、FPGA、執行電機、驅動及反饋檢測模塊、存儲模塊、串行通信模塊、防碰撞模塊以及UPS供電模塊等部分。其整體結構框圖如圖1所示。

圖1 舞蹈機器人控制系統框圖
電機是舞蹈機器人各種動作的直接執行機構,其型號和性能決定了機器人的表現能力和主控系統的工作方式。
考慮到舞蹈機器人體積、重量以及動作不要求十分精確等自身特點,采用兩個直流電機做底盤驅動,其型號為SMD882212(自帶減速30r/min)。
舵機具有體積小、重量輕、定位準確、力矩大和不需要附加驅動電路等特點,能夠較好地勝任對舞蹈機器人任何自由度的驅動,從而實現各種舞蹈動作。所以選用16個舵機來對16個自由度進行全方位控制,舵機牌號為GWS MINI/STD微型舵機(15個)和S04 BB大扭力舵機(2個)。
單片機是整個控制系統的“大腦”。為使機器人動作與音樂合拍,要求單片機不僅能實時處理各種舞蹈動作的驅動數據,還要能夠及時處理各種反饋信息。基于以上考慮選用了ATMEL公司生產的Atmega8515L單片機。
Atmega8515L單片機是一款新型的AVR單片機。它具有以下特點:1)在線可編程 ISP(In-System Programming),使得在不用單片機仿真器的情況下,可以方便的對單片機程序進行修改;2)速度快、支持單時鐘周期指令,使得機器人在處理完動作數據后,有足夠的時間來響應各種反饋信息;3)豐富的片內資源,包括可編程異步串行口、內部及外部中斷和為下載程序而設計的SPI串行口[5]。
試驗證明,由一片單片機同時產生16個相互獨立的舵機和2個直流電機的控制信號雖然可以使硬件電路設計稍微簡單,但卻使單片機軟件設計非常復雜,并且實時性不好。考慮到FPGA具有在線可編程、大容量和多I/O引腳、實時性好等特點,選用FPGA芯片來實時產生舵機控制信號[4]。
FPGA芯片負責產生16路相互獨立的舵機控制信號。舵機每個動作的實現只需要FPGA從單片機PA口連續兩次讀入兩個命令字:1)舵機要轉到的角度;2)第幾路舵機動作。舵機在未收到新的動作命令之前一直保持在原角度上。各路舵機信號相互獨立。
利用MAX+PLUSⅡ10.0開發環境,對所編寫的Verilog HDL程序項目進行FPGA器件自動適配,并在此基礎上選定了EPF10K10芯片。
驅動及反饋檢測模塊主要包括直流電機的驅動電路和光電編碼器模塊。選用一片具有四路驅動能力的L293芯片驅動兩個直流電機。每個直流電機需要兩路控制信號,一路為轉向控制信號,一路為轉速控制信號。通過轉向控制信號高低電平的切換,實現直流電機轉向控制;通過轉速控制信號占空比的改變,實現直流電機速度PWM控制。此外,還為機器人底盤安裝了光電編碼器,通過計算光電編碼器反饋回來的脈沖個數可以準確的知道機器人行走的距離和轉彎角度。
供電電源是整機電路工作可靠的保證。為了簡化供電系統、提高可靠性,本系統采用單電源供電。
電源模塊包括電池組和電平轉換、穩壓電路。電池組由兩路3節的鋰電池組并聯而成,電池容量為2Ah/3.6V。電平轉換由DC-DC變換模塊HZD20-12S05構成,穩壓電路由 LM7812穩壓模塊組成。DC-DC模塊5V電壓輸出被分成兩路,一路負責單片機、FPGA芯片及其相應的外圍電路供電,另一路負責舵機供電;LM7812的12V電壓輸出負責直流電機驅動芯片供電。
為了防止機器人在舞臺邊緣做動作時發生碰撞或者被卡死,在機器人的底盤前、后兩個方向上安裝了光電開關模塊。光電開關模塊的輸出信號經反相器連到單片機的INT0引腳,利用AVR單片機的外部中斷0,對發生碰撞或卡死的情況進行處理。外部中斷0一旦被觸發,既進入防碰撞處理程序,控制機器人往相反方向運動。
串行通信模塊主要用于單片機與PC機控制軟件之間的串行通信,實現舞蹈動作的在片編輯、調試。該模塊由RS-232總線接口、電平轉換芯片組成,利用PC機的COM 口經由MAX232芯片驅動與單片機實現通信。
PC機COM口是符合EIA RS-232C規范的外部總線標準接口。RS-232C采用的是負邏輯,即邏輯“1”為-5V 至-15V,邏輯“0”為+5V 至 +15V;而CMOS電平的邏輯“1”為 4.99V,邏輯“0”為0.01V;T TL電平的邏輯“1”和“0”則分別為2.4V和0.4V。因此在實現PC機與單片機串行通信時需外接MAX232電平轉換電路,在發送端將T TL或CMOS電平轉換為RS-232C電平,在接收端將RS-232C電平再轉換為T T L或CMOS電平。
存儲模塊用來存放上位機軟件編輯好的舞蹈動作數據。設計中以5分鐘動作數據量為標準,選用了一片容量為8K的EEPROM芯片24LC64作為存儲元件。AVR單片機以I2C總線的方式實現對該存儲芯片的讀/寫操作。
如何使舞蹈機器人的動作產生快慢變化并具有節奏感是控制系統需要解決的關鍵問題。
為了實現舞蹈動作快慢隨音樂變化而改變,本文采用了一種舵機角度插值的策略,即把舵機定位在初始位置和目標位置之間的多個中間位置。例如:如果舵機現處在 20°位置處,要運動到25°位置處,系統可以讓舵機先轉到21°位置處,然后轉到22°、23°、24°,最后轉到 25°位置處 ,這就使得舵機動作速度減慢。如果使舵機以不同的中間位置點數遞增,就可以得到不同的舵機運動速度了。在實際中,把舵機0~180°轉角細分為100等份,即舵機轉動以1.8°的整數倍為中間位置。
為保證機器人舞蹈動作的節奏性,將舞蹈動作按音樂節拍來分割。編輯舞蹈動作時,通過上位機控制軟件以節拍為單位錄入動作;實現舞蹈動作時,單片機程序以音樂節拍時間為單位讀入動作數據。在PC機端,上位機軟件將在一個音樂節拍內各路舵機要完成的動作經過處理后按事先指定的格式存儲到一個數組內,再通過計算機串口下載到EEPROM 中;在單片機端,單片機程序在下一個音樂節拍到來之前從EEPROM讀入下一組動作數據,并在上一舞蹈節拍結束后將該組動作數據送往FPGA控制其輸出相應的PWM信號驅動舵機執行舞蹈動作。
舞蹈機器人經裝機調試,實現了舞蹈動作的在線編輯和平穩流暢控制,并在“2004濱州機器人邀請賽”中獲得亞軍。
本文研制的舞蹈機器人控制系統具有以下特點:
1)舞蹈機器人控制采用AVR單片機和FPGA相配合,充分利用單片機成本低、運算控制簡單和FPGA實時并行處理能力強、引腳數量多等特點實現了16個舵機的同步控制和I/O端口擴展,使外圍接口簡單,整機性價比高。
2)舞蹈機器人采用角度插值控制思想,實現了對舵機速度在0~180°轉角范圍內平滑轉動和變速的控制,使舞蹈動作隨著音樂節拍而變化自如。
3)利用自主開發的具有圖形界面的上位機控制軟件實現舞蹈動作的可視化編輯調試,調試簡單 、快捷 。
4)舞蹈機器人以音樂節拍為時間單位實現舞蹈動作的編輯,方便了舞蹈動作調試,且動作更具節奏感。
[1]Kazuhiro Kosuge,Tomohiro Hayashi,Yasuhisa Hirata,et al.Dance Partner Robot-Ms DanceR[C]//2003 IEEE/RSJ International Conference,2003,4(3):3459~3464
[2]楊子夫,米良川,李德升,等.舞蹈機器人步進電機驅動電路和程序設計[J].計算機應用,2002,28(9)
[3]董建軍,楊文杰,王兵.舞蹈機器人的設計與控制[J].信陽師范學院學報,2002,15(4):456~467
[4]熊承義,孫奉婁.一種基于CPLD的寬可調PWM信號發生器[J].中南民族學院學報,2001,30(3):9~11
[5]宋建國.AVR單片機原理及應用[M].北京:北京航空航天大學出版社,1998,10
[6][美]邁克?普瑞德科.機器人控制器與程序設計[M].宗光華,李大寨,譯.北京:科學出版社,2004