陳 彬,黎曉東,尹作重,秦修功,張雪嫣
(北京機(jī)械工業(yè)自動化研究所有限公司,北京 100120)
傳統(tǒng)機(jī)器人的存儲和計算能力僅限于機(jī)器人本體,而智能化則要求更多的知識存儲、檢索以及推理計算能力。針對此問題,2010年卡耐基梅隆大學(xué)的James Kuffner教授首次提出云機(jī)器人的概念,云機(jī)器人是機(jī)器人與云計算的結(jié)合,把機(jī)器人的數(shù)據(jù)處理、規(guī)劃、決策、協(xié)作等復(fù)雜計算功能卸載到云端,機(jī)器人本體只需配備簡單的網(wǎng)絡(luò)設(shè)備和基本的傳感器就可以完成復(fù)雜的服務(wù)任務(wù),為徹底解決機(jī)器人“物美”與“價廉”的矛盾提供了新思路[1]。同時,在2010年,新加坡的ASORO實(shí)驗(yàn)室研究了在Hadoop中運(yùn)行FastSlam算法的框架Davichi[2],DAvinCi軟件框架基于Hadoop集群,結(jié)合機(jī)器人操作系統(tǒng)(ROS)作為機(jī)器人生態(tài)系統(tǒng)的消息傳遞框架[3],將平臺作為機(jī)器人的“大腦”,利用云計算為服務(wù)機(jī)器人提供可擴(kuò)展性和并行性,可視為機(jī)器人云服務(wù)平臺的雛形。2011~2014年歐洲開展了Roboearth[4]項(xiàng)目,RoboEarth已經(jīng)發(fā)展成為一個巨大的基于云的數(shù)據(jù)庫,各種機(jī)器人可以在其中分享有關(guān)環(huán)境、任務(wù)和對象的信息[5]。2015年,在RoboEarth的基礎(chǔ)上,Mohanarajah等[6]提出了Raptuya云機(jī)器人平臺[7]。的作者將RoboEarth項(xiàng)目的方法與UNR-PF的分布式執(zhí)行能力結(jié)合起來,開發(fā)了一個網(wǎng)絡(luò)化的機(jī)器人系統(tǒng)Rsi-Cloud,為服務(wù)提供商和機(jī)器人專家提供了一個可以分別開發(fā)機(jī)器人服務(wù)和機(jī)器人應(yīng)用的平臺。在文獻(xiàn)[8]中,Lei等人提出了云機(jī)器人視覺平臺(Cloud Robotics Visual Platform, CRVP)來增強(qiáng)機(jī)器人的視覺。在文獻(xiàn)[9]中雷建和等人提出一種仿人機(jī)器人云平臺。
本文將按照以下三個部分展開:1)機(jī)器人云平臺架構(gòu):討論云平臺整體架構(gòu),研究云計算在機(jī)器人方面上的應(yīng)用;2)機(jī)器人云平臺關(guān)鍵技術(shù):研究云平臺資源管理、計算、通信和安全等;3)進(jìn)行總結(jié)與對將來發(fā)展的一些展望。
本節(jié)主要就幾種機(jī)器人云平臺的架構(gòu)進(jìn)行分析。
Rapyuta云機(jī)器人平臺使機(jī)器人將密集的計算任務(wù)委托給云中的計算環(huán)境,計算環(huán)境提供對RoboEarth知識庫的訪問,使機(jī)器人從知識庫中下載地圖、對象模型和操作方法來執(zhí)行任務(wù)。圖1展示了RoboEarth架構(gòu)。服務(wù)器層包含RoboEarth數(shù)據(jù)庫,存儲了包括關(guān)于對象的可重復(fù)使用的信息、環(huán)境(例如地圖和對象位置)和鏈接到語義信息的動作(例如動作順序和技能)等模型,并提供基本的可推理Web服務(wù)。通用組件層是RoboEarth的動作集合,擴(kuò)展了機(jī)器人的感知、推理、建模和學(xué)習(xí)能力。動作技能層通過技能抽象層為機(jī)器人特定的、基于硬件的功能提供通用接口。
圖1 RoboEarth架構(gòu)
圖2展示了由ROS、Hadoop分布式文件系統(tǒng)(HDFS)和Map/Reduce組成的DAvinCi云計算平臺架構(gòu)。平臺利用ROS和機(jī)器人之間數(shù)據(jù)傳輸和通信,利用分布式文件系統(tǒng)(HDFS)存儲數(shù)據(jù),利用Map/Reduce對機(jī)器人上傳的數(shù)據(jù)進(jìn)行批處理。將標(biāo)準(zhǔn)算法(SLAM、全局路徑規(guī)劃、傳感器融合等)封裝為云服務(wù),平臺充當(dāng)機(jī)器人的代理和服務(wù)提供者,并從機(jī)器人生態(tài)系統(tǒng)收集數(shù)據(jù),通過ROS和HDFS將機(jī)器人生態(tài)系統(tǒng)綁定到后端計算和存儲集群。DAvinCi服務(wù)器作為運(yùn)行ROS發(fā)布者列表的主節(jié)點(diǎn),機(jī)器人上的ROS節(jié)點(diǎn)查詢主節(jié)點(diǎn)以訂閱和接收來自HDFS后端或其他機(jī)器人的消息/數(shù)據(jù)。
圖2 DAvinCi云計算平臺架構(gòu)
圖3展示了知識共享的機(jī)器人云平臺架構(gòu)。機(jī)器人通過傳感器采集數(shù)據(jù)上傳到云端和下載接收云服務(wù),所以既是云服務(wù)的消費(fèi)者,又是云服務(wù)信息的數(shù)據(jù)源和生產(chǎn)者。云平臺包括四層:
協(xié)同機(jī)器人通信(CRC)層:遠(yuǎn)程云接入異構(gòu)機(jī)器人,需要一個“網(wǎng)關(guān)”組件來記錄機(jī)器人的特定信息,以及消息代理通道和本機(jī)機(jī)器人數(shù)據(jù)通道之間的映射。
處理層:用于過濾、聚類和處理從機(jī)器人收集的數(shù)據(jù),包括實(shí)時接入處理、批量數(shù)據(jù)處理、數(shù)據(jù)濃縮處理。
數(shù)據(jù)庫層:存儲了一個全局世界模型,包括關(guān)于軟件組件、環(huán)境(如用于導(dǎo)航的對象位置和地圖)、對象識別模型(如點(diǎn)云、圖像和模型)和任務(wù)知識(如操作配方和技能以及操作策略)的信息。
服務(wù)層:讓機(jī)器人可以通過云端的機(jī)器人知識庫與其他機(jī)器人即時分享他們所學(xué)到的技能,其他機(jī)器人就可以通過重用共享的知識來提高學(xué)習(xí)的速度。
圖3 知識共享的機(jī)器人云平臺架構(gòu)
圖4展示了服務(wù)機(jī)器人云平臺總體架構(gòu),包括物理資源層,云平臺基礎(chǔ)層,服務(wù)實(shí)現(xiàn)層和SOA接口層。物理資源層為云平臺各服務(wù)實(shí)例提供運(yùn)行環(huán)境支持。基礎(chǔ)層負(fù)責(zé)管理數(shù)據(jù)存儲,為服務(wù)提供統(tǒng)一的訪問接口。服務(wù)實(shí)現(xiàn)層由平臺開發(fā)者對服務(wù)進(jìn)行封裝,注冊、發(fā)布、部署、更新、管理和維護(hù);服務(wù)分為服務(wù)定義和服務(wù)實(shí)例兩種,云平臺用戶可對服務(wù)定義進(jìn)行更新和修改,服務(wù)實(shí)例是在平臺中用于完成特定功能的線程。SOA接口層是平臺與用戶交互的中間件,提供服務(wù)的配置和管理接口,主要實(shí)現(xiàn)用戶交互、服務(wù)管理、服務(wù)調(diào)用和服務(wù)態(tài)勢監(jiān)測等功能。
圖4 服務(wù)機(jī)器人云平臺總體架構(gòu)[1]
云機(jī)器人系統(tǒng)很好地解決了云機(jī)器人應(yīng)用容量和多功能性的限制等,提高了云機(jī)器人的資源利用率并且可以轉(zhuǎn)向基于云的服務(wù)以擴(kuò)大它們的能力[10]。機(jī)器人與云平臺交互也帶來了很多新的問題,本節(jié)將探討機(jī)器人云平臺資源管理、計算、通信和安全這幾個關(guān)鍵問題。
平臺資源管理:云計算就是資源的一種“池化”,池化帶來的好處是資源的按需分配,可重復(fù)利用,從而提高資源利用率。虛擬化是實(shí)現(xiàn)資源池化的一種方式,衍生出了多種技術(shù),包括vmware的exsi,hyper-v,kvm,xen等。最常用的開源云平臺管理系統(tǒng)為OpenStack,是構(gòu)建云計算系統(tǒng)的基礎(chǔ)框架,控制整個云平臺計算、存儲和網(wǎng)絡(luò)資源。此外還有很多商業(yè)化云計算部署系統(tǒng),如VMware、Amazon Web Services、彈性計算云(Elastic Compute cloud,俗稱EC2)、谷歌計算引擎和Microsoft Azure等。
計算:平臺一般使用Hadoop處理大量數(shù)據(jù),由分布式文件系統(tǒng)HDFS和MapReduce組成。Hadoop是支持運(yùn)行在大型計算機(jī)集群上的數(shù)據(jù)密集型分布式應(yīng)用程序,能跨集群中的并行處理數(shù)據(jù),加快了大型計算的速度。這些處理大部分發(fā)生在數(shù)據(jù)或存儲附近,從而減少了網(wǎng)絡(luò)上的I/O延遲。Hadoop的HDFS文件系統(tǒng)還負(fù)責(zé)將文件數(shù)據(jù)分割成可管理的塊或塊,并將它們分布在多個節(jié)點(diǎn)上,MapReduc負(fù)責(zé)并行處理大數(shù)據(jù)集。
通信:機(jī)器人通常由大量復(fù)雜的異構(gòu)系統(tǒng)組成,采用不同的物理接口和通信協(xié)議。云基礎(chǔ)設(shè)施只能存儲和處理特定結(jié)構(gòu)的數(shù)據(jù),即輸入接口需要將相應(yīng)的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成統(tǒng)一的格式,接口需要云平臺自己定義。早期是通過網(wǎng)關(guān)將機(jī)器人連接到廣域網(wǎng),實(shí)現(xiàn)機(jī)器人與云服務(wù)平臺的互聯(lián)互通。在處理上傳和下載數(shù)據(jù)時,必須對數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換。上傳數(shù)據(jù)必須進(jìn)行適當(dāng)?shù)念A(yù)處理,但數(shù)據(jù)交換的魯棒性和實(shí)時性能對從一種形式到另一種數(shù)據(jù)格式的轉(zhuǎn)換有很大的影響[10]。ROS框架提供了一種標(biāo)準(zhǔn)的跨機(jī)器人通信和消息傳遞形式,節(jié)點(diǎn)之間通過消息進(jìn)行通信,這些消息包含一個節(jié)點(diǎn)發(fā)送給其他節(jié)點(diǎn)的信息數(shù)據(jù),消息類型有ROS標(biāo)準(zhǔn)類型和基于標(biāo)準(zhǔn)消息開發(fā)的自定義類型兩種。ROS將不兼容的傳感器、執(zhí)行器等硬件整合在一起,通過將其數(shù)據(jù)流轉(zhuǎn)換成消息總線,使用在硬件驅(qū)動器和計算單元之間兼容的數(shù)據(jù)類型。此外文獻(xiàn)[11]的作者提出的RSi Research cloud(RSicloud)架構(gòu)具有一種標(biāo)準(zhǔn)化的通信協(xié)議——機(jī)器人服務(wù)網(wǎng)絡(luò)協(xié)議(RSNP),可以結(jié)合不同的服務(wù)組件,利用機(jī)器人服務(wù)規(guī)范,提供各種新穎的服務(wù)。
安全:機(jī)器人通過云平臺分享信息、知識共享,但存在的安全問題也一直是人們關(guān)注的焦點(diǎn)。在文獻(xiàn)[12]中Nandhini et al.提出一種使用橢圓曲線密碼術(shù)(ECC)提供身份驗(yàn)證和密鑰協(xié)議的安全架構(gòu),用于訪問托管在云中的機(jī)器人服務(wù)。為了改善云安全的相關(guān)問題文獻(xiàn)[10]中提到了三種方法,包括:
1)信任建立:用戶執(zhí)行一些預(yù)先設(shè)定的行為來檢查一個虛擬機(jī)的主機(jī)環(huán)境。
2)信任度量:一些不屬于云平臺提供商(如硬件供應(yīng)商或虛擬化軟件供應(yīng)商)的一些信任成分組件監(jiān)控虛擬機(jī),并安全地向用戶或第三方報告信任度量。
3)基于信譽(yù)的信任:用戶通過服務(wù)提供商提供的身份驗(yàn)證VM的基礎(chǔ)設(shè)施,然后依靠法律、業(yè)務(wù)或其他外部因素來推斷信任。
云機(jī)器人技術(shù)發(fā)展迅速,機(jī)器人云平臺的研究也更加深入。如何提高云與機(jī)器人之間的實(shí)時性交互,機(jī)器人云平臺整體架構(gòu)應(yīng)怎樣設(shè)計,云平臺如何為機(jī)器人更好地提供服務(wù),還需要時間去研究和解決?,F(xiàn)有的云機(jī)器人平臺大都采用點(diǎn)對點(diǎn)的服務(wù)提供方式,導(dǎo)致云平臺需要重復(fù)構(gòu)建服務(wù),降低了云平臺服務(wù)的效率和質(zhì)量;規(guī)范機(jī)器人云服務(wù)平臺的設(shè)計流程,統(tǒng)一機(jī)器人與云平臺的接口,將更多類型的機(jī)器人或終端設(shè)備融入機(jī)器人云服務(wù)平臺中,是今后的發(fā)展趨勢。