一種基于動態Agent的云機器人分布式控制系統及方法
【專利摘要】本發明提供一種基于動態Agent的云機器人分布式控制系統及方法。系統包括:知識庫Agent、核心Agent。方法包括:搭建云機器人ROS節點;部署知識庫Agent;云機器人接受任務指令,核心Agent連接到互聯網,與知識庫Agent建立可靠的通信連接,并向知識庫Agent申請下載;知識庫Agent接收到下載請求,尋找相應功能應用下載到本地云機器人的操作系統ROS,作為動態Agent;核心Agent激活動態Agent,動態Agent執行任務,任務執行結果由核心Agent返回給用戶;任務完成后,核心Agent控制動態Agent卸載云計算Agent,然后核心Agent卸載動態Agent,實現動態卸載。本發明解決云機器人執行復雜任務時,計算能力和功能受到限制的問題,實現了云機器人功能的按需加載和動態卸載,能夠節省云機器人的計算資源和存儲資源。
【專利說明】
一種基于動態Agent的云機器人分布式控制系統及方法
技術領域
[0001]本發明涉及機器人技術領域與云計算技術領域,具體是一種基于動態Agent的云機器人分布式控制系統及方法。
【背景技術】
[0002]隨著機器人技術的不斷發展,機器人的應用領域不斷在擴展,但是傳統的機器人設計方法都是集中化控制的設計方法,針對已確定的作業任務和功能要求設計機器人的硬件和軟件結構,這樣的機器人可擴展性差,難以應對不確定的任務和多變的環境;另一方面,機器人在執行即時定位和地圖構建、物品抓取、定位導航等任務時,大量數據的獲取和計算的執行會帶來巨大的儲存和計算壓力。隨著計算機科學的發展,互聯網和云計算技術與在機器人領域取得了廣泛的應用,將機器人所需的信息資料存儲在云端的服務器上,讓機器人在必要時通過聯網的方式從云端獲得這些資料。這樣的機器人在任務執行和資源共享等方面有很大優勢,能夠突破機器人計算和存儲能力的限制,被認為是機器人領域的下一代跨越。
【發明內容】
[0003]針對現有技術存在的問題,本發明提供一種基于動態Agent的云機器人分布式控制系統及方法。
[0004]本發明的技術方案是:
一種基于動態Agent的云機器人分布式控制系統,包括:
知識庫Agent:在云端實現,包含適合于云機器人的若干服務功能應用;
核心Agent:在云機器人的操作系統ROS實現,控制云機器人的機械運動、傳感器調用以及機器人與云端的通信連接,核心Agent通過與云端進行通信連接,下載位于知識庫Agent的功能應用至云機器人的操作系統ROS,創建動態Agent。
[0005]所述的基于動態Agent的云機器人分布式控制系統,還包括云計算Agent:在云端實現,當云機器人的操作系統ROS的計算能力低于任務要求時,以云端服務的形式提供額外計算能力。
[0006]所述動態Agent在其任務完成后卸載。
[0007]所述核心Agent和動態Agent是以ROS節點的形式運行在云機器人的操作系統ROS上的,R0S master負責ROS節點之間的通信和數據交換。
[0008]所述動態Agent和知識庫Agent之間的通信、動態Agent和云計算Agent之間的通信及調用通過RosCPP編程實現,RosCPP是開發ROS軟件包時調用的開發包,采用Rosbridge來連接動態Agent和ROS。
[0009]—種米用所述云機器人分布式控制系統的云機器人分布式控制方法,包括:
步驟1、搭建云機器人ROS節點:本地搭建核心Agent作為ROS節點,并將其部署到本地云機器人的操作系統R0S; 步驟2、部署知識庫Agent:利用RosCPP編寫知識庫Agent,包含適合于機器人的若干功能應用;
步驟3、云機器人接受任務指令,核心Agent連接到互聯網,核心Agent與知識庫Agent之間建立可靠的通信連接,并向知識庫Agent申請下載任務指令對應的功能應用;
步驟4、知識庫Agent接收到下載請求,尋找相應功能應用,將其下載到本地云機器人的操作系統ROS,作為動態Agent ;
步驟5、當云機器人的操作系統ROS的計算能力低于任務要求時,根據用戶需求,動態Agent向云端申請創建以云端服務的形式提供額外計算能力的云計算Agent;
步驟6、核心Agent激活動態Agent,動態Agent執行任務,任務執行結果由核心Agent返回給用戶;
步驟7、任務完成后,核心Agent控制動態Agent卸載云計算Agent,然后核心Agent卸載動態Agent,實現動態卸載。
[0010]有益效果:
本發明結合云計算和機器人技術,提出了一種基于Agent的功能服務化、動態可擴展的云機器人分布式控制系統及方法,解決云機器人執行復雜任務時,計算能力和功能受到限制的問題,能夠根據用戶的需求動態加載和卸載服務,云機器人可以通過云端的知識庫Agent來下載所需功能應用,并根據計算能力需求創建云計算Agent,本發明能夠應對多變的任務需求,同時可以申請云計算資源,提高了云機器人的計算能力,執行多樣和復雜的任務,從而極大地拓展了每一臺云機器人的能力。本發明實現了云機器人功能的按需加載和動態卸載,能夠節省云機器人的計算資源和存儲資源。
【附圖說明】
[0011]圖1是本發明【具體實施方式】的基于動態Agent的云機器人分布式控制系統結構框圖;
圖2是本發明【具體實施方式】采用的云機器人的硬件控制結構框圖;
圖3是本發明【具體實施方式】云機器人分布式控制方法流程圖。
【具體實施方式】
[0012]為了使本發明的目的、技術方案和要點更加清楚,下面將結合附圖對本發明的【具體實施方式】進行進一步闡述。顯然,闡述時,所描述的實例僅僅是本發明的一部分實例。基于本發明的實例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實例,均屬于本發明保護的范圍。
[0013]本實施方式中的云機器人采用四輪驅動輪式機器人,該機器人的硬件控制結構如圖2所示,其運動控制模塊由驅動輪電機和陀螺儀組成;信息采集模塊采用Kinect攝像頭模塊,并由搭載有ROS操作系統的上位機控制。
[0014]一種基于動態Agent的云機器人分布式控制系統,如圖1所示,包括:
知識庫Agent:在云端實現,包含適合于云機器人的若干功能應用;
核心Agent:在云機器人的操作系統ROS實現,控制云機器人的機械運動、傳感器調用以及云機器人與云端的通信連接,核心Agent通過與云端進行通信連接,下載位于知識庫Agent的功能應用至云機器人的操作系統ROS,創建動態Agent。動態Agent在其任務完成后卸載。核心Agent和動態Agent是以ROS節點的形式運行在云機器人的操作系統ROS上的,ROSmaster負責ROS節點之間的通信和數據交換。動態Agent和知識庫Agent之間的通信、動態Agent和云計算Agent之間的通信及調用通過RosCPP編程實現,采用Rosbridge來聯通Agent和 ROS 0
[00?5] 基于動態Agent的云機器人分布式控制系統,還包括云計算Agent:在云端實現,當云機器人的操作系統ROS的計算能力低于任務要求時,以云端服務的形式提供額外計算能力。
[0016]一種采用所述云機器人分布式控制系統的云機器人分布式控制方法,如圖3所示,包括:
步驟1、搭建云機器人ROS節點:本地搭建核心Agent作為ROS節點,并將其部署到本地機器人的操作系統R0S;
本實施方式的云機器人分布式控制系統中,構建有操作系統Ubuntu、云機器人的操作系統ROS,操作系統ROS運行在操作系統Ubuntu上。在本地搭建核心Agent作為ROS節點,并將其部署到本地機器人。核心Agent用來控制整個云機器人分布式控制系統的運行,具體是:核心Agent控制云機器人的機械運動、包括但不限于前進、后退、轉向等動作;控制Kinect攝像頭的調用;管理本地機器人的操作系統ROS與云端的通信連接。
[0017]步驟2、部署知識庫Agent:利用RosCPP編程語言編寫知識庫Agent,包含適合于云機器人的若干功能應用;
利用roscpp編程語言編寫知識庫Agent,包含適合于云機器人的若干功能應用,如三維重構、視覺導航、場景識別等。將其上傳并部署到公共云。
[0018]步驟3、云機器人接受任務指令,核心Agent連接到互聯網,核心Agent與知識庫Agent之間建立可靠的通信連接,并向知識庫Agent申請下載任務指令對應的服務功能應用;
本實施方式中云機器人接受場景識別任務指令,核心Agent向知識庫Agent申請下載的功能應用是場景識別模塊,場景識別模塊用來完成室內場景識別的任務,其工作方式為:提取場景圖像的PHOG特征,通過SVM分類確定室內場景種類。
[0019]步驟4、知識庫Agent接收到下載請求,尋找相應功能應用,將其下載到本地機器人的操作系統ROS,作為動態Agent ;
步驟5、當云機器人的操作系統ROS的計算能力低于任務要求時,根據用戶需求,動態Agent向云端申請創建以云端服務的形式提供額外計算能力的云計算Agent;
在本實施方式中場景識別通過SVM完成,首先要對SVM進行訓練,需要提取大量的訓練圖像的PHOG特征,計算量較大,如果用本地機器人的操作系統ROS提取,效率將成為主要的瓶頸,計算能力無法滿足任務要求。因此,動態Agent在云端申請創建云計算Agent,用于提供必要的計算服務,云計算Agent利用亞馬遜云提供的云服務EMR,并行提取訓練圖片的PHOG特征訓練SVM。
[°02°] 步驟6、核心Agent激活動態Agent,動態Agent執行任務,任務執行結果由核心Agent返回給用戶;
云計算Agent并行提取訓練圖像的PHOG特征,將特征發送至動態Agent,用于訓練SVM0核心Agent調用Kinect攝像頭采集室內場景圖像,動態Agent提取場景圖像的PHOG特征,用SVM進行分類,分類結果作為任務執行結果最終由核心Agent返回給用戶。
[0021 ] 步驟7、任務完成后,核心Agent控制動態Agent卸載云計算Agent,然后核心Agent卸載動態Agent,實現動態卸載。
【主權項】
1.一種基于動態Agent的云機器人分布式控制系統,其特征在于,包括: 知識庫Agent:在云端實現,包含適合于云機器人的若干功能應用; 核心Agent:在云機器人的操作系統ROS實現,控制云機器人的機械運動、傳感器調用以及云機器人與云端的通信連接,核心Agent通過與云端進行通信連接,下載位于知識庫Agent的功能應用至云機器人的操作系統ROS,創建動態Agent。2.根據權利要求1所述的基于動態Agent的云機器人分布式控制系統,其特征在于,還包括云計算Agent:在云端實現,當云機器人的操作系統ROS的計算能力低于任務要求時,以云端服務的形式提供額外計算能力。3.根據權利要求1所述的基于動態Agent的云機器人分布式控制系統,其特征在于,所述動態Agent在其任務完成后卸載。4.根據權利要求1所述的基于動態Agent的云機器人分布式控制系統,其特征在于,所述核心Agent和動態Agent是以ROS節點的形式運行在云機器人的操作系統ROS上的,R0Smaster負責ROS節點之間的通信和數據交換。5.根據權利要求1所述的基于動態Agent的云機器人分布式控制系統,其特征在于,所述動態Agent和知識庫Agent之間的通信、動態Agent和云計算Agent之間的通信及調用通過RosCPP實現,采用Rosbridge來聯通動態Agent和ROS。6.—種米用權利要求1所述云機器人分布式控制系統的云機器人分布式控制方法,其特征在于,包括: 步驟1、搭建云機器人ROS節點:本地搭建核心Agent作為ROS節點,并將其部署到本地機器人的操作系統R0S; 步驟2、部署知識庫Agent:利用Roscpp編程語言編寫知識庫Agent,包含適合于機器人的若干功能應用; 步驟3、云機器人接受任務指令,核心Agent連接到互聯網,核心Agent與知識庫Agent之間建立可靠的通信連接,并向知識庫Agent申請下載任務指令對應的功能應用; 步驟4、知識庫Agent接收到下載請求,尋找相應功能應用,將其下載到本地機器人的操作系統ROS,作為動態Agent ; 步驟5、當云機器人的操作系統ROS的計算能力低于任務要求時,根據用戶需求,動態Agent向云端申請創建以云端服務的形式提供額外計算能力的云計算Agent; 步驟6、核心Agent激活動態Agent,動態Agent執行任務,任務執行結果由核心Agent返回給用戶; 步驟7、任務完成后,核心Agent控制動態Agent卸載云計算Agent,然后核心Agent卸載動態Agent,實現動態卸載。
【文檔編號】B25J9/16GK105945943SQ201610316741
【公開日】2016年9月21日
【申請日】2016年5月12日
【發明人】張云洲, 胡濤, 祁玉曉, 李世鵬
【申請人】東北大學