華中師范大學計算機學院 王澤紅 彭 熙 劉思源 康程華 張桓瑜 盧書宇
近年來,機器人作為高技術領域內具有代表性的戰略目標,機器人技術的研究與發展很受重視。我國的“中國制造2025”國家創新戰略就把發展機器人作為搶占技術和市場制高點的重要戰略舉措。[1]
舞蹈機器人是一種娛樂機器人,具有人類外觀特征,能伴隨音樂進行舞蹈表演,其較強的觀賞性和娛樂功能使其具有很大的研究與市場開發價值。舞蹈機器人同一般機器人,由機械結構、控制系統、驅動裝置和傳感系統等組成。本次設計采用Arduino單片機作為舞蹈機器人硬件控制系統的核心,使用19個LDX-227舵機作為關節驅動和一個微伺服電機控制器作為舵機驅動,實現對伺服舵機的分時控制,以達到控制機器人完成各種動作的目的。為機器人設計紅外測距系統,通過紅外測距技術實現人機交互功能。并根據需求繪制舞蹈機器人零部件圖紙,通過3D打印技術制造出機器人整體零部件。
設計與開發一款舞蹈機器人,首先需要對其總體進行分析與設計,確定該款機器人的功能,基本結構和系統配置。
該款舞蹈機器人設計目的為從藝術性與觀賞性出發,實現機器人舞蹈表演和人機交互功能。我們提出以下設計要點:
(1)機器人為雙足類人結構,具有19個自由度。自由度分配為:一個1自由度的頸部,一雙4自由度的手部,一雙5自由度的腿部。這款機器人需可完成大部分普通舞蹈動作,以及轉動手腕的特殊舞蹈動作,實現機器人舞蹈表演功能。
(2)根據系統的工作要求設計控制電路,實現機器人各關節自由度協調控制,并使機器人具有穩定系統性能。
(3)為機器人設計紅外測距系統,根據人距離機器人遠近做出不同交互動作,使其具備人機交互功能。
(4)利用3D打印技術設計舞蹈機器人外觀部件,最大程度滿足觀賞性和娛樂性的要求。
(5)設計一套契合機器人設計主題的舞蹈動作,并編寫對應Arduino程序。
硬件系統設計方案分為機器人機械結構設計以及控制系統的硬件設計部分。
2.1.1 機械結構
經過分析,要實現預期舞蹈動作,本款舞蹈機器人應設計為雙足類人結構,具有19個自由度。圖1為舞蹈機器人整體結構示意圖。所有自由度由伺服舵機分別單獨控制,其中自由度分配如圖1所示。

圖1 舞蹈機器人整體結構示意圖
(1)頸部:一個1自由度。可實現頭部的來回轉動。
(2)肩部:兩個自由度。可實現肩部前后擺動和左右擺動。
(3)肘部:一個自由度。可實現手臂的旋轉。該關節通常設計為實現手臂曲伸,但考慮到手臂重量和特殊舞蹈動作設計需求,我們做出了滿足需求的修改。
(4)手腕:一個自由度。可控制手部開合,實現機器人用手部夾取東西的功能。
(5)跨部:兩個自由度。可實現跨部開合和大腿前后抬放動作。
(6)膝部:一個自由度。實現膝部曲伸動作。
(7)腳腕:兩個自由度。實現腳板抬放和里側外側動作。
2.1.2 控制系統硬件設計
本文所涉及的舞蹈機器人系統,主要組成部分為:Arduino M0單片機、傳感器拓展板、32路伺服舵機控制器、GP2D12紅外測距傳感器、伺服舵機、電源。其硬件系統組成框圖如圖2所示。
(1)Arduino M0:我們選擇Arduino M0作為機器人控制主板。Arduino將開源硬件與開源軟件相結合,是一塊基于開放原始碼的USB接口Simple I/O接口板[2]。Arduino的電路板是硬件開源的,而配套上位機是軟件開源的,我們可以容易的找到相應的電路圖紙、軟件代碼和庫文件,十分便于我們在其上進行自主設計并開發。Arduino可以脫離電腦獨立運行,可以搭配各種傳感器使用,能滿足機器人控制系統設計需求。

圖2 舞蹈機器人硬件系統組成框圖
一套4分鐘左右的流暢美觀的舞蹈,通常需要350步以上的機器人動作,對應的代碼相對較大,單片機需要有足夠大的內存存儲空間來存儲程序。Arduino M0是UNO的增強版,具有較大的內存,更符合我們的需求。
表1所示為Aduino M0和Arduino UNO的參數對比:

表1 Arduino M0和UNO參數對比
(1)傳感器拓展板:Arduino Sensor Shield V5.0傳感器擴展板將Arduino控制器的全部數字與模擬接口以舵機線序形式擴展出來,十分便于我們連接單片機與需要的傳感器。
(2)功能選擇開關:開關一端連接數字接口作為輸入端,另一端連接單片機穩定輸出3.3v電壓的正極。用來實現機器人舞蹈表演或人機交互的功能選擇。
(3)微伺服電機控制器:由于Arduino M0上只有14個PWM引腳,不能滿足我們設計需求,因此我們選用了Arduino 32路伺服舵機控制器作為微伺服電機控制器。其具有控制指令精簡,控制轉角精度高,波特率可以實時更改,體積小,重量輕等優點。通過Arduino M0單片機給控制器傳遞控制指令信號,可實現對多路伺服舵機的分時控制。
(4)紅外測距傳感器:GP2D12紅外線測距傳感器輸出為模擬值,其電壓值與被測物距離值成反比。大約為距離10cm輸出2.55V,距離80cm輸出0.42V。使用Arduino的模擬量采樣命令analogRead()獲得模擬量數據。

圖3 模擬信號與測量距離對應表
圖3所示為GP2D12紅外測距傳感器模擬信號與測量距離對應表。analogRead()命令采樣的數據范圍由0到1023,對應的電壓范圍由0到5v,每單位數據代表0.0049v,讀取的有效數據由86(0.42v)到520(2.548v)。另外這個關系式里的距離為參考距離,實際距離值需另外減去0.42cm。對應圖4曲線有實際距離與采樣數據之間的關系式為:
實際距離=2547.8/(( float)采樣數據*0.49-10.41)-0.42
(1)伺服舵機:舵機是一種位置的伺服驅動器,具有閉環控制系統的機電結構,由小型直流電機、變速齒輪組、可調電位器、控制板等部件組成[3]。由于可以方便地控制舵機旋轉的角度,在舞蹈機器人設計中被廣泛應用。伺服舵機接收控制器發出的脈寬調制(PWM)信號,獲得直流偏置電壓。舵機內部的基準電路產生周期為20ms,脈寬為1.5ms的基準信號。將直流偏置電壓與電位器的電壓比較得到的電壓差輸出到電機驅動芯片,驅動芯片根據電壓差的正負控制電機的正反轉。[4]
本設計選用的舵機為深圳樂幻索爾科技公司的270o數字雙軸舵機。該款舵機利用PWM脈寬型調節角度,周期20ms,占空比0.5ms~2.5ms的脈寬電平對應舵機0°~270°角度范圍,且成線性關系。數字舵機具有發送一次PWM信號就能鎖定角度不變,控制精度高、響應速度快、線性度好的優點,270o的舵機能實現舞蹈機器人大部分舞蹈動作。
(2)電源:電源模塊主要用來給系統中控制板和伺服舵機分別供電,使其不會發生相互干擾。系統電路各部分所需電壓不盡相同,Arduino M0工作電壓為3.3v,紅外測距傳感器工作電壓為5v,控制板控制端工作電壓為+7v~+12v,而LDX-227舵機工作電壓為+6v~+8.4v。基于系統需求,機器人電源模塊與硬件系統各模塊接線如圖4所示。

圖4 舞蹈機器人硬件系統接線圖
根據機械結構設計與控制電路設計,單片機上的控制程序主要包括一個主程序和多個實現相應功能的子程序。Arduino代碼兼容C/C++語言,程序采用C語言按模塊化編程思想進行編寫。機器人舞蹈動作、機器人不同的交互動作、功能選擇判斷、紅外測距數據處理均在子函數中完成,主函數負責對子函數的調用。圖5所示為主程序結構框圖:

圖5 主程序框圖

圖6 舞蹈機器人等軸測圖
在程序編寫完成后,我們用Arduino官方推出的標準編譯環境——Arduino IDE進行代碼的編譯于燒錄。
在機器人設計過程中,我們充分考慮機器人的美觀性和穩定性,同時考慮到機器人本體重量不能過重,否則舵機功率消耗太大,帶來舵機過度損耗和系統供電困難的難題。在便于零部件設計、測試、修改的前提下,我們采用3D打印技術進行機器人整體零部件的設計與實現。
3D打印技術,即增材制造(additive manufacturing,AM)技術是通過CAD設計數據采用材料逐層累加的方法制造實體零件的技術,相對于傳統的材料去除(切削加工)技術,是一種“自下而上”材料累加制造制造方法。[5]3D打印過程分為三維設計、切片處理、修改打磨步驟。
基于舞蹈機器人整體結構設計和功能需求,我們用CAD和3ds Max繪制出機器人整體零部件圖紙。圖6所示為舞蹈機器人整體三維模型等軸測圖。
機器人零部件三維模型設計中,零部件尺寸要與選用的LDX-227伺服舵機尺寸適合,在機器人頭部、軀干、四肢外,要有能安裝Arduino單片機和傳感器拓展板、微伺服電機控制器以及電源的空間。零部件厚度應在保證機器人穩定性的前提下考慮美觀性。經過反復打印測試和修改,我們最終設計出一款美觀、穩定的機器人圖紙。
其中,為滿足舞蹈表演主題,機器人頭部設計參考了孫悟空形象,手部設計為可開合夾取物體的形狀,使機器人可實現轉、甩金箍棒等特殊舞蹈動作。
設計完成后,進行了功能測試。測試方法為:
(1)設計一套測試動作,動作中包含前進、后退、側移、蹲下起立、單腳站立、夾取物體、揮舞物體等動作。將編寫好的程序燒錄入主控板,將機器人放于2m*2m的木板上運行,測試機器人執行動作的穩定性。
(2)運行紅外測距部分代碼,障礙物距離機器人15——25cm處,26——35cm處,40cm以外,機器人分別做出相應的交互動作,測試人機交互功能。
經過測試,機器人能穩定流暢地進行舞蹈表演,但由于機器人重心偏高,肘部不能曲伸等因素,無法實現翻滾、倒立一類的難度動作。紅外測距部分則能較準確地識別障礙物的距離并作出相應動作。總體而言,測試結果比較理想。
本文設計了一款外形美觀、性能穩定的小型舞蹈機器人。機器人共19個自由度,能進行舞蹈表演,能實現人機交互功能。此外本系統具有舞蹈機器人研究的拓展空間,能在本系統上模擬、研究多傳感器在舞蹈機器人上的應用,研究機器人運動規律,為智能機器人的研究提供了一個可靠的平臺。在機器人機械結構設計中,我們花費大量精力不斷修改完善對每個零部件的設計,最終完成兩臺穩定美觀的3D打印的完整機器人。在硬件系統設計中,我們試用和比較了幾款Arduino主板,最后選擇了Arduino M0作為舞蹈機器人的主控板,在設計與研究的過程中,由于Arduino主板PWM引腳數的少于設計所需的自由度數,我們增加了32路伺服舵機控制板來滿足對分時控制多個伺服舵機的需求。
[1]余東華,胡亞男,呂逸楠.新工業革命背景下“中國制造2025”的技術創新路徑和產業選擇研究[J].天津社會科學,2015(4).
[2]蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012(16).
[3]胡小江,董飛垚,雷虎民,等.基于虛擬儀器的舵機半實物仿真系統研究[J].測控技術,2011(1).
[4]蔡睿妍.基于Arduino的舵機控制系統設計[J].電腦知識與技術,2012(15).
[5]盧秉恒,李滌塵.增材制造(3D打印)技術發展[J].機械制造與自動化,2013(04).