《基于ROS的服務機器人云端協(xié)同計算框架》
云機器人計算框架(Cloud Robot Computing Framework )通過云端,將智能家居及其他硬件與機器人相結合玫坛,并且通過互聯(lián)網(wǎng)連接第三方應用API结笨。
CRCF旨在利用云端大數(shù)據(jù)處理能力來提高機器人的計算和存儲能力。本文通過遠程語音控制機器人的實驗 , 驗證了CRCF系統(tǒng)平臺在結合硬件設備以及第三方云端應用的功能和性能 湿镀。
CRCF框架作為信息共享中心炕吸,將智能硬件設備的數(shù)據(jù)和第三方云端應用的數(shù)據(jù)集成起來,統(tǒng)一管理勉痴;CRCF 框架作為服務機器人存儲和運算的拓展 , 服務機器人的傳感器數(shù)據(jù)赫模、 圖像數(shù)據(jù)等存儲在 CRCF 框架的存儲單元中 , 可供其它硬件設備使用 ;CRCF 框架中的 Hadoop 集群蒸矛,可以為服務機器人提供并行計算能力瀑罗。
[分布式計算網(wǎng)絡淺談](http://www.cnblogs.com/mushroom/p/4959904.html “博客鏈接地址”)
Hadoop簡介
Hadoop是一套海量數(shù)據(jù)計算存儲的基礎平臺架構:
- 其中計算指的是MapReduce,這是做分布式計算用的雏掠。
- 存儲指的是HDFS斩祭,基于此上層的有HBase、Hive乡话,用來做數(shù)據(jù)存儲用的摧玫。
- 平臺,指可以給多個用戶使用绑青,比如小明有一計算需求诬像,他只需要按照對應的接口編寫業(yè)務邏輯即可,然后把程序以包的形式發(fā)布到平臺上闸婴,平臺進行分配調度計算等颅停。
下面是 Hadoop 的概覽圖:
云機器人系統(tǒng)架構
- 機器人與云端相結合:
M2M/M2C(machine to machine/machine to cloud);UNR-PF(Ubiquitous Networked Robot Platform)掠拳。 - 服務的應用模式方面:
面向服務的架構(Service Oriented Architecture, SOA);機器人即服務(Robot as a Service, RaaS)纸肉。
基于M2M/M2C系統(tǒng)架構的機器人與云端結合主要有三種典型的彈性計算模型結構:對等模型溺欧,代理模型以及科隆模型喊熟。
UNR-PF系統(tǒng)架構對機器人的硬件進行抽象,并提供統(tǒng)一的接口來供應開發(fā)人員調用姐刁。機器人與服務端的應用都連接并注冊到UNR-PF網(wǎng)絡當中芥牌,服務端的應用與機器人通過UNR-PF網(wǎng)絡相互連接到一起。
CDCF框架利用云端將智能硬件以及云端的服務與機器人結合起來聂使。此外壁拉,CRCF框架結合了ROS在機器人算法以及硬件設備管理上的優(yōu)點,使機器人本身的算法和硬件管理與云端相互分離柏靶,從而帶來更加靈活與便利的管理弃理。
CRCF架構:
CRCF云端部分:控制節(jié)點用來處理與機器人信息交流。對于機器人的請求屎蜓,控制節(jié)點需要決定哪些服務及信息是需要作為應答痘昌。對于云端處理完機器人請求之后的動作指令或數(shù)據(jù)結果也將通過節(jié)點下發(fā)到機器人,控制節(jié)點需要指定特定的ROS中的Topic來執(zhí)行該指令或存儲云端運算的數(shù)據(jù)結果炬转。
此外辆苔,CRCF云端平臺與Hadoop集群相連接,可用于并行處理機器人的計算請求扼劈。
機器人部分:基于ROS的機器人將master節(jié)點開啟在機器人本身驻啤,并通過CRCF的通用接口API與云端建立聯(lián)系。當網(wǎng)絡出現(xiàn)故障的時候荐吵,也不會影響機器人獨立運作骑冗。機器人既是服務的提供者,也是服務的請求者捍靠,當使用多個機器人的時候沐旨,機器人與機器人之間通過CRCF框架來通過信息共享方式建立聯(lián)系。
Web界面部分:提供給能夠訪問web的終端設備(如手機榨婆,電腦磁携,平板等),通過瀏覽器查看和控制機器人的功能良风。
通用接口部分:主要講信息表示成JSON格式谊迄,標注信息的發(fā)出者,接收者烟央,接收的節(jié)點统诺,信息的類型等,接口用于終端設備以及機器人與CRCF云端平臺建立連接疑俭,用于傳輸數(shù)據(jù)和指令粮呢,接口部分的設計主要考慮簡單通用性。
系統(tǒng)驗證
遠程語音控制機器人實驗
- 語音錄入:通過web界面進行語音的控制,所有能夠訪問web的終端設備都可以進行語音控制啄寡。
- 音字轉換:語音錄入結束豪硅,會通過Web斷上傳到CRCF的云端平臺。CRCF的云端平臺結合第三方云端應用 API 將語音翻譯成文字挺物。本實驗中采用的是百度語音識別在線API懒浮。
- 文字到指令的翻譯:通過提取文字中的關鍵字指令詞,再根據(jù)具體的指令詞翻譯成機器人指令识藤。如“向左走五米”->“{angle:90,diatance:5}”砚著。
- 指令下發(fā)以及機器人執(zhí)行指令:CRCF的云端平臺將JSON格式的指令下發(fā)到ROS的指定Topic。因為實驗中ROS的Topic接收的是Twist類型的信息痴昧,所以有一個JSON到Twist轉換的過程稽穆。