尹作重,劉繼紅,王佃鵬,周建慧,黎曉東
(1.北京航空航天大學(xué) 機(jī)械工程及自動化學(xué)院,北京 100191; 2.北京機(jī)械工業(yè)自動化研究所有限公司,北京 100120; 3.山西大同大學(xué) 計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院,山西 大同 037009; 4.中國機(jī)械科學(xué)研究總院集團(tuán)有限公司,北京 100048)
隨著機(jī)器人應(yīng)用領(lǐng)域的擴(kuò)大,任務(wù)場景復(fù)雜度不斷提升,多機(jī)器人資源協(xié)作服務(wù)已成為必然趨勢。個(gè)體機(jī)器人資源部署有限,難以滿足多機(jī)器人協(xié)作執(zhí)行復(fù)雜任務(wù)的大容量存儲和高效計(jì)算能力等需求,云平臺技術(shù)的提出為多機(jī)器人資源服務(wù)提供了解決途徑。KUFFNER等[1]首次提出云機(jī)器人概念,機(jī)器人配置簡單的傳感器并連接到云,將數(shù)據(jù)處理等復(fù)雜的計(jì)算卸載到云端,可以完成繁雜的任務(wù)操作。同年,新加坡ASORO實(shí)驗(yàn)室研究了一個(gè)DAvinCi軟件框架,在Hadoop集群平臺上運(yùn)行FastSlam算法并結(jié)合機(jī)器人操作系統(tǒng)(Robot Operation System, ROS)的消息傳遞框架,基于云計(jì)算將服務(wù)機(jī)器人計(jì)算卸載到遠(yuǎn)程平臺上,提供彈性計(jì)算和存儲,為后來的機(jī)器人云服務(wù)平臺研究提供參考[2]。RoboEarth項(xiàng)目作為一個(gè)基于云計(jì)算的云端數(shù)據(jù)庫,機(jī)器人可通過它分享各式各樣的信息[3-5],但它忽略了在云端服務(wù)部署效率的問題。基于云計(jì)算和SOA(service-oriented architecture),清華大學(xué)聯(lián)合亞利桑那州立大學(xué)提出一種RCC(robot cloud center)框架,并給出了機(jī)器人即服務(wù)(Robot as a Service, RaaS)的概念[6]。隨著機(jī)器人及服務(wù)數(shù)量的增加,傳統(tǒng)數(shù)據(jù)庫查詢方式降低了機(jī)器人的實(shí)時(shí)性,服務(wù)版本的增多帶來的影響也會降低機(jī)器人的效率[7]。針對該問題,周風(fēng)余等[8]在此基礎(chǔ)上作出了改進(jìn),對服務(wù)路由選擇算法進(jìn)行了優(yōu)化,提出一個(gè)基于SOA的機(jī)器人云平臺總體架構(gòu)。但SOA的集成治理機(jī)制會使系統(tǒng)隨著業(yè)務(wù)發(fā)展需要擴(kuò)展時(shí)遇到瓶頸,因此微服務(wù)架構(gòu)已經(jīng)開始取代SOA成為主導(dǎo)的工業(yè)體系結(jié)構(gòu)。2018年,新加坡學(xué)者提出一種基于微服務(wù)的新型輕量化云機(jī)器人體系結(jié)構(gòu),并采用微服務(wù)架構(gòu)開發(fā)機(jī)器人應(yīng)用,但未能解決云平臺機(jī)器人服務(wù)自動化構(gòu)建部署的問題[9-15]。
目前面向多機(jī)器人協(xié)作領(lǐng)域?qū)嶋H應(yīng)用的云服務(wù)平臺大多存在異構(gòu)機(jī)器人多協(xié)議適配接入通用性欠缺、異構(gòu)機(jī)器人資源泛化程度不夠、服務(wù)應(yīng)用軟件耦合度高等問題,無法充分發(fā)揮云服務(wù)平臺下多機(jī)器人協(xié)作的真正優(yōu)勢。為有效解決以上問題,同時(shí)滿足工業(yè)機(jī)器人對云服務(wù)平臺的適用要求,本文提出一種更加通用的基于微服務(wù)的多機(jī)器人資源云服務(wù)平臺架構(gòu),該架構(gòu)組成包括協(xié)議適配層、資源虛擬化層、智能服務(wù)層和微服務(wù)層。
首先歸納總結(jié)了支持多場景多機(jī)器人良好協(xié)作的通用云服務(wù)架構(gòu)應(yīng)滿足的功能需求和非功能需求:
(1)支持異構(gòu)機(jī)器人協(xié)議適配接入云服務(wù)平臺;
(2)實(shí)現(xiàn)機(jī)器人資源統(tǒng)一管理;
(3)便捷部署的松耦合可擴(kuò)展服務(wù)軟件體系;
(4)實(shí)現(xiàn)多機(jī)器人協(xié)作的任務(wù)規(guī)劃算法;
(5)機(jī)器人資源和應(yīng)用服務(wù)具備可擴(kuò)展性;
(6)云服務(wù)平臺滿足一定的實(shí)時(shí)性要求。
基于以上需求分析,結(jié)合云計(jì)算和微服務(wù)架構(gòu)的技術(shù)優(yōu)勢,提出四層架構(gòu)的基于微服務(wù)的多機(jī)器人資源云服務(wù)平臺,如圖1所示,從下到上分別是協(xié)議適配層、資源虛擬化層、智能服務(wù)層和微服務(wù)層,并對各層功能進(jìn)行詳細(xì)說明。
(1)協(xié)議適配層
該層是云服務(wù)平臺底層感知與機(jī)器人應(yīng)用連接融合的中間件,考慮OPC UA目前已經(jīng)是工業(yè)機(jī)器人協(xié)議傳輸?shù)臉?biāo)準(zhǔn),本層負(fù)責(zé)通過智能網(wǎng)關(guān)集成OPC UA協(xié)議接口作為統(tǒng)一數(shù)據(jù)交換協(xié)議,主要解決異構(gòu)機(jī)器人對云服務(wù)平臺的適配接入問題包括:①對支持OPC UA協(xié)議的工業(yè)機(jī)器人,通過OPC UA客戶端和服務(wù)器之間的請求—應(yīng)答機(jī)制實(shí)現(xiàn)與云服務(wù)平臺的數(shù)據(jù)交換;②對不支持OPC UA協(xié)議(如Modbus)的工業(yè)機(jī)器人,通過智能網(wǎng)關(guān)的協(xié)議轉(zhuǎn)換功能,將其統(tǒng)一成OPC UA數(shù)據(jù)通信格式,實(shí)現(xiàn)與云服務(wù)平臺的數(shù)據(jù)交互。
(2)資源虛擬化層
該層是為了解決云服務(wù)平臺對異構(gòu)機(jī)器人管理的兼容性問題,實(shí)現(xiàn)局域云環(huán)境下異構(gòu)多機(jī)器人資源的優(yōu)化配置和統(tǒng)一調(diào)度。首先分析各類機(jī)器人資源的分類體系,定義相應(yīng)的機(jī)器人信息模型,然后基于統(tǒng)一的本體建模對機(jī)器人資源語義進(jìn)行描述,將各類機(jī)器人信息模型統(tǒng)一映射到云端,構(gòu)建異構(gòu)機(jī)器人統(tǒng)一本體模型,將機(jī)器人云端本體模型與現(xiàn)實(shí)世界中的物理模型進(jìn)行虛擬映射,從而實(shí)現(xiàn)多機(jī)器人資源云服務(wù)平臺中機(jī)器人虛擬資源的統(tǒng)一調(diào)度與管理。
(3)智能服務(wù)層
該層作為用戶與云服務(wù)平臺機(jī)器人資源的交互窗口,主要提供機(jī)器人資源的顯示、控制、管理及平臺維護(hù)等功能。用戶可通過界面提交多機(jī)器人協(xié)作任務(wù)的服務(wù)申請,智能服務(wù)層對該任務(wù)需求進(jìn)行解析,在綜合考慮任務(wù)資源需求、時(shí)空雙維度任務(wù)約束及機(jī)器人能力特征約束條件下,完成復(fù)雜任務(wù)分解過程和動態(tài)任務(wù)分配方案輸出,并進(jìn)一步經(jīng)由資源虛擬層、協(xié)議適配層轉(zhuǎn)換為不同機(jī)器人各自的協(xié)議類型指令,具體控制機(jī)器人執(zhí)行,實(shí)現(xiàn)用戶發(fā)布的任務(wù)需求。
(4)微服務(wù)層
該層是整個(gè)云服務(wù)平臺的支撐環(huán)境,由功能獨(dú)立且定義良好、通過輕量級REST協(xié)議通信的微服務(wù)粒子(用戶可自主開發(fā))組成,它們是實(shí)時(shí)動態(tài)重組的,是構(gòu)成業(yè)務(wù)應(yīng)用的重要資源。采用微服務(wù)實(shí)現(xiàn)業(yè)務(wù)功能的過程相當(dāng)于將原來單體式應(yīng)用程序功能拆分成一組可獨(dú)立開發(fā)、測試、部署、運(yùn)行、維護(hù)的微服務(wù),其中每個(gè)微服務(wù)對應(yīng)實(shí)現(xiàn)單個(gè)業(yè)務(wù)功能。微服務(wù)的拆分過程需遵循以下基本原則:①要保持與業(yè)務(wù)功能的一致性,梳理出各業(yè)務(wù)模塊之間的依賴關(guān)聯(lián)關(guān)系;②按照業(yè)務(wù)為單位拆分應(yīng)用,僅僅單向調(diào)用,避免環(huán)形依賴和雙向依賴形成循環(huán)調(diào)用;③高內(nèi)聚低耦合;④前后端設(shè)計(jì)分離;⑤Restful通信風(fēng)格。
首先梳理機(jī)器人系統(tǒng)常用通信協(xié)議及其特點(diǎn),選擇通用性較強(qiáng)的OPC UA作為異構(gòu)工業(yè)機(jī)器人的統(tǒng)一接口,對非OPC UA協(xié)議類型進(jìn)行消息轉(zhuǎn)換和解析封裝,達(dá)到多場景海量異構(gòu)機(jī)器人快速適配接入云服務(wù)平臺的功能目標(biāo),最后設(shè)計(jì)基于微服務(wù)的智能網(wǎng)關(guān),以實(shí)現(xiàn)多機(jī)器人適配接入。
基于OPC UA的工業(yè)機(jī)器人接入系統(tǒng)工作模式為客戶/服務(wù)器(Client/Server, C/S)模式,服務(wù)器端由智能網(wǎng)關(guān)(其實(shí)現(xiàn)OPC UA服務(wù)器功能)構(gòu)成,客戶端與OPC UA客戶端對應(yīng),如圖2所示,服務(wù)器端和客戶端的連接和服務(wù)是多對多的關(guān)系?;贠PC UA的工業(yè)機(jī)器人接入流程如下:
(1)服務(wù)器接收客戶端Get請求,服務(wù)器將處理后的內(nèi)容回復(fù)給客戶端,驗(yàn)證通過,轉(zhuǎn)(2);
(2)服務(wù)器接收客戶端請求,該請求表示需要得到底層終端相關(guān)內(nèi)容,服務(wù)端判斷安全證書可信后,并且OPC UA客戶端確認(rèn)并進(jìn)行通路聯(lián)系;
(3)服務(wù)器接收客戶端的請求,該請求用于通話界面的建立,OPC UA服務(wù)器返回包含隨機(jī)數(shù)的響應(yīng)信息,客戶端接收并成功解釋,完成通話界面建立的過程;
(4)OPC UA客戶端向服務(wù)器發(fā)送Act請求,驗(yàn)證成功,通話界面被激活,連接建立成功;
(5)通話結(jié)束,服務(wù)器接收客戶端請求,該請求用于對通話界面進(jìn)行斷聯(lián),客戶端確認(rèn)服務(wù)器處理后的內(nèi)容,斷開連接,通話過程結(jié)束。
非OPC UA工業(yè)機(jī)器人,如支持Modbus協(xié)議的工業(yè)機(jī)器人,接入云服務(wù)平臺的流程主要包含數(shù)據(jù)采集、數(shù)據(jù)解析、數(shù)據(jù)封裝、數(shù)據(jù)轉(zhuǎn)換和發(fā)布,具體如圖3所示。
上述流程的重點(diǎn)在于Modbus與OPC UA數(shù)據(jù)格式轉(zhuǎn)換,根據(jù)Modbus/RTU協(xié)議解析可輸出:①工業(yè)機(jī)器人設(shè)備地址和功能代碼;②客戶端請求過程中的起始地址和數(shù)據(jù)長度;③工業(yè)機(jī)器人響應(yīng)返回的數(shù)據(jù)長度和數(shù)值。為保證數(shù)據(jù)轉(zhuǎn)換和映射結(jié)果的一致性,本文定義了如表1所示數(shù)據(jù)類型映射關(guān)系,其中協(xié)議中設(shè)備地址對應(yīng)基于OPC UA的Device_id,即工業(yè)機(jī)器人地址,起始地址和數(shù)據(jù)長度可以解析出Name,即工業(yè)機(jī)器人變量,數(shù)值對應(yīng)Value。然后將變量DataType和系統(tǒng)DataTime基于OPC UA進(jìn)行封裝,完成工業(yè)機(jī)器人通信協(xié)議向基于OPC UA的數(shù)據(jù)轉(zhuǎn)換;逆向數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)為上述過程的逆過程。
表1 Modbus/RTU和OPC UA數(shù)據(jù)類型映射關(guān)系
協(xié)議轉(zhuǎn)換過程中,同步實(shí)時(shí)和無損是異構(gòu)協(xié)議轉(zhuǎn)換到基于OPC UA的地址空間的基礎(chǔ),同時(shí)應(yīng)注意,當(dāng)有多組數(shù)據(jù)時(shí),為保證數(shù)據(jù)完整傳輸,需對多組數(shù)據(jù)整體打包后,再進(jìn)行數(shù)據(jù)傳輸。
為了對異構(gòu)工業(yè)機(jī)器人的適配接入過程進(jìn)行智能管理,除了實(shí)現(xiàn)網(wǎng)關(guān)最重要的協(xié)議轉(zhuǎn)換、數(shù)據(jù)包解聚和配置信息緩存等基礎(chǔ)功能,本文針對云服務(wù)平臺定制了基于微服務(wù)的智能網(wǎng)關(guān)高級服務(wù),包括:①動態(tài)創(chuàng)建/釋放與適配協(xié)議相關(guān)的通信資源;②通過建立適配資源配置信息數(shù)據(jù)庫實(shí)現(xiàn)快速接入及自動重連;③網(wǎng)關(guān)服務(wù)的客戶端登入安全認(rèn)證;④網(wǎng)關(guān)實(shí)時(shí)或歷史數(shù)據(jù)的導(dǎo)出、備份及恢復(fù);⑤協(xié)議轉(zhuǎn)換規(guī)則靈活配置,加強(qiáng)了網(wǎng)關(guān)對異構(gòu)協(xié)議的兼容性。以上功能均通過微服務(wù)形式實(shí)現(xiàn),并自動部署于云服務(wù)平臺的協(xié)議適配層。
機(jī)器人資源的語義描述是其接入云服務(wù)平臺的前提和基礎(chǔ)。由于兩類機(jī)器人信息的語義描述結(jié)構(gòu)與云服務(wù)平臺的數(shù)據(jù)接口規(guī)范不一致,本文提出一種基于本體的機(jī)器人資源語義描述,構(gòu)建了工業(yè)機(jī)器人云端統(tǒng)一本體模型,并通過自動推理機(jī)對該模型進(jìn)行高效準(zhǔn)確的語法、語義及用戶自定義一致性檢查,將本體模型與異構(gòu)機(jī)器人物理模型自動虛擬映射,實(shí)現(xiàn)了多機(jī)器人資源云服務(wù)平臺機(jī)器人統(tǒng)一調(diào)度管理。
基于OPC UA信息建模規(guī)范設(shè)計(jì)了工業(yè)機(jī)器人擴(kuò)展信息模型,如圖4所示。其中,“工業(yè)機(jī)器人”為OPC UA服務(wù)器地址,該地址引用了“靜態(tài)屬性”、“過程屬性”、“驅(qū)動器組件屬性”等10個(gè)通用對象,每個(gè)通用對象分別包含具體實(shí)例。
為實(shí)現(xiàn)基于本體的機(jī)器人資源模型到基于OPC UA的信息模型的關(guān)聯(lián)映射,形成動態(tài)的資源信息表,特約定以下規(guī)則:
規(guī)則1本體信息模型與OPC UA信息模型概念映射規(guī)則。
本體信息模型與OPC UA信息模型的概念映射規(guī)則如表2所示。
表2 本體信息模型與OPC UA信息模型的轉(zhuǎn)化規(guī)則
規(guī)則2本體信息模型與OPC UA信息模型信息映射規(guī)則。
基于本體的信息模型可以對工業(yè)機(jī)器人資源屬性等信息進(jìn)行語義表達(dá),基于OPC UA的信息模型也具有相關(guān)語義,這樣在信息映射時(shí)對屬性/節(jié)點(diǎn)信息進(jìn)行語義上格式轉(zhuǎn)換的預(yù)處理即可。工業(yè)機(jī)器人OPC UA的信息模型映射到本體模型的數(shù)據(jù)信息語義描述(ODIR)模型如下:
ODIR=(Server,NodeID,DisplayName,DataType,Value,Time,StatusCode)。
其中:
Server表示OPC UA某節(jié)點(diǎn)所在的服務(wù)器地址。在客戶端連接多個(gè)服務(wù)器的情況下,根據(jù)Server值,可以唯一確認(rèn)屬性值歸屬的工業(yè)機(jī)器人;
NodeID表示OPC UA服務(wù)器地址空間中的節(jié)點(diǎn)ID號。節(jié)點(diǎn)與NodeID一一對應(yīng),根據(jù)NodeID,可以確定服務(wù)器地址空間中的節(jié)點(diǎn)位置,該屬性可以和Server屬性一起用來一一映射本體和OPC UA的信息模型;
DisplayName表示地址空間中的節(jié)點(diǎn)在客戶端的展示名稱;
DataType表示地址空間中節(jié)點(diǎn)變量值的數(shù)據(jù)類型;
Value表示地址空間中節(jié)點(diǎn)變量的數(shù)據(jù)值;
Time表示地址空間中節(jié)點(diǎn)值產(chǎn)生的時(shí)間;
StatusCode表示地址空間中節(jié)點(diǎn)的狀態(tài)。
通過異構(gòu)機(jī)器人的映射規(guī)則,采用微服務(wù)實(shí)現(xiàn)輸入機(jī)器人模型與本體模型的自動一致性映射,最終獲得一個(gè)對應(yīng)的個(gè)性化本體。以UR3e工業(yè)機(jī)器人機(jī)械臂為例,以圖4所示的擴(kuò)展信息模型為標(biāo)準(zhǔn),采用基于本體的映射方法得到如表3所示的資源信息表,以實(shí)現(xiàn)機(jī)器人的資源虛擬化。
表3 UR3e工業(yè)機(jī)器人資源信息表
任務(wù)規(guī)劃是多機(jī)器人系統(tǒng)中一個(gè)關(guān)鍵問題。多機(jī)器人任務(wù)規(guī)劃可以分為機(jī)器人任務(wù)分解和多機(jī)器人任務(wù)分配兩部分。多機(jī)器人任務(wù)可以理解為多機(jī)器人系統(tǒng)為響應(yīng)任務(wù)需求,執(zhí)行相應(yīng)的活動或相應(yīng)動作,機(jī)器人任務(wù)分解是指將該任務(wù)問題分解為單機(jī)器人問題或單任務(wù)問題,進(jìn)而形成單機(jī)器人可執(zhí)行的任務(wù)分解方案;多機(jī)器人任務(wù)分配是在任務(wù)分解的基礎(chǔ)上,明確可以執(zhí)行任務(wù)的機(jī)器人資源信息,對單機(jī)器人單任務(wù)問題進(jìn)行求解。任務(wù)分配方法的評判標(biāo)準(zhǔn)為:每個(gè)機(jī)器人在特定的約束條件下,按照任務(wù)分配方案,根據(jù)指定的任務(wù)路線依次執(zhí)行特定的子任務(wù),保證系統(tǒng)完成總目標(biāo)任務(wù)所需要的代價(jià)最小(時(shí)間最少或者距離最短)。
根據(jù)機(jī)器人資源對任務(wù)需求的響應(yīng)能力,任務(wù)可分為以下兩種類型:
(1)簡單任務(wù):單個(gè)機(jī)器人即可完成的活動;
(2)復(fù)雜任務(wù):需要兩個(gè)或兩個(gè)以上機(jī)器人協(xié)作完成的活動。
根據(jù)上述任務(wù)描述,對任務(wù)進(jìn)行如下定義:
Relation={And,Or,?}。
其中:
Task_ID為任務(wù)編碼,具有唯一性;
Task_name為任務(wù)名稱;
Task_type為任務(wù)類型,分為簡單任務(wù)和復(fù)雜任務(wù);
Task_coordinate為任務(wù)坐標(biāo);
Structure為任務(wù)結(jié)構(gòu)特征,包括分解得到的子任務(wù)集、子任務(wù)之間的關(guān)系、資源類型;
Task_set為分解得到的子任務(wù)集,若是簡單任務(wù),則表示任務(wù)本身;若是復(fù)雜任務(wù),則表示任務(wù)分解后得到的所有子任務(wù);
Relation為子任務(wù)之間的關(guān)系,例如,順序關(guān)系分為并行關(guān)系和串行關(guān)系兩種。
基于微服務(wù)的多機(jī)器人資源任務(wù)分解方法流程如圖5所示。
將多機(jī)器人資源智能任務(wù)分配場景簡化為如下形式:
(1)場景的全局信息已知,地圖已經(jīng)構(gòu)建,可以規(guī)劃任意兩個(gè)節(jié)點(diǎn)之間的路徑;
(2)任務(wù)的位置、機(jī)器人資源的初始位置均隨機(jī)分布;
(3)各類機(jī)器人的最大速度為vmax,且啟動過程和制動過程均為恒定加速度,加速度分別記為a1和a2;
(4)同一類型的機(jī)器人完成相同任務(wù)所需的時(shí)間相同,記為tw1;
(5)任務(wù)分配的目標(biāo)是機(jī)器人系統(tǒng)總體能效最少。
在該任務(wù)場景中,多機(jī)器人資源智能任務(wù)分配服務(wù)的具體執(zhí)行流程如圖6所示。
下面以UR3e機(jī)械臂(支持OPC UA協(xié)議)和RVC工業(yè)相機(jī)(支持Modbus協(xié)議)為例對所提出架構(gòu)進(jìn)行應(yīng)用驗(yàn)證,如圖7所示。
依據(jù)OPC UA標(biāo)準(zhǔn)進(jìn)行統(tǒng)一數(shù)據(jù)封裝,對UR3e機(jī)械臂的“品牌”、“型號”、“支持傳輸協(xié)議”、“IP地址”等信息進(jìn)行配置,建立機(jī)械臂內(nèi)置OPC UA服務(wù)器與云服務(wù)平臺內(nèi)OPC UA客戶端之間的連接。連接成功后,以上文定義的OPC UA擴(kuò)展信息模型為標(biāo)準(zhǔn),以機(jī)器人資源分類統(tǒng)一本體模型為輸入,對OPC UA與本體進(jìn)行映射,獲得UR3e機(jī)械臂資源信息表,如圖8所示。
同理,對支持Modbus的RVC相機(jī)進(jìn)行協(xié)議轉(zhuǎn)換、適配及資源信息表獲取,如圖9所示。
通過多機(jī)器人適配接入方法中的信息互轉(zhuǎn),實(shí)現(xiàn)智能云服務(wù)平臺端到機(jī)器人端的任務(wù)指令數(shù)據(jù)回傳和機(jī)器人端到智能云服務(wù)平臺端的狀態(tài)位置信息訂閱。如圖10所示為機(jī)器人接受到搬運(yùn)物品指令信息,云服務(wù)平臺的監(jiān)控頁面可實(shí)時(shí)監(jiān)控機(jī)器人的執(zhí)行情況,即從初始位置移動至指定位置的過程展示。
基于開源微服務(wù)框架Nameko,開發(fā)了“多機(jī)器人資源智能云服務(wù)平臺原型系統(tǒng)”。從系統(tǒng)響應(yīng)時(shí)間、成功率、并發(fā)調(diào)用測試等多個(gè)角度衡量了資源服務(wù)平臺的性能。
為檢驗(yàn)基于微服務(wù)的多機(jī)器人資源智能服務(wù)平臺動態(tài)響應(yīng)多機(jī)器人資源業(yè)務(wù)調(diào)度需求的能力,本文分別對1,3,5,7,10個(gè)不同微服務(wù)節(jié)點(diǎn)運(yùn)行情況下,所能處理的機(jī)器人業(yè)務(wù)數(shù)量進(jìn)行了測試,結(jié)果如圖11所示。
由測試結(jié)果可知,微服務(wù)節(jié)點(diǎn)由1個(gè)節(jié)點(diǎn)擴(kuò)展到3個(gè)節(jié)點(diǎn)時(shí),資源服務(wù)平臺的業(yè)務(wù)處理能力提高至原來的2倍;擴(kuò)展至5個(gè)節(jié)點(diǎn)時(shí),處理能力接近原來的3倍;擴(kuò)展至7個(gè)節(jié)點(diǎn)時(shí),處理能力約為原來的4倍;進(jìn)一步擴(kuò)展至10個(gè)節(jié)點(diǎn)時(shí),處理能力超過原來的5倍。結(jié)果表明,隨著微服務(wù)節(jié)點(diǎn)數(shù)量的增加,資源服務(wù)平臺處理業(yè)務(wù)的能力也相應(yīng)地線性增加。因此,基于微服務(wù)的多機(jī)器人資源智能服務(wù)平臺可通過自動擴(kuò)展微服務(wù)節(jié)點(diǎn)數(shù)量,滿足不斷增長的機(jī)器人業(yè)務(wù)調(diào)度需要。
為從多個(gè)角度衡量資源服務(wù)平臺的性能,本文結(jié)合微服務(wù)架構(gòu)的評價(jià)指標(biāo),從系統(tǒng)響應(yīng)時(shí)間、成功率及對比現(xiàn)有單體架構(gòu)3個(gè)方面進(jìn)行了測試。
(1)微服務(wù)調(diào)用響應(yīng)時(shí)間最小值、最大值、平均值和P99測試
微服務(wù)的響應(yīng)時(shí)間最小值、最大值、平均值和P99(99%的請求響應(yīng)時(shí)間),涉及到絕大多數(shù)用戶的使用體驗(yàn),是非常重要的指標(biāo),對微服務(wù)A,B,C,D,E,F,J各調(diào)用100次、200次、400次、600次、800次、1 000次,獲得結(jié)果如圖12所示。
由圖12可知,服務(wù)調(diào)用響應(yīng)時(shí)間的平均值總體穩(wěn)定,約為130 ms,相較于業(yè)界200 ms左右的系統(tǒng)延時(shí)標(biāo)準(zhǔn),響應(yīng)及時(shí)。P99曲線波動平緩,穩(wěn)定在150 ms與180 ms之間,表明業(yè)務(wù)調(diào)用被完全響應(yīng),系統(tǒng)魯棒性強(qiáng)。
由以上響應(yīng)時(shí)間測試可見,基于微服務(wù)的多機(jī)器人資源智能服務(wù)平臺響應(yīng)時(shí)間最小值、平均值、P99全部在用戶體驗(yàn)的合理范圍內(nèi),能及時(shí)、穩(wěn)定地響應(yīng)海量機(jī)器人的業(yè)務(wù)調(diào)度需求。
(2)成功率測試
為滿足機(jī)器人調(diào)度業(yè)務(wù)的正常運(yùn)行,成功率非常關(guān)鍵,按業(yè)務(wù)流程發(fā)起200次、400次、600次、800次、1 000次業(yè)務(wù)請求,獲得如圖13所示結(jié)果。
由圖13可知,服務(wù)平臺總體業(yè)務(wù)調(diào)用的成功率高于98%,且隨著業(yè)務(wù)調(diào)用次數(shù)的增加,業(yè)務(wù)調(diào)用的成功率變化趨向平緩,表明服務(wù)平臺準(zhǔn)確、可靠地響應(yīng)業(yè)務(wù)調(diào)用需求。
由以上成功率測試可知,基于微服務(wù)的多機(jī)器人資源服務(wù)平臺的業(yè)務(wù)調(diào)用成功率始終較高,完全能滿足海量機(jī)器人的業(yè)務(wù)調(diào)度需求。
(3)單體結(jié)構(gòu)和微服務(wù)結(jié)構(gòu)高并發(fā)的測試比較
下面對單體結(jié)構(gòu)和微服務(wù)分布式結(jié)構(gòu)進(jìn)行并發(fā)調(diào)用測試比較,結(jié)果如圖14所示。
由圖14可知,在同時(shí)完成100個(gè)業(yè)務(wù)調(diào)度的情形下,花費(fèi)時(shí)間基本接近,而在業(yè)務(wù)并發(fā)次數(shù)200次以上時(shí),微服務(wù)分布式結(jié)構(gòu)總時(shí)間開銷遠(yuǎn)小于單體結(jié)構(gòu)。
從業(yè)務(wù)并發(fā)數(shù)增多對應(yīng)的總時(shí)間開銷增長趨勢來看,單體結(jié)構(gòu)隨著業(yè)務(wù)并發(fā)次數(shù)的增多,總時(shí)間開銷相應(yīng)地高線性增長;而微服務(wù)分布式結(jié)構(gòu)隨著業(yè)務(wù)并發(fā)次數(shù)的增多,總時(shí)間開銷為低線性增多,且響應(yīng)時(shí)間趨于穩(wěn)定。表明在響應(yīng)多并發(fā)業(yè)務(wù)需求上,微服務(wù)分布式結(jié)構(gòu)比單體結(jié)構(gòu)表現(xiàn)更穩(wěn)定。
從業(yè)務(wù)并發(fā)數(shù)對應(yīng)的總時(shí)間開銷角度來看,隨著業(yè)務(wù)并發(fā)數(shù)增多,單體結(jié)構(gòu)的總時(shí)間開銷遠(yuǎn)高于微服務(wù)分布式結(jié)構(gòu)的時(shí)間開銷,表明在響應(yīng)多并發(fā)業(yè)務(wù)需求上,微服務(wù)分布式結(jié)構(gòu)比單體結(jié)構(gòu)更及時(shí)。
由此可見,隨著調(diào)度任務(wù)的成倍增長,單體結(jié)構(gòu)已無法為海量機(jī)器人提供服務(wù),微服務(wù)分布式結(jié)構(gòu)能更好地滿足絕大部分用戶的良好體驗(yàn),因此,微服務(wù)分布式結(jié)構(gòu)比單體結(jié)構(gòu)更適應(yīng)復(fù)雜的、高并發(fā)的多機(jī)器人資源服務(wù)平臺系統(tǒng)。
通過上述性能測試,得出如下結(jié)論:
(1)不同微服務(wù)節(jié)點(diǎn)運(yùn)行情況下所能處理的機(jī)器人業(yè)務(wù)數(shù)量的測試表明,基于微服務(wù)的云服務(wù)平臺能夠自動擴(kuò)展微服務(wù)節(jié)點(diǎn)數(shù)量,滿足不斷增長的機(jī)器人業(yè)務(wù)調(diào)度需要。
(2)業(yè)務(wù)調(diào)用的響應(yīng)時(shí)間測試表明,基于微服務(wù)的云服務(wù)平臺能及時(shí)、穩(wěn)定地響應(yīng)海量機(jī)器人的業(yè)務(wù)調(diào)度需求。
(3)業(yè)務(wù)調(diào)用的成功率測試表明,基于微服務(wù)的云服務(wù)平臺能準(zhǔn)確、可靠地響應(yīng)業(yè)務(wù)調(diào)用需求。
(4)單體結(jié)構(gòu)和微服務(wù)分布式結(jié)構(gòu)高并發(fā)的比較測試表明,微服務(wù)分布式結(jié)構(gòu)比單體結(jié)構(gòu)更穩(wěn)定、及時(shí)地響應(yīng)機(jī)器人業(yè)務(wù)調(diào)度需求,適應(yīng)復(fù)雜的、高并發(fā)的多機(jī)器人資源服務(wù)平臺系統(tǒng)。
本文提出一種基于微服務(wù)的多機(jī)器人資源智能云服務(wù)平臺架構(gòu),該架構(gòu)集“適配接入統(tǒng)一、資源服務(wù)統(tǒng)一、任務(wù)規(guī)劃高效、服務(wù)擴(kuò)展自由”等多個(gè)特性于一體。與已有基于SOA的機(jī)器人云平臺相比,本文所搭建的局域云具有網(wǎng)絡(luò)延遲低、支持大量數(shù)據(jù)共享、資源利用率高和任務(wù)操作靈活等方面的絕對優(yōu)勢,更適合離散制造智能工廠、助老助殘服務(wù)等局域多機(jī)器人協(xié)作場景的實(shí)現(xiàn)。該架構(gòu)充分結(jié)合了云計(jì)算和微服務(wù)的優(yōu)點(diǎn),通過實(shí)現(xiàn)微服務(wù)自動化集成部署機(jī)制解決了傳統(tǒng)云平臺軟件代碼維護(hù)難、擴(kuò)展升級復(fù)雜的問題;設(shè)計(jì)了細(xì)粒度、低耦合的業(yè)務(wù)微服務(wù)實(shí)現(xiàn)海量異構(gòu)機(jī)器人高效適配接入云服務(wù)平臺、多機(jī)器人資源統(tǒng)一虛擬化等關(guān)鍵功能,并通過微服務(wù)節(jié)點(diǎn)數(shù)量與吞吐量能力關(guān)系、業(yè)務(wù)調(diào)度響應(yīng)時(shí)間、業(yè)務(wù)調(diào)度成功率及高并發(fā)性能4個(gè)指標(biāo)進(jìn)行測試驗(yàn)證。此外,本文所提架構(gòu)僅基于開源框架完成系統(tǒng)搭建,并通過仿真和部分實(shí)物場景進(jìn)行了驗(yàn)證,就系統(tǒng)的數(shù)據(jù)安全性,魯棒性和擴(kuò)展性,有待在更廣泛的應(yīng)用場景中進(jìn)一步驗(yàn)證。因此,在實(shí)際應(yīng)用場景中對所提架構(gòu)進(jìn)行檢驗(yàn)和完善將是后續(xù)的一個(gè)重要工作方向。