朱將勇,王國慶,盧化龍,梁思瑞,王馳凱
(長安大學 工程機械學院,西安 710064)
隨著社會老齡化問題日趨加劇,在服務(wù)行業(yè)普遍面臨著招工難的問題。為了解決勞動力短缺的問題,企業(yè)開始引進服務(wù)機器人[1],為了實現(xiàn)各種復雜的功能,則對服務(wù)機器人控制器有了更高的要求。因此,研究服務(wù)機器人控制器具有廣泛的市場價值,目前國內(nèi)外也有許多關(guān)于服務(wù)機器人控制器方面的研究,機器人理論及其關(guān)鍵技術(shù)研究是我國工程領(lǐng)域長期面臨的科學挑戰(zhàn)[2-4]。文獻[5]進行了移動服務(wù)機器人基于任務(wù)分配模式的集成控制器研究,在一定程度上提高控制器的實時性。文獻[6]研究一種基于語音識別控制模式的醫(yī)用服務(wù)機器人,提高機器人語音識別方面的性能。文獻[7]采用基于非完全輪式移動機器人的混合控制器,對機器人軌跡在不確定干擾的情況下進行研究。文獻[8]設(shè)計一種應用在淺水域的水下機器人,通過將各類傳感器數(shù)據(jù)融合作為做控制算法輸入,在一定程度上提高機器人的平穩(wěn)性。文獻[9]設(shè)計了雙輪平衡機器人的控制系統(tǒng)方案,從改進控制算法的角度來優(yōu)化電機的控制,提高機器人的抗干擾能力。文獻[10-11]提出多核異構(gòu)的控制器,也在一定程度上提高控制器的性能,但很難有效地提取人類控制機器人的規(guī)律。
由此可以看出,上述研究更多的只是在某些方面對服務(wù)機器人控制器的性能進行改善,但依舊無法滿足人們對控制器的高要求,因此,本文提出通用型服務(wù)機器人控制器開發(fā)平臺,從軟件和硬件的方面進行綜合考慮。目前我們的平臺還在試驗階段,平臺不僅實現(xiàn)了運動控制功能,而且還使Android移動設(shè)備集多媒體UI交互、圖像及數(shù)據(jù)的傳輸與處理、傳感器信號采集等功能為一體;現(xiàn)在的Android移動設(shè)備技術(shù)成熟,價格較便宜,利用其進行控制器的開發(fā),不僅滿足復雜的控制系統(tǒng)要求,而且有效降低開發(fā)成本,精簡結(jié)構(gòu)設(shè)計,節(jié)約控制器開發(fā)時間,迎合市場需求,可實現(xiàn)廣泛推廣。
本文研究的服務(wù)機器人控制器開發(fā)平臺主要對服務(wù)機器人通用控制器進行整體開發(fā),實現(xiàn)控制器的低成本和易開發(fā)。其分為硬件子系統(tǒng)和軟件子系統(tǒng),軟件子系統(tǒng)包含了支持服務(wù)機器人開發(fā)的語言——EngineerC語言,它是一種跨平臺圖形化開發(fā)環(huán)境。它也包含人類智慧采集系統(tǒng)HIA,用于快速生成控制歸律來實現(xiàn)智能化控制機器人。自主開發(fā)的EngineerC語言是以C語言為基礎(chǔ),結(jié)合C++/C#的特點,簡化語法規(guī)定。在跨平臺圖形化開發(fā)環(huán)境中實現(xiàn)圖形拖拽,并提高編程的易用性,可完成對Android系統(tǒng)、Windowsphone系統(tǒng)和MCU的程序開發(fā)。通過用戶在服務(wù)機器人上放置的各種傳感器,人類智慧采集系統(tǒng)HIA可以獲得機器人的移動軌跡和各種傳感器數(shù)據(jù),以此得到運動控制算法,最終獲得人類控制機器人的規(guī)律。通過Socket通訊,把控制規(guī)律傳送到交互層控制器中,實現(xiàn)對機器人的控制。硬件子系統(tǒng)是由基于Android的中央調(diào)度與交互層控制器和面向服務(wù)的多核異構(gòu)行為層控制器組成。中央調(diào)度與交互層控制器主要是負責人機交互。面向服務(wù)的行為層控制器,主要是基于自主知識產(chǎn)權(quán)的多核異構(gòu)控制器,采取前后臺分工模式,提高控制系統(tǒng)的實時性和穩(wěn)定性。該平臺系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)圖Fig.1 System overall architecture
為了任務(wù)的管理與分配,多核異構(gòu)控制器采用主從控制模式。主控制器向從控制器發(fā)送控制指令,一個從控制器完成特定類型的任務(wù),根據(jù)性能不同將任務(wù)劃分到主控制器、從控制器中,從而使每個控制器控制不同的模塊??刂破饔布扇∧K化設(shè)計,可實現(xiàn)獨立調(diào)試與多任務(wù)同步運行。通過這種方式可以極大地提高控制器的可靠性和實時性。控制器由驅(qū)動模塊,控制模塊,可擴展I/O模塊,傳感器數(shù)據(jù)采集模塊、電源模塊、反饋模塊等組成,本文控制器包含較多模塊,此處僅以傳感器數(shù)據(jù)采集模塊為例說明運動控制過程。如圖2所示,主控制器通過SPI把超聲波傳感器獲取數(shù)據(jù)的指令傳給從控制器1,從控制器1發(fā)送一個Trig觸發(fā)信號給超聲波傳感器,超聲波傳感器把得到的電信號ECHO返回給從控制器1,從控制器把相應的電信號再發(fā)送給主控制器,主控制器就可得到超聲波傳感器采集到的數(shù)據(jù)。
圖2 超聲波傳感器獲取數(shù)據(jù)流程Fig.2 Ultrasonic sensor to obtain data flow chart
本文采用常見的HC-SRO4超聲波測距模塊,其可提供2 cm~400 ccm的非接觸式距離感測功能,測距精度可達3 cmm;其與從MCU的連接則根據(jù)外接的 4路插針,VCC(直流 5 cV)、GND(實現(xiàn)模塊間共地)、信號的輸入(Trig)引腳、輸出(Echo)引腳,硬件連接原理圖如圖3所示。Trig引腳與Echo引腳需要與MCU的兩個具有定時器功能的引腳相連接,MCU發(fā)送的控制信號,經(jīng)過SN74LVC4245A電壓轉(zhuǎn)換芯片,進行電壓的拉高,對其Trig管腳輸入一個10US以上的高電平,HC-SRO4便可發(fā)出超聲波脈沖,當檢測到回波反饋信號時,其Echo引腳將輸出一個持續(xù)的高電平,電平寬度為超聲波往返時間之和。主MCU根據(jù)高電平持續(xù)的時間計算與分析得到與障礙物之間的距離,通過SPI通訊將任務(wù)發(fā)送給相應的從MCU,進而控制機器人的移動,規(guī)避障礙物。多核異構(gòu)控制器實物如圖4所示。
圖3 超聲波傳感器部分原理圖Fig.3 Partial schematic of ultrasonic sensor
圖4 多核異構(gòu)控制器硬件實物圖Fig.4 Physical figure of service-oriented multi-core heterogeneous hardware
中央調(diào)度與交互層控制器通過OTG通訊與行為層控制器進行實時數(shù)據(jù)交互,并通過Android設(shè)備進行人機交互。中央調(diào)度與交互層控制器分為APP底層與用戶端兩部分。APP底層由四部分組成,分別是基本功能、中間數(shù)據(jù)庫、系統(tǒng)異常和用戶代碼異常處理、功能函數(shù)庫。基本功能部分主要包括對事件的監(jiān)聽和廣播的收發(fā)等;中間數(shù)據(jù)庫用于存儲中間數(shù)據(jù),如傳感器數(shù)據(jù)等;系統(tǒng)異常和用戶代碼異常處理機制,用于異常的處理,避免APP運行出錯而造成死機或閃退的現(xiàn)象,能夠讓用戶清晰地看到出錯位置和錯誤的原因,方便用戶對代碼的修改,保證了APP的正常運行;功能函數(shù)庫包含用戶編程所需要的一些功能函數(shù),如WiFi連接函數(shù)、語音識別函數(shù)、傳感器數(shù)據(jù)獲取函數(shù)等。其中傳感器數(shù)據(jù)獲取函數(shù)尤為重要,現(xiàn)在Android移動設(shè)備一般都會內(nèi)置一些常用傳感器,例如加速度傳感器、距離傳感器、磁場傳感器等。通過傳感器數(shù)據(jù)獲取函數(shù),我們可以獲取很多相關(guān)的數(shù)據(jù),這些數(shù)據(jù)在一定程度上降低用戶編程難度,提高編程效率。
面向EngineerC的圖形化開發(fā)環(huán)境可用于跨平臺的開發(fā),其實現(xiàn)了常用語句的半結(jié)構(gòu)化自然語言編程。在編程環(huán)境的主頁面中,用戶通過圖形拖拽可完成工程建立與函數(shù)添加,并實現(xiàn)交互式的代碼自動生成功能。該系統(tǒng)在編輯過程中,開發(fā)環(huán)境后臺可自動生成可編譯的EngineerC語言代碼。
在EngineerC圖形化開發(fā)環(huán)境中,圖形化語句都來自于系統(tǒng)自帶的語句控件圖形庫。用戶可添加自定義的變量和動作,并可調(diào)用已重新二次封裝的外部動作庫。該圖形化開發(fā)環(huán)境可以支持安卓系統(tǒng)編程,也支持ARM系列單片機編程,并形成各自的應用基礎(chǔ)庫APISDK。其整體架構(gòu)圖如圖5所示。
圖5 EngineerC圖形化開發(fā)環(huán)境架構(gòu)圖Fig.5 EngineerC graphical development environment architecture diagram
移動端可視化UI開發(fā)環(huán)境主要針對Android系統(tǒng)和Windowsphone系統(tǒng)的應用開發(fā),可在UI開發(fā)環(huán)境中對手機應用的界面進行可視化設(shè)計,同時在開發(fā)環(huán)境中生成手機應用的后臺代碼并打包發(fā)送給具體的手機用戶,通過專門的應用來完成解析,最后生成對應的手機APP。對于控件及整個應用的后臺程序編寫是通過EngineerC來完成,應用的后臺動作全部由安卓庫中的二次開發(fā)函數(shù)完成??刂破骺梢暬疷I設(shè)計界面如圖6所示,后臺代碼的自動生成界面如圖7所示。
圖6 控制器可視化UI設(shè)計Fig.6 Visual UI design interface of controller
圖7 后臺代碼的自動生成Fig.7 Generating the background code
人類智慧采集系統(tǒng)HIA由五部分組成:用戶控制模塊、自定義場景搭建模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)存儲與提取模塊、數(shù)據(jù)傳輸模塊。用戶控制模塊由用戶在頂端對虛擬樣機模型進行操控。自定義場景搭建模塊可讓用戶自定義鋪設(shè)機器人行走路面,自定義添加障礙物,如墻壁。其添加障礙物界面如圖8所示。
用戶在機器人各個位置放置任意數(shù)量傳感器,數(shù)據(jù)采集模塊通過系統(tǒng)會自動記錄任意時間下各個傳感器的數(shù)值,并且記錄用戶的操作動作。數(shù)據(jù)存儲與提取模塊則將采集模塊的數(shù)據(jù)存入txt文件中,其數(shù)據(jù)存儲如圖9所示,這是距離傳感器到障礙物的距離數(shù)據(jù)。
圖8 用戶自定義障礙添加界面Fig.8 User defined obstacle add interface
圖9 采集模塊數(shù)據(jù)存儲Fig.9 Data storage of acquisition module
多物料承載移動式服務(wù)機器人主要由控制系統(tǒng)、驅(qū)動系統(tǒng)、殼體內(nèi)的主體機構(gòu)、機械臂、頭部五大部分組成??刂葡到y(tǒng)采取基于多核異構(gòu)控制器和Android移動設(shè)備組成的協(xié)同式控制器。運輸時將物料存儲在機器人內(nèi)部,根據(jù)物料大小不同,控制系統(tǒng)采取不同的運輸模式。機器人如圖10所示。
圖10 多物料承載移動式服務(wù)機器人Fig.10 Multi material carrying mobile service robot
經(jīng)過實驗驗證,通用服務(wù)機器人協(xié)同式控制器開發(fā)平臺可用于機器人控制器的通用開發(fā),實現(xiàn)了運動控制、多傳感器數(shù)據(jù)的獲取與處理、多媒體UI交互等功能。本平臺利用已有的Android移動設(shè)備,降低用戶的開發(fā)成本和難度,滿足市場需求,具備進一步工業(yè)化的能力。