華中師范大學(xué)計(jì)算機(jī)學(xué)院 王澤紅 彭 熙 劉思源 康程華 張桓瑜 盧書宇
近年來,機(jī)器人作為高技術(shù)領(lǐng)域內(nèi)具有代表性的戰(zhàn)略目標(biāo),機(jī)器人技術(shù)的研究與發(fā)展很受重視。我國的“中國制造2025”國家創(chuàng)新戰(zhàn)略就把發(fā)展機(jī)器人作為搶占技術(shù)和市場制高點(diǎn)的重要戰(zhàn)略舉措。[1]
舞蹈機(jī)器人是一種娛樂機(jī)器人,具有人類外觀特征,能伴隨音樂進(jìn)行舞蹈表演,其較強(qiáng)的觀賞性和娛樂功能使其具有很大的研究與市場開發(fā)價值。舞蹈機(jī)器人同一般機(jī)器人,由機(jī)械結(jié)構(gòu)、控制系統(tǒng)、驅(qū)動裝置和傳感系統(tǒng)等組成。本次設(shè)計(jì)采用Arduino單片機(jī)作為舞蹈機(jī)器人硬件控制系統(tǒng)的核心,使用19個LDX-227舵機(jī)作為關(guān)節(jié)驅(qū)動和一個微伺服電機(jī)控制器作為舵機(jī)驅(qū)動,實(shí)現(xiàn)對伺服舵機(jī)的分時控制,以達(dá)到控制機(jī)器人完成各種動作的目的。為機(jī)器人設(shè)計(jì)紅外測距系統(tǒng),通過紅外測距技術(shù)實(shí)現(xiàn)人機(jī)交互功能。并根據(jù)需求繪制舞蹈機(jī)器人零部件圖紙,通過3D打印技術(shù)制造出機(jī)器人整體零部件。
設(shè)計(jì)與開發(fā)一款舞蹈機(jī)器人,首先需要對其總體進(jìn)行分析與設(shè)計(jì),確定該款機(jī)器人的功能,基本結(jié)構(gòu)和系統(tǒng)配置。
該款舞蹈機(jī)器人設(shè)計(jì)目的為從藝術(shù)性與觀賞性出發(fā),實(shí)現(xiàn)機(jī)器人舞蹈表演和人機(jī)交互功能。我們提出以下設(shè)計(jì)要點(diǎn):
(1)機(jī)器人為雙足類人結(jié)構(gòu),具有19個自由度。自由度分配為:一個1自由度的頸部,一雙4自由度的手部,一雙5自由度的腿部。這款機(jī)器人需可完成大部分普通舞蹈動作,以及轉(zhuǎn)動手腕的特殊舞蹈動作,實(shí)現(xiàn)機(jī)器人舞蹈表演功能。
(2)根據(jù)系統(tǒng)的工作要求設(shè)計(jì)控制電路,實(shí)現(xiàn)機(jī)器人各關(guān)節(jié)自由度協(xié)調(diào)控制,并使機(jī)器人具有穩(wěn)定系統(tǒng)性能。
(3)為機(jī)器人設(shè)計(jì)紅外測距系統(tǒng),根據(jù)人距離機(jī)器人遠(yuǎn)近做出不同交互動作,使其具備人機(jī)交互功能。
(4)利用3D打印技術(shù)設(shè)計(jì)舞蹈機(jī)器人外觀部件,最大程度滿足觀賞性和娛樂性的要求。
(5)設(shè)計(jì)一套契合機(jī)器人設(shè)計(jì)主題的舞蹈動作,并編寫對應(yīng)Arduino程序。
硬件系統(tǒng)設(shè)計(jì)方案分為機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)以及控制系統(tǒng)的硬件設(shè)計(jì)部分。
2.1.1 機(jī)械結(jié)構(gòu)
經(jīng)過分析,要實(shí)現(xiàn)預(yù)期舞蹈動作,本款舞蹈機(jī)器人應(yīng)設(shè)計(jì)為雙足類人結(jié)構(gòu),具有19個自由度。圖1為舞蹈機(jī)器人整體結(jié)構(gòu)示意圖。所有自由度由伺服舵機(jī)分別單獨(dú)控制,其中自由度分配如圖1所示。
圖1 舞蹈機(jī)器人整體結(jié)構(gòu)示意圖
(1)頸部:一個1自由度??蓪?shí)現(xiàn)頭部的來回轉(zhuǎn)動。
(2)肩部:兩個自由度。可實(shí)現(xiàn)肩部前后擺動和左右擺動。
(3)肘部:一個自由度??蓪?shí)現(xiàn)手臂的旋轉(zhuǎn)。該關(guān)節(jié)通常設(shè)計(jì)為實(shí)現(xiàn)手臂曲伸,但考慮到手臂重量和特殊舞蹈動作設(shè)計(jì)需求,我們做出了滿足需求的修改。
(4)手腕:一個自由度??煽刂剖植块_合,實(shí)現(xiàn)機(jī)器人用手部夾取東西的功能。
(5)跨部:兩個自由度??蓪?shí)現(xiàn)跨部開合和大腿前后抬放動作。
(6)膝部:一個自由度。實(shí)現(xiàn)膝部曲伸動作。
(7)腳腕:兩個自由度。實(shí)現(xiàn)腳板抬放和里側(cè)外側(cè)動作。
2.1.2 控制系統(tǒng)硬件設(shè)計(jì)
本文所涉及的舞蹈機(jī)器人系統(tǒng),主要組成部分為:Arduino M0單片機(jī)、傳感器拓展板、32路伺服舵機(jī)控制器、GP2D12紅外測距傳感器、伺服舵機(jī)、電源。其硬件系統(tǒng)組成框圖如圖2所示。
(1)Arduino M0:我們選擇Arduino M0作為機(jī)器人控制主板。Arduino將開源硬件與開源軟件相結(jié)合,是一塊基于開放原始碼的USB接口Simple I/O接口板[2]。Arduino的電路板是硬件開源的,而配套上位機(jī)是軟件開源的,我們可以容易的找到相應(yīng)的電路圖紙、軟件代碼和庫文件,十分便于我們在其上進(jìn)行自主設(shè)計(jì)并開發(fā)。Arduino可以脫離電腦獨(dú)立運(yùn)行,可以搭配各種傳感器使用,能滿足機(jī)器人控制系統(tǒng)設(shè)計(jì)需求。
圖2 舞蹈機(jī)器人硬件系統(tǒng)組成框圖
一套4分鐘左右的流暢美觀的舞蹈,通常需要350步以上的機(jī)器人動作,對應(yīng)的代碼相對較大,單片機(jī)需要有足夠大的內(nèi)存存儲空間來存儲程序。Arduino M0是UNO的增強(qiáng)版,具有較大的內(nèi)存,更符合我們的需求。
表1所示為Aduino M0和Arduino UNO的參數(shù)對比:
表1 Arduino M0和UNO參數(shù)對比
(1)傳感器拓展板:Arduino Sensor Shield V5.0傳感器擴(kuò)展板將Arduino控制器的全部數(shù)字與模擬接口以舵機(jī)線序形式擴(kuò)展出來,十分便于我們連接單片機(jī)與需要的傳感器。
(2)功能選擇開關(guān):開關(guān)一端連接數(shù)字接口作為輸入端,另一端連接單片機(jī)穩(wěn)定輸出3.3v電壓的正極。用來實(shí)現(xiàn)機(jī)器人舞蹈表演或人機(jī)交互的功能選擇。
(3)微伺服電機(jī)控制器:由于Arduino M0上只有14個PWM引腳,不能滿足我們設(shè)計(jì)需求,因此我們選用了Arduino 32路伺服舵機(jī)控制器作為微伺服電機(jī)控制器。其具有控制指令精簡,控制轉(zhuǎn)角精度高,波特率可以實(shí)時更改,體積小,重量輕等優(yōu)點(diǎn)。通過Arduino M0單片機(jī)給控制器傳遞控制指令信號,可實(shí)現(xiàn)對多路伺服舵機(jī)的分時控制。
(4)紅外測距傳感器:GP2D12紅外線測距傳感器輸出為模擬值,其電壓值與被測物距離值成反比。大約為距離10cm輸出2.55V,距離80cm輸出0.42V。使用Arduino的模擬量采樣命令analogRead()獲得模擬量數(shù)據(jù)。
圖3 模擬信號與測量距離對應(yīng)表
圖3所示為GP2D12紅外測距傳感器模擬信號與測量距離對應(yīng)表。analogRead()命令采樣的數(shù)據(jù)范圍由0到1023,對應(yīng)的電壓范圍由0到5v,每單位數(shù)據(jù)代表0.0049v,讀取的有效數(shù)據(jù)由86(0.42v)到520(2.548v)。另外這個關(guān)系式里的距離為參考距離,實(shí)際距離值需另外減去0.42cm。對應(yīng)圖4曲線有實(shí)際距離與采樣數(shù)據(jù)之間的關(guān)系式為:
實(shí)際距離=2547.8/(( float)采樣數(shù)據(jù)*0.49-10.41)-0.42
(1)伺服舵機(jī):舵機(jī)是一種位置的伺服驅(qū)動器,具有閉環(huán)控制系統(tǒng)的機(jī)電結(jié)構(gòu),由小型直流電機(jī)、變速齒輪組、可調(diào)電位器、控制板等部件組成[3]。由于可以方便地控制舵機(jī)旋轉(zhuǎn)的角度,在舞蹈機(jī)器人設(shè)計(jì)中被廣泛應(yīng)用。伺服舵機(jī)接收控制器發(fā)出的脈寬調(diào)制(PWM)信號,獲得直流偏置電壓。舵機(jī)內(nèi)部的基準(zhǔn)電路產(chǎn)生周期為20ms,脈寬為1.5ms的基準(zhǔn)信號。將直流偏置電壓與電位器的電壓比較得到的電壓差輸出到電機(jī)驅(qū)動芯片,驅(qū)動芯片根據(jù)電壓差的正負(fù)控制電機(jī)的正反轉(zhuǎn)。[4]
本設(shè)計(jì)選用的舵機(jī)為深圳樂幻索爾科技公司的270o數(shù)字雙軸舵機(jī)。該款舵機(jī)利用PWM脈寬型調(diào)節(jié)角度,周期20ms,占空比0.5ms~2.5ms的脈寬電平對應(yīng)舵機(jī)0°~270°角度范圍,且成線性關(guān)系。數(shù)字舵機(jī)具有發(fā)送一次PWM信號就能鎖定角度不變,控制精度高、響應(yīng)速度快、線性度好的優(yōu)點(diǎn),270o的舵機(jī)能實(shí)現(xiàn)舞蹈機(jī)器人大部分舞蹈動作。
(2)電源:電源模塊主要用來給系統(tǒng)中控制板和伺服舵機(jī)分別供電,使其不會發(fā)生相互干擾。系統(tǒng)電路各部分所需電壓不盡相同,Arduino M0工作電壓為3.3v,紅外測距傳感器工作電壓為5v,控制板控制端工作電壓為+7v~+12v,而LDX-227舵機(jī)工作電壓為+6v~+8.4v?;谙到y(tǒng)需求,機(jī)器人電源模塊與硬件系統(tǒng)各模塊接線如圖4所示。
圖4 舞蹈機(jī)器人硬件系統(tǒng)接線圖
根據(jù)機(jī)械結(jié)構(gòu)設(shè)計(jì)與控制電路設(shè)計(jì),單片機(jī)上的控制程序主要包括一個主程序和多個實(shí)現(xiàn)相應(yīng)功能的子程序。Arduino代碼兼容C/C++語言,程序采用C語言按模塊化編程思想進(jìn)行編寫。機(jī)器人舞蹈動作、機(jī)器人不同的交互動作、功能選擇判斷、紅外測距數(shù)據(jù)處理均在子函數(shù)中完成,主函數(shù)負(fù)責(zé)對子函數(shù)的調(diào)用。圖5所示為主程序結(jié)構(gòu)框圖:
圖5 主程序框圖
圖6 舞蹈機(jī)器人等軸測圖
在程序編寫完成后,我們用Arduino官方推出的標(biāo)準(zhǔn)編譯環(huán)境——Arduino IDE進(jìn)行代碼的編譯于燒錄。
在機(jī)器人設(shè)計(jì)過程中,我們充分考慮機(jī)器人的美觀性和穩(wěn)定性,同時考慮到機(jī)器人本體重量不能過重,否則舵機(jī)功率消耗太大,帶來舵機(jī)過度損耗和系統(tǒng)供電困難的難題。在便于零部件設(shè)計(jì)、測試、修改的前提下,我們采用3D打印技術(shù)進(jìn)行機(jī)器人整體零部件的設(shè)計(jì)與實(shí)現(xiàn)。
3D打印技術(shù),即增材制造(additive manufacturing,AM)技術(shù)是通過CAD設(shè)計(jì)數(shù)據(jù)采用材料逐層累加的方法制造實(shí)體零件的技術(shù),相對于傳統(tǒng)的材料去除(切削加工)技術(shù),是一種“自下而上”材料累加制造制造方法。[5]3D打印過程分為三維設(shè)計(jì)、切片處理、修改打磨步驟。
基于舞蹈機(jī)器人整體結(jié)構(gòu)設(shè)計(jì)和功能需求,我們用CAD和3ds Max繪制出機(jī)器人整體零部件圖紙。圖6所示為舞蹈機(jī)器人整體三維模型等軸測圖。
機(jī)器人零部件三維模型設(shè)計(jì)中,零部件尺寸要與選用的LDX-227伺服舵機(jī)尺寸適合,在機(jī)器人頭部、軀干、四肢外,要有能安裝Arduino單片機(jī)和傳感器拓展板、微伺服電機(jī)控制器以及電源的空間。零部件厚度應(yīng)在保證機(jī)器人穩(wěn)定性的前提下考慮美觀性。經(jīng)過反復(fù)打印測試和修改,我們最終設(shè)計(jì)出一款美觀、穩(wěn)定的機(jī)器人圖紙。
其中,為滿足舞蹈表演主題,機(jī)器人頭部設(shè)計(jì)參考了孫悟空形象,手部設(shè)計(jì)為可開合夾取物體的形狀,使機(jī)器人可實(shí)現(xiàn)轉(zhuǎn)、甩金箍棒等特殊舞蹈動作。
設(shè)計(jì)完成后,進(jìn)行了功能測試。測試方法為:
(1)設(shè)計(jì)一套測試動作,動作中包含前進(jìn)、后退、側(cè)移、蹲下起立、單腳站立、夾取物體、揮舞物體等動作。將編寫好的程序燒錄入主控板,將機(jī)器人放于2m*2m的木板上運(yùn)行,測試機(jī)器人執(zhí)行動作的穩(wěn)定性。
(2)運(yùn)行紅外測距部分代碼,障礙物距離機(jī)器人15——25cm處,26——35cm處,40cm以外,機(jī)器人分別做出相應(yīng)的交互動作,測試人機(jī)交互功能。
經(jīng)過測試,機(jī)器人能穩(wěn)定流暢地進(jìn)行舞蹈表演,但由于機(jī)器人重心偏高,肘部不能曲伸等因素,無法實(shí)現(xiàn)翻滾、倒立一類的難度動作。紅外測距部分則能較準(zhǔn)確地識別障礙物的距離并作出相應(yīng)動作??傮w而言,測試結(jié)果比較理想。
本文設(shè)計(jì)了一款外形美觀、性能穩(wěn)定的小型舞蹈機(jī)器人。機(jī)器人共19個自由度,能進(jìn)行舞蹈表演,能實(shí)現(xiàn)人機(jī)交互功能。此外本系統(tǒng)具有舞蹈機(jī)器人研究的拓展空間,能在本系統(tǒng)上模擬、研究多傳感器在舞蹈機(jī)器人上的應(yīng)用,研究機(jī)器人運(yùn)動規(guī)律,為智能機(jī)器人的研究提供了一個可靠的平臺。在機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)中,我們花費(fèi)大量精力不斷修改完善對每個零部件的設(shè)計(jì),最終完成兩臺穩(wěn)定美觀的3D打印的完整機(jī)器人。在硬件系統(tǒng)設(shè)計(jì)中,我們試用和比較了幾款A(yù)rduino主板,最后選擇了Arduino M0作為舞蹈機(jī)器人的主控板,在設(shè)計(jì)與研究的過程中,由于Arduino主板PWM引腳數(shù)的少于設(shè)計(jì)所需的自由度數(shù),我們增加了32路伺服舵機(jī)控制板來滿足對分時控制多個伺服舵機(jī)的需求。
[1]余東華,胡亞男,呂逸楠.新工業(yè)革命背景下“中國制造2025”的技術(shù)創(chuàng)新路徑和產(chǎn)業(yè)選擇研究[J].天津社會科學(xué),2015(4).
[2]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012(16).
[3]胡小江,董飛垚,雷虎民,等.基于虛擬儀器的舵機(jī)半實(shí)物仿真系統(tǒng)研究[J].測控技術(shù),2011(1).
[4]蔡睿妍.基于Arduino的舵機(jī)控制系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2012(15).
[5]盧秉恒,李滌塵.增材制造(3D打印)技術(shù)發(fā)展[J].機(jī)械制造與自動化,2013(04).