• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      移動機器人行為協(xié)同開發(fā)框架與應用研究

      2019-06-11 03:39周佳峰曹偉
      計算技術(shù)與自動化 2019年1期

      周佳峰 曹偉

      摘要:移動機器人在生產(chǎn)生活當中日益發(fā)揮重要作用,但移動機器人開發(fā)應用卻比較困難,主要存在兩個問題:一是軟件模塊化和重用性,二是行為協(xié)同控制模型的理論支撐。針對上述問題,融合了已在學術(shù)界和工業(yè)界取得廣泛應用的開源機器人軟件平臺一機器人操作系統(tǒng)( Robot Operaing System,ROS),以及多主體理論中,支撐主體內(nèi)部行為協(xié)同機制的反應式包容模型( Subsumption Architecture),設(shè)計并實現(xiàn)了一個移動機器人行為協(xié)同開發(fā)框架。基于機器人操作系統(tǒng)底層機制,把包容模型的基本控制元件封裝成API,在功能單元內(nèi)部提供基于有限狀態(tài)機的開發(fā)模板,在功能單元之間提供松散耦合的通信機制,并且提供了基于框架的應用開發(fā)的模型設(shè)計方法學和應用實現(xiàn)方法學。用戶使用本文框架開發(fā)移動機器人,因為框架把包容模型中的關(guān)鍵控制元件封裝成API,使得用戶不用了解復雜的控制模型理論以及底層模塊執(zhí)行機制和通信機制,并且可以重用機器人操作系統(tǒng)提供的開源軟件包,幾乎沒有額外的學習代價,十分地方便高效。通過框架研究并且開發(fā)了具有三個行為層的自主漫游機器人以及具有六個行為層的安保巡邏機器人,在仿真器和實際場景中設(shè)置不同地圖環(huán)境,進行機器人行為實驗,通過實驗結(jié)果分析,進一步驗證了框架的易用性、可靠性和魯棒性。

      關(guān)鍵詞:多主體理論;包容模型;機器人操作系統(tǒng);應用開發(fā)框架;安保巡邏機器人

      中圖分類號:TP311

      文獻標識碼:A

      移動機器人在移動中執(zhí)行任務,既可以通過人工指揮,又可以運用人工智能技術(shù),實現(xiàn)面向特定應用場景的自主性任務執(zhí)行。移動機器人在現(xiàn)代社會中已經(jīng)獲得廣泛應用,融人到了生產(chǎn)和生活的眾多方面。移動機器人可以替代人類執(zhí)行各種操作,尤其是危險作業(yè),災難救援機器人、農(nóng)業(yè)機器人、安保機器人、消防機器人、核泄漏事故檢測機器人等都是移動機器人的代表性應用[1-5]。但是長期以來,為移動機器人開發(fā)應用軟件比較困難,主要是存在以下兩個方面的問題:

      (1)不同公司和科研院所開發(fā)的機器人功能模塊互不兼容,機器人應用的軟件重用性難以被保證,機器人開發(fā)者想要開發(fā)一個應用,往往要從底層的機器人驅(qū)動開始,耗費了極大的工作量;

      (2)缺乏對于移動機器人應用開發(fā)的理論支撐,在機器人的行為模塊被開發(fā)出來之后,如何協(xié)調(diào)機器人的這些行為模塊,從而針對不同的應用場景完成不同的任務。

      針對上述第一個機器人軟件可重用性的問題,近些年,一些機器人軟件平臺被開發(fā)了出來。OROCOS[6]是一個開源的機器人控制軟件平臺,通過無鎖編程(lock-free programming)技術(shù),可以基于OROCOS開發(fā)實時性應用。MRDS( MicrosoftRobotics Developer Studio)[7]是微軟開發(fā)的機器人軟件平臺,采用微軟的基于.NET技術(shù)的編程環(huán)境。OPRoS[8]是由韓國開發(fā)小組設(shè)計的一個基于組件的開源軟件平臺,它整合了IDE開發(fā)工具、測試工具等,具有易用性。OpenRTM-aistc9]是基于RT中間件開發(fā)的機器人軟件平臺,基于RTC (RT-compo-nents)思想,其控制結(jié)構(gòu)是分布式的。上述平臺提供了機器人軟件模塊化機制,但是基本沒有活躍的用戶群體,甚至有些平臺沒有開源社區(qū),可重用的代碼包很少,對于機器人軟件的重用支持的差。機器人操作系統(tǒng)ROS(Robot Operating System)[10]是一個開源的機器人軟件平臺,具有活躍的軟件社區(qū),全世界數(shù)以千計的程序員為其貢獻了豐富的可以被重用的開源代碼包。ROS開發(fā)的初衷就是鼓勵程序員的合作式開發(fā)和軟件重用。所以,ROS可以用來解決移動機器人開發(fā)面臨的第一個軟件模塊化和可重用的問題。

      針對第二個機器人行為協(xié)調(diào)理論模型的問題,很多學者展開了這方面的研究。運動模式( Motor-Schema)cll]方式為輸入的各個行為賦予權(quán)值,輸出的行為是所有輸入行為的加權(quán)平均,但是這種模型采用中心仲裁方式,不具有魯棒性?;诹憧臻g的機器人行為協(xié)同方式[12],可以利用行為之間在不同維度的映射關(guān)系,整合成機器人的整體行為,但是該種方法同樣由于其對中心計算節(jié)點的依賴性,缺乏魯棒性。在多主體理論當中,基于行為的反應式模型可以通過松散耦合的行為交互,構(gòu)建智能主體,包容模型[13]是其典型代表,基于分層行為控制的思想,協(xié)同機器人行為,構(gòu)建機器人智能,具有魯棒性。

      近年來,研究者針對上述問題開發(fā)了一些典型的機器人編程框架,SMACH[14]框架采取有限狀態(tài)機的思想,解決移動機器人行為協(xié)同,但是這種方法的缺點就是魯棒性低,任何一個狀態(tài)節(jié)點失效,將導致整個系統(tǒng)無法工作。COROS[15]基于ROS開發(fā)了機器人編程框架,但是該方法只是封裝了一些基本可重用模塊組件,缺乏理論支撐,應用驗證也相對簡單。Buzz[16]從編程語言設(shè)計的角度為機器人開發(fā)提供了可行方案,把機器人一般的功能需求封裝為原子語言操作,工作具有啟發(fā)性,但是缺乏軟件平臺支撐,無法支持軟件可重用性。GSDF框架[17]以Buzz中的機器人原子語言模型作為理論支撐,融合ROS實現(xiàn)了機器人應用開發(fā)框架,但是該方法關(guān)注底層通信與功能原語,無法提供多任務的系統(tǒng)級別的應用開發(fā),其應用范圍有限。

      基于ROS的底層機制,融合包容模型,開發(fā)了一個移動機器人編程框架。提取了包容模型中的關(guān)鍵控制元件一消息禁止器和消息抑制器,基于ROS進行封裝,提供了功能單元間通信機制以及功能單元內(nèi)部的行為描述模板。介紹了基于本文框架開發(fā)機器人應用的方法學。本框架相比于上述平臺、模型和框架,針對移動機器人應用開發(fā)的優(yōu)勢可以總結(jié)如下:

      (1)用戶可以不用了解復雜的行為協(xié)同理論,框架底層機制對用戶透明,用戶直接復用本框架提供的API即可;

      (2)ROS開源社區(qū)提供的豐富的開源軟件包可以在框架當中被重用;

      (3)本框架可以支撐魯棒的系統(tǒng)級別的機器人應用開發(fā),具有開發(fā)高效性;

      (4)熟悉Python或者C++編程的程序員使用本框架基本沒有額外的學習代價。

      在實驗階段,基于框架實現(xiàn)了由包容模型提出者Brooks最初設(shè)計的自主漫游移動機器人[16]并且實現(xiàn)了一個具有六層行為的安保巡邏機器人。通過在仿真和實際環(huán)境中的實驗結(jié)果和分析,驗證了框架的易用性、魯棒性和開發(fā)高效性。

      其余部分組織如下,第1節(jié)介紹預備知識,介紹ROS的基本機制以及包容模型的基本思想和關(guān)鍵控制元件;第2節(jié)介紹移動機器人行為協(xié)同開發(fā)框架;第3節(jié)介紹基于框架開發(fā)機器人應用的方法學;第4節(jié)介紹基于框架的安保巡邏機器人應用開發(fā);第5節(jié)是實驗部分。

      1 預備知識

      移動機器人應用開發(fā)框架基于包容模型多主體理論與機器人操作系統(tǒng)ROS,下面對其進行介紹。

      1.1 反應式包容模型

      多主體理論當中,松散耦合的多個智能主體通過交互,可以構(gòu)建整體智能?;谛袨榈姆磻蕉嘀黧w理論中,多個行為通過松散耦合的方式交互,完成行為協(xié)同,包容模型是該反應式理論的典型代表,該模型最初由Brooks提出。如圖(1)所示,表示基于包容模型的自主漫游移動機器人控制結(jié)構(gòu),方形模塊表示不同的功能單元,功能單元之間的連接線表示不同類型的消息流,功能單元之間采取松散耦合的方式進行通信,不同的功能單元組合可以構(gòu)建行為層。圖(1)中帶有符號“I”的圓形模塊表示包容模型的控制元件之一——消息禁止器(In-hibitor),從消息禁止器之上流人的消息可以作為禁止信號,禁止經(jīng)過禁止器的消息流通,圓形模塊中的數(shù)字表示一次消息禁止的時間。圖(2)中帶有符號“S”的圓形模塊表示包容模型的另一個控制元件——消息抑制器( Suppressor),從消息抑制器之上流人的消息,可以替代下層流經(jīng)抑制器的消息,如果沒有消息流經(jīng)抑制器,原本流經(jīng)其的消息正常傳遞,圓圈中的數(shù)字表示一次消息抑制的時間單位。通過兩個控制元件,可以組合行為層,使得上層行為在抑制下層行為的同時,也可以包容下層的部分行為,從而實現(xiàn)移動機器人內(nèi)部的行為協(xié)同,構(gòu)建增長式的智能。

      1.2 機器人操作系統(tǒng)-ROS

      在ROS中,功能單元通過節(jié)點(Node)表示,節(jié)點之間可以通過松散耦合通信方式一發(fā)布/訂閱方式進行消息通信。每一個節(jié)點通過一個操作系統(tǒng)進程來執(zhí)行,節(jié)點內(nèi)部通過訂閱者接口( Subscriber)來訂閱某個話題(topic)上的消息,通過與接口綁定的回調(diào)函數(shù)來處理消息,回調(diào)函數(shù)可以通過消息觸發(fā)執(zhí)行。發(fā)布者接口( Publisher)負責在某個話題上發(fā)布消息,實現(xiàn)節(jié)點間異步通信。

      2 移動機器人行為協(xié)同開發(fā)框架

      基于機器人操作系統(tǒng)ROS,融合多主體理論中基于行為的反應式模型,設(shè)計并實現(xiàn)了應用于移動機器人的行為協(xié)同開發(fā)框架。

      2.1 總體結(jié)構(gòu)

      如圖(2)所示,表示移動機器人行為協(xié)同開發(fā)框架總體結(jié)構(gòu)。底層表示機器人操作系統(tǒng),為框架開發(fā)提供底層支撐,功能單元可以復用機器人操作系統(tǒng)中的開源軟件功能包,也可以自己編寫。消息禁止器和消息抑制器為框架中的消息流控制元件,基于機器人操作系統(tǒng)的機制,把其封裝成API,通過消息流控制元件的消息禁止和消息抑制功能,把功能單元組合成行為層,不同的行為層組合成了一個自主智能移動機器人。

      2.2 消息流控制元件的封裝

      消息流控制元件為包容模型中最重要的部分,包括消息禁止器和消息抑制器,消息禁止器可以通過上層禁止信號的到來阻斷下層消息流傳遞,消息抑制器可以把下層的消息流替換為從抑制器上層傳人的消息流。例如,圖(1)中的“wander”模塊的輸出消息線上插入了一個消息抑制器,就可以使得上層的“startlook”消息作為消息禁止信號,禁止下層的“heading”消息傳遞給“avoid”模塊,一次消息禁止的時間為3個單位;圖(1)中的“runaway”模塊的消息輸出線上,插入了一個消息抑制器,當上層的“avoid”模塊有“heading”消息輸出的時候,就會替換下層“runaway”模塊本來的消息輸出,一次消息抑制的時間為20個單位。

      在消息禁止器控制元件的封裝過程中,一個元件被封裝為一個機器人操作系統(tǒng)中的節(jié)點。在節(jié)點內(nèi)部有兩個回調(diào)函數(shù),一個被上層傳人的消息觸發(fā),一個被下層傳人的消息觸發(fā),每個回調(diào)函數(shù)內(nèi)部都會記錄一個時間戳,每一次回調(diào)函數(shù)的執(zhí)行都會觸發(fā)這個時間戳的更新,兩個回調(diào)函數(shù)之間通過共享變量機制,共享各自的時間戳。當消息禁止器接收到一個從下層傳人的消息時候,觸發(fā)相應的回調(diào)函數(shù),其內(nèi)部控制邏輯就會計算這兩個時間戳的差值,判斷其是否小于一個預先指定的閾值。如果小于這個閾值,下層消息就會被禁止,否則下層消息通過該回調(diào)函數(shù)被轉(zhuǎn)發(fā),即消息正常傳遞。

      消息抑制器的封裝過程類似于消息禁止器的封裝,不同點是,消息抑制器在禁止下層消息傳遞的同時,在處理上層消息的回調(diào)函數(shù)中加入了一個消息發(fā)布者,負責轉(zhuǎn)發(fā)上層消息,從而使得下層傳人的消息替換為上層消息,完成消息抑制過程。

      控制元件中傳人消息的話題、消息禁止和抑制時間被封裝為可以外部配置的參數(shù)。用戶使用這兩個控制元件時,只需在ROS提供的launch文件中,實例化控制元件節(jié)點API,并配置相應參數(shù)即可。

      2.3 功能單元之間的通信

      在ROS中,功能單元通過節(jié)點執(zhí)行,節(jié)點之間可以通過異步方式進行通信。采用發(fā)布/訂閱機制,一個節(jié)點把消息發(fā)布到某一個話題上,所有在這個話題上訂閱消息的節(jié)點都可以接受到這個消息,消息類型需要與話題上指定的消息類型相匹配。

      在框架當中,如圖(3)所示,表示功能單元之間以及與控制元件之間的通信方式,采用發(fā)布/訂閱機制,通信相連的功能單元需要配置相同的話題,底層支撐采用TCP/IP協(xié)議。例如,在圖(1)中,“sonar”模塊在相應話題上發(fā)布了類型為“map”的消息,話題名稱為“/sonar/map”,那么在這個話題上訂閱消息的“feelforce”模塊和“collide”模塊,都可以接收到這個消息。通過這種方式,用戶基于本文開發(fā)框架,重用的開源功能單元模塊或者是自己重新編寫的功能單元模塊,都可以很方便地插入到想要開發(fā)的移動機器人應用的控制模型當中。

      2.4 功能單元內(nèi)部的行為描述模板

      機器人行為協(xié)同開發(fā)框架提供了功能單元內(nèi)部的行為描述模板,采用了有限狀態(tài)機的方式,共分為四種類別的狀態(tài):事件觸發(fā)調(diào)度狀態(tài)、副效應狀態(tài)、條件觸發(fā)調(diào)度狀態(tài)、輸出狀態(tài)。通過四種狀態(tài)組成的有限狀態(tài)機,可以作為行為描述模板開發(fā)功能單元,下面舉例進一步解釋。

      如圖(4)所示,表示的是圖(1)中“avoid”功能單元內(nèi)部的有限狀態(tài)機行為描述方式,此狀態(tài)機運行在一個回調(diào)函數(shù)當中,該函數(shù)負責處理到來的“heading”消息。監(jiān)控狀態(tài)負責訂閱“heading”消息。此狀態(tài)屬于事件觸發(fā)調(diào)度狀態(tài),“heading”消息的到來即為觸發(fā)狀態(tài)機調(diào)度的事件;規(guī)劃狀態(tài)根據(jù)“heading”消息存儲的信息與共享變量計算結(jié)果,這個共享變量的更新通過另一個回調(diào)函數(shù)來執(zhí)行,此狀態(tài)屬于副效應狀態(tài),狀態(tài)的執(zhí)行帶來了內(nèi)部某些變量的改變,比如說本例狀態(tài)機中的結(jié)果變量。計算完畢后,轉(zhuǎn)入執(zhí)行狀態(tài);執(zhí)行狀態(tài)將結(jié)果與一個閾值相比較,如果大于閾值,轉(zhuǎn)入監(jiān)控狀態(tài),如果小于閾值,轉(zhuǎn)入輸出結(jié)果狀態(tài)。此狀態(tài)為條件觸發(fā)調(diào)度狀態(tài),觸發(fā)的條件即為計算結(jié)果與閾值的比較;發(fā)布狀態(tài)負責將計算得到的結(jié)果封裝成消息并且發(fā)布。此狀態(tài)屬于輸出狀態(tài),輸出的是計算結(jié)果。

      3 基于行為協(xié)同框架的應用開發(fā)方法學

      提供了基于行為協(xié)同框架開發(fā)移動機器人應用的方法學,分為控制模型設(shè)計步驟和實際應用開發(fā)步驟,總結(jié)如下。

      3.3 基于行為協(xié)同框架的控制模型設(shè)計方法學

      總結(jié)的基于行為協(xié)同框架的控制模型設(shè)計方法學,主要是基于包容模型的層次行為設(shè)計的基本思想,采用自頂向下的方法,具體步驟如下。

      (1)提出移動機器人應用的總體需求;

      (2)將總體需求分解為機器人的具體行為;

      (3)分析具體行為由哪些功能模塊組成;

      (4)分析消息流控制元件如何插入相應功能模塊當中,組成行為層;

      (5)畫出基于包容模型的行為分層控制模型設(shè)計圖。

      3.4 基于行為協(xié)同框架的實際應用開發(fā)方法學

      總結(jié)的基于行為協(xié)同框架的實際移動機器人應用開發(fā)過程的方法學,采用自底向上的思想,具體步驟如下:

      (1)根據(jù)框架中的功能單元行為描述模板,開發(fā)相應的功能單元,如果ROS中有相應的開源代碼包,盡量實現(xiàn)軟件重用;

      (2)使用框架提供的消息流控制元件API,配置相應的消息參數(shù)和時間參數(shù),并且在launch文件中實例化。

      (3)通過消息控制元件和功能單元組成相應的行為層;

      (4)把不同的行為層組合成一個完整的移動機器人應用;

      (5)在機器人仿真和實際環(huán)境中進行驗證。

      4 基于框架的安保巡邏機器人應用案例開發(fā)

      安保機器人具有十分廣泛的應用價值,例如家庭安保機器人、社區(qū)安保機器人、商場安保機器人等。本文基于提出的行為協(xié)同開發(fā)框架,設(shè)計了一個具有六層行為的安保巡邏機器人應用案例,進一步驗證了本框架的易用性和開發(fā)效率的高效性。

      4.1 安保巡邏機器人應用需求分析

      針對安保巡邏機器人的特點,首先進行需求分析,將安保巡邏機器人的總體需求總結(jié)如下:首先,安保巡邏機器人需要可以在已經(jīng)建立好地圖的指定區(qū)域內(nèi)巡邏,如果有入侵者到來,可以檢測到并采取一定措施,例如跟蹤入侵者、報警。當上述行為模塊失效時候,為了提高機器人魯棒性,機器人還需要具有一定的容錯能力,比如基本的自我保護能力、漫游的能力、對環(huán)境的探索能力等。此外,遠程的中心監(jiān)控室需要看到機器人看到的視頻畫面,而且當機器人的巡邏安保行為失效的時候,比如機器人阻塞在某些障礙物之間無法移動,出現(xiàn)這些意外情況的時候,可以做到人工遠程手動控制機器人。

      4.2 安保巡邏機器人控制模型設(shè)計

      如圖(5)所示,表示設(shè)計的安保巡邏機器人控制模型,根據(jù)4.1節(jié)總結(jié)的需求,共分為六個行為層,現(xiàn)將六個行為層描述如下:

      (1)第一層:當有外來物體靠近機器人時,機器人遠離目標;

      (2)第二層:機器人可以實現(xiàn)自主漫游行為,碰到障礙物的時候主動躲避;

      (3)第三層:機器人會主動對環(huán)境的空閑區(qū)域進行主動探索;

      (4)第四層:機器人在已經(jīng)建立地圖的環(huán)境當中,可以在預先標定的目標點之間實現(xiàn)巡邏。

      (5)第五層:機器人可以通過人臉檢測,檢測可疑入侵者目標,自動跟蹤并發(fā)出警報;

      (6)第六層:遠端有一個與機器人通過無線通信相連接的計算機,在計算機上可以看到機器人看到的畫面,手動標識入侵者,手動控制機器人,實現(xiàn)遠程控制和遠程監(jiān)控。

      4.3 安保巡邏機器人應用開發(fā)

      上一節(jié)設(shè)計了安保巡邏機器人的控制模型,下面介紹具體實現(xiàn)過程。

      在第一層中,機器人通過“kinect”模塊獲取攝像頭得到的視頻信息以及深度圖像信息,“run-away”模塊采取手動編寫方式,通過深度點云信息,計算前方對象是否離自己過近,從而逃離或者原地不動?!皊moother”是速度平滑器模塊,復用開源節(jié)點,減少機器人行進過程中由于速度變化而產(chǎn)生的抖動。

      在第二層中,“bumper”模塊傳遞機器人的碰撞信息,可以檢測到是否撞到了障礙物,“wander”模塊手動編寫,可以發(fā)出隨機漫游的速度指令,“avoid”模塊也通過手動編寫,可以融合這兩個消息,實現(xiàn)了帶有避障的漫游。第二層插入第一層的消息抑制器,可以通過漫游行為抑制逃離行為,并且實現(xiàn)了對于第一層速度平滑功能的包容。

      在第三層中,“explore”模塊手動編寫,通過接收“kinect”模塊的深度信息,發(fā)現(xiàn)前方空曠區(qū)域,主動實現(xiàn)探索性地自主智能漫游,通過第三層插入第二層的消息抑制器,可以通過探索行為抑制漫游行為,并且實現(xiàn)了對于底層避障功能、速度平滑功能的包容。

      在第四層中,復用了開源的機器人導航軟件包實現(xiàn)了“navigation”模塊,“patrol”模塊手動編寫,給“navigation”模塊發(fā)送目標指令,并且接收其反饋,反饋消息中包含是否到達相應目標點信息,如果到達,“patrol”模塊發(fā)送下一個目標點指令,從而實現(xiàn)巡邏。通過第四層插入第三層消息抑制器,可以通過有帶有任務規(guī)劃的巡邏行為抑制較低層的探索行為。

      在第五層中,復用了開源的視覺檢測模塊“de-tect”、視覺跟蹤模塊“track”以及機器人報警與發(fā)聲代碼包“alarm”和“sound_play”,當“detect”通過人臉識別算法檢測到可疑目標的時候,會把消息發(fā)布出來,“alarm”模塊會馬上接收到這個消息并且發(fā)給“sound_play”模塊報警,“track”模塊也會馬上接收到這個消息,“track”模塊同時還會接收機器人攝像頭捕捉的視頻消息,處理之后,跟蹤到可疑目標,框選出來?!癴ollow”模塊手動編寫,把目標在視野中的位置和大小信息,通過視覺的近大遠小原理,轉(zhuǎn)換為機器人相應的速度指令,控制機器人移動。第五層插入第四層的消息禁止模塊,能馬上禁止機器人當前的巡邏行為,根據(jù)視野內(nèi)當前可疑目標,進行跟蹤算法的計算,從而最終輸出跟蹤行為,通過插入到第四層的消息抑制器,把巡邏行為替換為跟蹤行為,實現(xiàn)可疑者跟蹤。

      在第六層中,“remote terminal”表示與機器人通過無線通信相連的遠程計算機,“manual detect”是手動檢測模塊,可以手動人工框選目標,通過消息抑制器,替代下層自動框選的目標,“manual con-trol”通過遠程計算機的人工控制命令,控制機器人移動,通過消息抑制器,替代下層的機器人自主移動的指令。

      通過以上六層行為中功能模塊的組織和消息元件的插入,實現(xiàn)了一個智能的安保巡邏機器人應用。

      5 實驗

      5.1 自主漫游移動機器人實驗

      基于提出的行為協(xié)同開發(fā)框架,實現(xiàn)了由Brooks最初提出的由包容模型構(gòu)建的三個行為層的自主漫游移動機器人應用,控制模型如圖(1)所示。

      5.1.1 實驗設(shè)置

      如圖(6)所示,表示自主漫游移動機器人實驗環(huán)境設(shè)置,圖(6a)的環(huán)境表示的是兩個空曠的走廊當中有一個方形的障礙物,圖(6b)的環(huán)境表示地圖中有零散分布的障礙物。圖(6)中的圓圈為機器人,綠色范圍表示聲吶傳感器的有效范圍,紅色線條表示激光傳感器掃描線。

      為仿真機器人配置了12個聲吶傳感器,這12個聲吶傳感器總共覆蓋的角度為360度,最大探測范圍為3米,最小的探測范圍為0.3米;配置了1個激光傳感器,覆蓋的角度是270度,最大探測到的距離配置為8米,最小的探測距離配置為0米。仿真環(huán)境基于ROS提供的STDR仿真器[18]構(gòu)建。

      5.1.2 實驗結(jié)果和分析

      在第1級別的行為能力之下,機器人會找到一片比較空閑區(qū)域停留在原地,直到有另外的目標向其移動。如圖(7)所示,表示自主漫游移動機器人的在第2級和第3級的行為能力下的實驗結(jié)果。在圖(7a)和圖(7b)中,機器人在第2級相應行為能力之下,會在兩種地圖之中作無目的漫游,而且,第2級的行為同時也會包容第1級的行為,如果將要碰到某個障礙物,例如墻壁、地圖邊緣,會執(zhí)行主動避障的行為。在圖(7c)和圖(7d)當中,機器人在第3級相應行為能力之下,會通過上層的激光傳感器,探索到空曠區(qū)域的位置信息,并且向其移動,完成更高的級別的自主漫游行為。同時,第1級和第2級的行為模塊在第3級當中也發(fā)揮著十分重要的作用,機器人在漫游的同時也可以完成避障。如果機器人周圍障礙物較多的話,就會長時間探索不到比較空曠的區(qū)域,此時,機器人行為降級,恢復到第2級的隨機漫游行為。實驗結(jié)果驗證了本文提出的應用于移動機器人的機器人行為協(xié)同開發(fā)框架的易用性、可靠性、魯棒性。

      5.2 安保巡邏機器人實驗

      5.2.1 實驗設(shè)置

      如圖(8)所示,表示安保巡邏機器人的實驗環(huán)境配置。圖(8a)表示本文所使用的地面移動機器人TurtleBot[19],該機器人包括一個Kobuki底盤,一個Kinect攝像頭以及一臺筆記本電腦。Kobuki底盤上面帶有碰撞傳感器,碰撞傳感器可以通過壓力感應原理,檢測到正前方、左前方以及右前方的障礙物。Kinect傳感器可以獲取RGB-D信息,最大的探測距離為3.5米,最小的探測距離為1.2米。

      圖(8b)表示實驗環(huán)境,中間有一個乒乓球桌作為障礙物,乒乓球桌四面是機器人可以通行的通道。

      5.2.2 實驗結(jié)果和分析

      如圖(9)所示,表示實際環(huán)境下的安保巡邏機器人的實驗結(jié)果,圖中的白色箭頭表示移動機器人TurtleBot的運動軌跡,機器人在不同的控制層次之下,會展示出相應的不同行為能力,同時,高級別的行為能力會包容低級別的一部分的行為能力。

      在第1級別行為能力之下,如圖(9a)所示,當有目標靠近機器人的時候,機器人會逃離目標,以執(zhí)行自我保護行為;

      在第2級別的行為能力之下,如圖(9b)所示,機器人會執(zhí)行隨機漫游的行為,同時保證避障,當碰撞到障礙物時候,執(zhí)行一定的避障行為;

      在第3級別的行為能力之下,如圖(9c)所示,機器人會執(zhí)行探索空曠區(qū)域的行為,例如圖中機器人通過kinect傳感器,探索到了空曠的可通行通道,就會大致沿著這個方向行進,從而實現(xiàn)智能自主的探索行為。

      在第4級別的行為能力之下,如圖(9d)所示,在預先建立好地圖的環(huán)境當中,指定了四個巡邏點(乒乓球桌的四個角),機器人就會沿著這些巡邏點執(zhí)行巡邏行為。

      在第5級別的行為能力之下,如圖(9e)所示,前方粘貼人臉圖片的TurtleBot為可疑入侵機器人,當機器人在正常巡邏的過程當中,通過人臉檢測功能,檢測到入侵機器人,就會執(zhí)行跟蹤行為并且報警。如果可疑機器人快速逃走導致其消失在視野當中,那么機器人就會降級其行為能力,恢復巡邏功能。

      在第6級別的行為能力之下,如圖(9f)所示,遠程終端(乒乓球桌上的筆記本電腦)通過無線網(wǎng)絡與機器人建立通信連接,此時,在遠程終端上就可以看到機器人看到的畫面,遠程終端之上,如果機器人無法自動識別可疑者,可以通過人工手動框選目標的方式,指定可疑目標,也可以通過手動控制功能,在遠程終端上向機器人發(fā)送速度運動指令,人工遠程控制機器人移動。當人工指令不發(fā)出的時候,機器人降級其行為能力,恢復到之前的巡邏行為或者自主檢測跟蹤行為(根據(jù)視野中有無可疑入侵者目標)。

      如果此安保機器人應用通過其他移動機器人框架開發(fā),例如基于有限狀態(tài)機的SMACH[14]框架,下面與本文實驗進行對比分析。在機器人運行過程中,使巡邏節(jié)點失效(關(guān)閉巡邏任務進程)。對于本文應用來說,機器人會通過視覺傳感器降級執(zhí)行帶有探索的漫游行為(行為級別3),對環(huán)境依舊有巡邏功能,并且發(fā)現(xiàn)入侵者的時候,依舊會進行跟蹤;對于SMACH應用來說,機器人巡邏行為會馬上失效,狀態(tài)轉(zhuǎn)換無法被觸發(fā),整個系統(tǒng)癱瘓,應用不具有可靠性和魯棒性。此外,對于其他中心仲裁的框架,例如Motor Schema、多路復用選擇器等,當中心仲裁節(jié)點的運行進程意外關(guān)閉,整個系統(tǒng)癱瘓;本文框架把行為協(xié)同節(jié)點(消息禁止器與消息抑制器)分布到各個行為層當中,實現(xiàn)分布式行為仲裁,進一步提高了框架的可靠性和魯棒性。

      在機器人原型過程中,通過基于本文框架開發(fā)的安保巡邏機器人的實際實驗,進一步驗證了本文提出的開發(fā)框架在實際機器人的應用開發(fā)方面,具有易用性、可靠性、魯棒性。

      6 結(jié)論

      多主體理論中,各個主體可以通過交互構(gòu)建整體智能,基于行為的反應式多主體理論中,主體可以通過對環(huán)境的反應實現(xiàn)智能,包容模型是反應式體系結(jié)構(gòu)的代表,具有魯棒、容錯、分布式協(xié)同的優(yōu)點。機器人操作系統(tǒng)ROS是開源機器人軟件平臺,有豐富的可重用的開源機器人軟件功能包。本文融合ROS與包容模型開發(fā)了一個移動機器人行為協(xié)同框架,為移動機器人開發(fā)提供了方便。本文通過使用該開發(fā)框架,分別在仿真器和實際環(huán)境中實現(xiàn)了自主漫游機器人和安保巡邏機器人,進一步驗證了框架的開發(fā)高效性。在接下來的工作中,會把框架向多機器人擴展,研究多機器人行為協(xié)同開發(fā)框架。

      參考文獻

      [1]欒偉玲,韓延龍,張曉霓,等,用于核救災機器人的電機驅(qū)動器安全防護[J].機械工程學報,2017(21):9-15.

      [2]陳順立,農(nóng)業(yè)機器人路徑優(yōu)化及軌跡跟蹤研究一基于遺傳算法[J]農(nóng)機化研究,2017,39(8):17-21.

      [3]薛金言,張斌,武瀚,智能校園巡邏安保機器人設(shè)計[J].無線互聯(lián)科技,2017 (16):131-132.

      [4]徐振亞,姜樹海,森林消防機器人執(zhí)行機構(gòu)的設(shè)計與仿真[J].制造業(yè)自動化,2017(12 ):67-70.

      [5]劉呈則,嚴智,鄧景珊,等.核電站應急機器人研究現(xiàn)狀與關(guān)鍵技術(shù)分析[J].核科學與工程,2013,33(1):97-105_

      [6]BRUYNINCKX H_ Open robot control software: the OROCOS pro-ject [C]//Proceedings 2001 ICRA. IEEE intemational conferenceon robotics and automation( Cat.No.OICH37164).IEEE, 2001,3:2523-2528.

      [7] JACKSON J.Microsoft robotics studio:a technical introduction[J]. IEEE robotics&automation magazine, 2007, 14(4):82-87.

      [8]JANC C, LEE S, JUNG S, et al.OPRoS:a new component basedrobot software platform[J].ETRI Journal: 2010, 32(5 ):646-656.

      [9] ANDO N,SUEHIRO T,KOTOKU T.A software platform forcomponent based RT -system development:openRTM -aist[M]//Simulation, Modeling, and Programming for Autonomous Robots.Springer Berlin Heidelberg: 2008: 87-98.

      [10] QUICLEY M,CONLEY K,GERKEY B,et al.ROS: an open-source Robot Operating System[C]//ICRA Workshop on OpenSource Software. 2009, 3(3.2):5.

      [11] ARKIN R C.Motor schema-based mobile robot navigation[J].The International Journal of Robotics Research, 1989,8(4):92-1 12

      [12] ANTONELLI, GIANLUCA. FILIPPO ARRICHIELLO,et al.Experiments of formation control with multirobot systems using the null-space-based behavioral control [J]. IEEE Transactionson Control Systems Technology: 2009: 1173-1182.

      [13]BROOKS R S.A robust layered control system for a mobile robot[J]. IEEE J, 1986,2( 1):14-23.

      [14] BOHREN J, COUSINS S. The SMACH high-level executive [ROSNews][J].IEEE Rohotics&Automation Magazine: 2010, 17 (4): 18-20.

      [15]KOUBAA, SRITI M F,BENNACEUR H,et al.COROS:a multi-agent software architecture for cooperative and autonomousservice robots [J]. Studies in Computational Intelligence:2015. 604:3-30.

      [16] PINCIROLI C,BELTRAME G.Buzz:a programming language forrobot swarms[J].IEEE Software, 2016, 33( 4):97-100.

      [17] CHANGX, CAI Z, WANGY, et al.GSDF:a generic developmentframework for swarm robotics[C]// International Conference onIntelligent Robotics and Applications. Springer,Cham,2017:659-670.

      [18] MANOST,CHRIS Z,ArisT.STDR二維分布式機器人仿真器.http://wiki.ros.orgstdr_simulator[EB/OL].2014.

      [19] TULLY F,MELONEE W.TurtleBot地面移動機器人實驗平臺.http://wiki.ros.orgRobots/TurtleBot[EB/OL]. 2017.

      宾川县| 金门县| 芒康县| 团风县| 黄梅县| 工布江达县| 三台县| 垣曲县| 华阴市| 牙克石市| 宁明县| 女性| 阿城市| 天水市| 宜州市| 桃园县| 涡阳县| 余江县| 广宁县| 凤冈县| 灵台县| 景谷| 大港区| 托克托县| 长丰县| 湖州市| 扬中市| 锡林郭勒盟| 潼南县| 永善县| 金塔县| 镇安县| 夹江县| 阳西县| 来安县| 彰武县| 科技| 三河市| 炎陵县| 册亨县| 蓝山县|