合肥工業(yè)大學(xué)(宣城校區(qū))信息工程系 望明星 張 萌 吳仲修 高 鑫 董智源
伴隨著自動(dòng)化、計(jì)算機(jī)、人工智能以及傳感器等技術(shù)的飛速發(fā)展[1]。以仿生學(xué)知識(shí)為指導(dǎo),研究自然界中擁有優(yōu)良的協(xié)調(diào)控制能力和高超運(yùn)動(dòng)能力的各種生物,并將研究成果應(yīng)用到現(xiàn)實(shí)領(lǐng)域,已成為研究人員感興趣的熱點(diǎn)之一。六足機(jī)器人更是仿生學(xué)對(duì)多足昆蟲(chóng)研究的典型代表。多足機(jī)器人與輪式、履帶式移動(dòng)機(jī)器人相比,具有獨(dú)特的優(yōu)越性能,尤其在地形不規(guī)則和崎嶇不平的環(huán)境中,穩(wěn)定性好、能耗較小,而且能適應(yīng)各種復(fù)雜的環(huán)境[2]。同時(shí),人機(jī)交互領(lǐng)域的發(fā)展趨勢(shì)之一就是自然便捷的語(yǔ)音技術(shù)。機(jī)器人的應(yīng)用范圍正不斷向非結(jié)構(gòu)化環(huán)境延伸 。在這種情況下,機(jī)器人的控制系統(tǒng)至關(guān)重要。
本文就是基于多足昆蟲(chóng)的仿生學(xué)研究,在充分了解其運(yùn)動(dòng)方式、系統(tǒng)組成形式和控制模式的基礎(chǔ)上,結(jié)合非特定人語(yǔ)音技術(shù),設(shè)計(jì)了一款能夠?qū)崿F(xiàn)特定功能的多足機(jī)器人控制系統(tǒng)。
圖1 六足機(jī)器人控制流程
六足機(jī)器人主要包括Arduino主控制板、語(yǔ)音模塊、20路舵機(jī)控制板、藍(lán)牙模塊和超聲波模塊。舵機(jī)控制模塊的輸入信號(hào)與Arduino的第一串口輸出信號(hào)連接;語(yǔ)音識(shí)別模塊的輸出信號(hào)與Arduino的第二串口輸入信號(hào)連接;超聲波模塊的輸出信號(hào)與Arduino的第三串口輸入信號(hào)連接;手柄控制器模塊的無(wú)線通信輸出信號(hào)與舵機(jī)控制模塊的藍(lán)牙輸入信號(hào)連接;舵機(jī)控制模塊的輸出信號(hào)與六足機(jī)器人舵機(jī)模塊連接;六足機(jī)器人舵機(jī)模塊由十八路舵機(jī)組成,整體控制流程如圖1所示。其中Arduino控制板作為主控制器,能夠接收、處理外界信息,具有決策功能;語(yǔ)音和藍(lán)牙模塊可以隨時(shí)接受外部信息,以便實(shí)現(xiàn)對(duì)機(jī)器人的實(shí)時(shí)控制;手柄控制器可以直接控制機(jī)器人的運(yùn)動(dòng);舵機(jī)控制板負(fù)責(zé)控制機(jī)器人的運(yùn)動(dòng)協(xié)調(diào)。
不同于人機(jī)交互的傳統(tǒng)鍵控、觸控等方式,語(yǔ)音控制方式具有獨(dú)特的自然性和智能性。系統(tǒng)采用WEGASUN-M6語(yǔ)音識(shí)別模塊,利用上位機(jī)軟件對(duì)語(yǔ)音識(shí)別模塊的工作模式、詞條指令和各項(xiàng)參數(shù)進(jìn)行設(shè)置。該語(yǔ)音模塊既可獨(dú)立運(yùn)行,也可通過(guò)TTL串口與單片機(jī)相連接,通過(guò)串口接收指令和返回結(jié)果,達(dá)到語(yǔ)音控制的效果。模塊支持中文和英文的識(shí)別,識(shí)別距離為5米,能夠智能地降噪、過(guò)濾并識(shí)別非特定人的語(yǔ)音。模塊還支持串口點(diǎn)播擴(kuò)展TF卡里的MP3文件,并具有文字合成語(yǔ)音播放的功能。
圖2 WEGASUN-M6語(yǔ)音模塊
機(jī)器人基于代碼開(kāi)源、靈活便捷的電子設(shè)計(jì)平臺(tái)Arduino。該平臺(tái)包括一塊實(shí)現(xiàn)電路功能的電路板以及一套類似于C語(yǔ)言和Java的IDE集成開(kāi)發(fā)環(huán)境。系統(tǒng)選用Arduino Mega 2560作為機(jī)器人的主控電路板,它以ATmega 2560為處理器核心,具有54路的數(shù)字I/O口。其中的16路作為PWM輸出,16路作為模擬輸入和4路UART接口。硬件電路的串口通信連接如圖3所示,波特率統(tǒng)一設(shè)置為9600 Baud/s。
機(jī)器人有十八路舵機(jī),為準(zhǔn)確協(xié)調(diào)的相互配合完成各種動(dòng)作,可將舵機(jī)控制板通過(guò)2路UART接口與Mega 2560相連,作為二級(jí)控制器。舵機(jī)控制板以ARM內(nèi)核作為處理器,能夠生成穩(wěn)定的多路PWM信號(hào),最多同時(shí)控制32路舵機(jī)??刂瓢鍍?nèi)置存儲(chǔ)芯片,可以存儲(chǔ)步態(tài)動(dòng)作。
圖3 串口通信連接圖
六足機(jī)器人對(duì)環(huán)境極強(qiáng)的適應(yīng)性體現(xiàn)在冗余的仿生肢體結(jié)構(gòu)上[3]。機(jī)器人的行走、轉(zhuǎn)彎等動(dòng)作需要十八個(gè)舵機(jī)相互協(xié)調(diào)、配合,所以相應(yīng)的步態(tài)程序設(shè)計(jì)比較復(fù)雜。本文通過(guò)在上位機(jī)中對(duì)十八路舵機(jī)的角度和速度進(jìn)行控制,來(lái)規(guī)劃設(shè)計(jì)六足機(jī)器人的不同動(dòng)作,如圖4所示。
圖4 上位機(jī)界面
圖中,只列出了8個(gè)舵機(jī)位。舵機(jī)位的不同序號(hào),表示1~18路舵機(jī),所屬列下面的數(shù)字表示該位置舵機(jī)的角度度數(shù),變化范圍是從0到180度;時(shí)間列下面的參數(shù)是舵機(jī)運(yùn)行到該位置時(shí)執(zhí)行指令所用的時(shí)間,可以在軟件中進(jìn)行修改,達(dá)到調(diào)整姿態(tài)的目的;動(dòng)作序號(hào)列下面的數(shù)字表示成功完成一組動(dòng)作,所有舵機(jī)角度變化的全過(guò)程。六足機(jī)器人典型的步態(tài)有:三角步態(tài)、四角步態(tài)、五角步態(tài)、橫向步態(tài)和定點(diǎn)轉(zhuǎn)彎步態(tài)等[4]。三角步態(tài)是六足機(jī)器人適用性最強(qiáng)的步態(tài),將六只足分為兩組,左前足、左后足、右中足為一組,右前足、右后足、左中足為一組,兩組分別形成三角形的支架。機(jī)器人依靠?jī)山M足相互交替地完成抬起、支撐和擺動(dòng)等動(dòng)作,實(shí)現(xiàn)穩(wěn)定的行走。在三角步態(tài)的基礎(chǔ)上,上位機(jī)中設(shè)計(jì)了六足機(jī)器人的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)步態(tài),使它可以適應(yīng)各種復(fù)雜地形。
Arduino mega 2560的串口2和語(yǔ)音模塊連接,接收語(yǔ)音模塊解析后的語(yǔ)音指令。在上位機(jī)軟件中可以對(duì)WEGASUN-M6語(yǔ)音識(shí)別??爝M(jìn)行設(shè)置。語(yǔ)音模塊有3種不同的識(shí)別模式,如表1所示:
表1
@AsrMode#2$是軟件中模式的設(shè)置格式,@AsrMode#2$中的2可以設(shè)置成0-2中的任一數(shù)字,不同的數(shù)字分別對(duì)應(yīng)不同模式。因?yàn)閷?duì)話模式會(huì)時(shí)刻對(duì)環(huán)境中的口令詞條進(jìn)行識(shí)別操作,容易造成誤識(shí)別。因此我們選擇了自定義模式,設(shè)置了特定的喚醒詞。選擇了識(shí)別模式后,可以分別設(shè)置“識(shí)別詞條”和“反饋語(yǔ)文本”,例如:
@WriteFlashText#|001前進(jìn)|002收到$
其中,“前進(jìn)”是語(yǔ)音模塊可以識(shí)別的詞條,內(nèi)部軟件通過(guò)001來(lái)代表該指令。收到前進(jìn)的指令后會(huì)反饋發(fā)出“收到”的語(yǔ)音,內(nèi)部軟件通過(guò)002來(lái)代表該指令??梢砸淮涡栽O(shè)置多條詞條,最多可設(shè)置3500字節(jié),約1750字。$是設(shè)置格式的結(jié)束符。
語(yǔ)音模塊收到指令后對(duì)后臺(tái)詞條指令庫(kù)進(jìn)行搜索,并向Arduino控制板返回與指令匹配的指令號(hào);Arduino控制板通過(guò)內(nèi)置程序識(shí)別指令號(hào),調(diào)用舵機(jī)控制板中預(yù)先存入的動(dòng)作組,實(shí)現(xiàn)語(yǔ)音對(duì)機(jī)器人的動(dòng)作控制。
本文設(shè)計(jì)了一種基于Arduino和語(yǔ)音技術(shù)的六足機(jī)器人控制系統(tǒng),并在此基礎(chǔ)上增加了藍(lán)牙控制、串口控制和手柄控制。給機(jī)器人設(shè)置了多種動(dòng)作組,可以通過(guò)語(yǔ)音實(shí)時(shí)的對(duì)機(jī)器人進(jìn)行各種步態(tài)的控制。交互方式友好便捷,多種控制方式的加入也使得系統(tǒng)更加穩(wěn)健。
[1]儲(chǔ)忠.六足仿生機(jī)器人的運(yùn)動(dòng)步態(tài)研究[D].合肥:合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,2007,1~51.
[2]王洪斌,李程,王躍靈等.基于Arduino和藍(lán)牙技術(shù)的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),2015,32(4):533~537.
[3]李滿宏,張明路,張建華,張小俊 六足機(jī)器人關(guān)鍵技術(shù)綜述[J].機(jī)械設(shè)計(jì),2015,32(10):1~7.
[4]劉鵬飛.六足機(jī)器人步態(tài)分析與控制研究[D].秦皇島:燕山大學(xué)電氣工程學(xué)院,2015:1~60.