本發(fā)明涉及昆蟲機(jī)器人技術(shù)領(lǐng)域,具體涉及一種基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人擺腹控制方法。
背景技術(shù):
昆蟲機(jī)器人是以昆蟲為載體,結(jié)合控制模塊形成的一種新型動物機(jī)器人系統(tǒng)。這類特殊機(jī)器人借助載體本身運(yùn)動能力,不需要考慮復(fù)雜的機(jī)械及動力系統(tǒng),在科學(xué)研究、國防安保、工業(yè)生產(chǎn)等領(lǐng)域有廣泛的應(yīng)用前景。
如何控制昆蟲飛行是昆蟲機(jī)器人研究中首要解決的問題。昆蟲機(jī)器人一般包括行為刺激模塊、昆蟲行為采集與分析模塊、控制指令決策三個部分。
目前,昆蟲機(jī)器人的行為刺激方式以電刺激為主,并通過人手工來調(diào)節(jié)昆蟲在不同運(yùn)動狀態(tài)下所對應(yīng)的電刺激參數(shù)。電刺激方法是通過動物手術(shù)將硅或者微絲電極植入到昆蟲的肌肉或者神經(jīng)系統(tǒng),采用微控制器生成方波脈沖輸入到昆蟲的刺激位點(diǎn),達(dá)到控制昆蟲左右偏轉(zhuǎn)等行為的目的。雖然電刺激式的昆蟲機(jī)器人取得了長足的進(jìn)步,但是仍然存在若干問題:
第一,在植入刺激電極過程中會對昆蟲的肌肉或者神經(jīng)系統(tǒng)造成損傷,導(dǎo)致后續(xù)的控制性能下降;第二,長時(shí)間的電刺激會造成昆蟲疲勞,對電刺激的響應(yīng)靈敏度下降;第三,由于昆蟲體型較小,大部分昆蟲的肌肉和大腦的體積約為1立方毫米,那么一次電刺激可能涉及多個感覺-運(yùn)動回路,甚至是整個肌肉或者大腦,從而引發(fā)不確定的行為反應(yīng);第四,若要進(jìn)行人工調(diào)節(jié)刺激參數(shù),需要事先進(jìn)行大量的生物實(shí)驗(yàn)得到刺激-行為響應(yīng)的關(guān)系,這樣需要大量的生物實(shí)驗(yàn),將消耗大量的時(shí)間,且不同昆蟲個體對相同刺激參數(shù)的行為響應(yīng)仍存在較大的偏差,因此人工調(diào)節(jié)刺激參數(shù)的方式存在效率低下,控制不精準(zhǔn)等問題;
開發(fā)非植入式的控制方式可以避免上述對昆蟲機(jī)體造成損傷的問題。大量研究表明,光流在昆蟲的許多重要行為中起著關(guān)鍵作用,比如,飛行速度控制、高度控制、深度測量、飛行距離測量等,為實(shí)現(xiàn)光流控制式的昆蟲機(jī)器人提供了理論基礎(chǔ)。
昆蟲視覺和電生理的研究中用于提供視覺刺激的方式有:打印有條紋的紙張、投影儀、顯示器和LED點(diǎn)陣等。目前最常用的視覺刺激器是由LED點(diǎn)陣構(gòu)成,如申請?zhí)枮?01410422437.4的中國專利申請文獻(xiàn)提供了一種熊蜂飛行控制器,不僅要滿足熊蜂的復(fù)眼特性,而且要能生成可定制的光流刺激。但是如何利用光流刺激,并且在強(qiáng)化學(xué)習(xí)算法框架下,對熊蜂飛行進(jìn)行有效控制卻未有報(bào)道。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人擺腹控制方法,采用強(qiáng)化學(xué)習(xí)算法控制熊蜂的腹部擺動從一個初始狀態(tài)達(dá)到一個目標(biāo)狀態(tài),克服現(xiàn)有技術(shù)中由于人為調(diào)節(jié)刺激參數(shù)控制不精準(zhǔn),以及需要進(jìn)行大量生物實(shí)驗(yàn)的問題。
一種基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人擺腹控制方法,包括:
(1)根據(jù)設(shè)定的熊蜂腹部擺動的目標(biāo)模式,采用強(qiáng)化學(xué)習(xí)算法建立Q表,所述Q表記錄了每類擺腹模式下每個動作獲得的累積折扣獎勵值;
(2)監(jiān)測熊蜂當(dāng)前時(shí)刻的擺腹模式,對照Q表,依據(jù)獎勵值最大原則,實(shí)時(shí)做出動作控制熊蜂擺腹;
所述動作為由環(huán)繞熊蜂流動的光束形成的不同參數(shù)的視覺刺激。
本發(fā)明將該昆蟲機(jī)器人控制問題以強(qiáng)化學(xué)習(xí)算法來進(jìn)行建模。虛擬現(xiàn)實(shí)系統(tǒng)提供光流信息直接輸入到熊蜂的復(fù)眼,誘發(fā)熊蜂的擺腹行為;高清攝像頭實(shí)時(shí)捕捉熊蜂的腹部運(yùn)動行為,并通過計(jì)算機(jī)圖像算法獲取熊蜂的腹部擺動模式,作為環(huán)境狀態(tài);算法會改變光流信息的參數(shù),LED屏?xí)淖兯倪\(yùn)動參數(shù),再輸入給熊蜂,從而形成了一個閉環(huán)控制系統(tǒng)。
所述獎勵值最大原則即貪心策略。
所述動作由若干個LED顯示屏組成的虛擬現(xiàn)實(shí)系統(tǒng)產(chǎn)生,所述LED顯示屏由基于CAN總線的LED控制系統(tǒng)控制。
具體地,一種基于CAN總線的LED顯示屏,用于提供熊蜂的光流信息輸入;所述LED顯示屏為32×8結(jié)構(gòu),單片機(jī)的32個引腳控制列向LED顯示,剩余8個引腳控制橫向LED顯示。由PC控制端、CAN總線上的主節(jié)點(diǎn)和若干包含LED驅(qū)動模塊的從節(jié)點(diǎn)組成。所述PC控制端包括輸入單元和第一串口通信服務(wù)單元,將包含了圖像信息和控制命令的數(shù)據(jù)包發(fā)送給CAN總線的主節(jié)點(diǎn),所述CAN總線上的主節(jié)點(diǎn)包括第二串口通信服務(wù)單元,接收客戶端發(fā)送的數(shù)據(jù);CAN總線通信服務(wù)單元,將接收到的數(shù)據(jù)編碼后,上傳到CAN總線;所述的從節(jié)點(diǎn)包括第二CAN總線通信服務(wù)單元,從CAN總線接收數(shù)據(jù),并傳輸給相應(yīng)的LED驅(qū)動模塊。所述LED驅(qū)動模塊所用單片機(jī)型號為MSP430F149,LED驅(qū)動模塊驅(qū)動LED燈,從而到達(dá)了顯示圖像和控制圖像運(yùn)動的功能。
本發(fā)明采用記錄熊蜂腹部擺動模式來反映熊蜂的飛行行為,大量研究發(fā)現(xiàn),昆蟲的腹部在昆蟲飛行控制中起著關(guān)鍵的作用,因?yàn)楦共康奈恢脹Q定了翅膀振翅產(chǎn)生的力的方向。
上述的熊蜂擺腹行為的采集和分析,由一個高清的攝像頭、粒子濾波算法組成,可以得到熊蜂腹部的偏轉(zhuǎn)角度時(shí)序序列。所述高清攝像頭型號為ANC HD1080P,采集幀率為30幀/秒;攝像頭通過USB線和電腦連接,將圖像傳輸?shù)诫娔X上,用于后續(xù)的行為分析。所述粒子濾波是一種應(yīng)用廣泛的,用于物體跟蹤的經(jīng)典算法,在實(shí)驗(yàn)之前,選中某一固定點(diǎn)作為跟蹤點(diǎn),選中圖像中一塊熊蜂腹部矩形區(qū)域作為跟蹤目標(biāo),該區(qū)域的顏色直方圖作為特征,用于計(jì)算下一幀目標(biāo)所在位置,由此計(jì)算出熊蜂的腹部偏轉(zhuǎn)角度。得到角度后,使用滑動窗口的方法計(jì)算熊蜂的擺腹模式。
作為優(yōu)選,所述擺腹模式由單個滑動窗口內(nèi)熊蜂腹部偏轉(zhuǎn)角度的最大值、最小值、平均絕對值、波峰波谷數(shù)、大于均值點(diǎn)個數(shù)以及方差構(gòu)成的6維向量表征。
作為優(yōu)選,所述滑動窗口的寬度為200~400ms。更為優(yōu)選,滑動窗口的寬度為200ms。
本發(fā)明采用強(qiáng)化學(xué)習(xí)算法建立起了熊蜂與視覺刺激器之間的交互機(jī)制,強(qiáng)化學(xué)習(xí)過程是一個不斷地和環(huán)境交互的過程,通過交互,可以得到一種從環(huán)境到動作映射的最優(yōu)策略。強(qiáng)化學(xué)習(xí)包括環(huán)境,動作和獎勵函數(shù)三個主要部分。
所述環(huán)境部分為熊蜂的腹部擺腹模式,由上述的6維向量來表示;
所述動作是強(qiáng)化學(xué)習(xí)算法可采取的對外部視覺刺激的參數(shù)調(diào)控,作為優(yōu)選,所述Q表包含5~20個動作。所述視覺刺激參數(shù)是圖像旋轉(zhuǎn)的角速度,具體地,有10個可選的角速度,分別為:[2.05,2.89,3.97,4.88,6.20,7.21,8.72,11.02,14.5,22.16,]rad/s;此外,視覺刺激參數(shù)也可以包括圖像的亮度、運(yùn)動方向、寬度等。
所述獎勵函數(shù)主要由當(dāng)前熊蜂的擺腹模式和目標(biāo)擺腹模式之間的歐式距離決定,記目標(biāo)狀態(tài)為向量xg,對應(yīng)離散狀態(tài)為kg,當(dāng)前時(shí)刻t的熊蜂擺腹模式為xt,對應(yīng)離散狀態(tài)為kt,上一時(shí)刻熊蜂的擺腹模式記為xt-1,dist1為xt與xg間的距離,dist2為xt-1與xg間的距離,那么獎勵函數(shù)可以記為:
R=0.2,if(dist1>dist2and kt≠kg);
R=+1,if(dist1>dist2and kt=kg);
R=-1,otherwise。
獎勵函數(shù)是對強(qiáng)化學(xué)習(xí)產(chǎn)生某個動作的好壞作一種評價(jià),強(qiáng)化學(xué)習(xí)的目的是使得累積的獎勵最大化。
作為優(yōu)選,所述Q表的建立方法為:
(1)初始化Q表,學(xué)習(xí)速率α,折扣因子γ,擺腹模式聚類中心;
(2)獲得時(shí)刻t熊蜂的擺腹模式xt;
(3)利用序列K-means離散化,調(diào)整擺腹模式類中心;
(4)依據(jù)epsilon-greedy選取動作at;
(5)執(zhí)行動作at,獲得獎勵值rt+1和下一時(shí)刻熊蜂的擺腹模式xt+1;
(6)重復(fù)步驟(3)和(4),選取動作at+1;
(7)根據(jù)如下公式更新Q表;
Q(xt,at)←Q(xt,at)+α[rt+1+γQ(xt+1,at+1)-Q(xt,at)];
(8)再從步驟(2)開始循環(huán)執(zhí)行,直到Q表收斂。
通過強(qiáng)化學(xué)習(xí)算法與環(huán)境的交互,得到一個從可以環(huán)境到動作映射的最優(yōu)策略,即可以根據(jù)當(dāng)前熊蜂的擺腹模式來確定下一次視覺刺激的參數(shù),形成一個閉環(huán)的控制系統(tǒng)。在實(shí)際的控制過程中,擺腹模式將在強(qiáng)化學(xué)習(xí)算法控制下快速、精確的趨近于目標(biāo)狀態(tài)。
本發(fā)明具備的有益效果:
(1)本發(fā)明針對熊蜂的視覺通路,采用光流刺激,排除了因?yàn)椴捎弥踩胧椒绞綄?dǎo)致的對熊蜂本身的傷害。
(2)采用強(qiáng)化學(xué)習(xí)算法建立起了熊蜂擺腹行為與視覺刺激器之間的交互機(jī)制,不需要進(jìn)行大量的生物實(shí)驗(yàn)來得到刺激-行為響應(yīng)之間的關(guān)系。
(3)本發(fā)明視覺刺激誘導(dǎo)熊蜂的運(yùn)動行為,并以強(qiáng)化學(xué)習(xí)算法作為控制算法,有效地形成了一個閉環(huán)的控制系統(tǒng),能夠精確的控制熊蜂的腹部擺動行為。
附圖說明
圖1為發(fā)明的基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人閉環(huán)控制系統(tǒng)控制流程圖。
圖2為發(fā)明的基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人閉環(huán)控制系統(tǒng)部分結(jié)構(gòu)示意圖。
圖3為基于CAN總線的LED顯示屏模塊示意圖。
圖4為熊蜂的行為采集和分析過程及結(jié)果示意圖。
圖5為強(qiáng)化學(xué)習(xí)算法交互過程示意圖。
圖6為基于滑動窗口來提取熊蜂腹部擺動特征的過程。
圖7為強(qiáng)化學(xué)習(xí)算法的學(xué)習(xí)過程。
圖8為一只熊蜂分別在強(qiáng)化學(xué)習(xí)算法和隨機(jī)策略控制下維度SSC的控制曲線。
圖9為一只熊蜂分別在強(qiáng)化學(xué)習(xí)算法和隨機(jī)策略控制下維度SSC和目標(biāo)維度SSC的偏差曲線。
圖10為算法學(xué)習(xí)到的Q表分布圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步說明。
實(shí)施例1
如圖1所示,其中圖1(A)是本發(fā)明的基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)算法的熊蜂機(jī)器人閉環(huán)控制系統(tǒng)的控制回路,控制回路是,首先熊蜂的復(fù)眼接收到了外部的光流刺激,然后產(chǎn)生了腹部擺動相應(yīng);為了捕捉熊蜂的腹部擺動行為,本發(fā)明使用粒子濾波算法跟蹤熊蜂的腹部尖端,并計(jì)算了其擺動角度,然后根據(jù)滑動窗口來進(jìn)行特征提??;提取到的熊蜂腹部擺動特征,作為強(qiáng)化學(xué)習(xí)算法的環(huán)境狀態(tài),算法則會選取下一個時(shí)刻的刺激參數(shù),由此形成了閉環(huán)的學(xué)習(xí)過程。圖1(B)則是本發(fā)明的基于虛擬現(xiàn)實(shí)和強(qiáng)化學(xué)習(xí)算法的熊蜂機(jī)器人閉環(huán)控制系統(tǒng)的物理組成,對應(yīng)圖1(A),系統(tǒng)包括一個基于CAN總線的LED顯示屏,用來提供光流刺激;一個用于采集熊蜂擺腹行為的高清攝像頭和一臺用于對圖像進(jìn)行分析和處理,并且運(yùn)行著強(qiáng)化學(xué)習(xí)算法的電腦。
如圖2所示,一種基于光流刺激和強(qiáng)化學(xué)習(xí)的熊蜂機(jī)器人控制方法實(shí)驗(yàn)平臺,包括了防震臺1、2,放置在防震臺上的LED顯示屏3,LED屏用來產(chǎn)生特定的視覺刺激,用于固定微操固定支架的支柱4,用于調(diào)整熊蜂固定位置的微操固定支架5,用于拍攝熊蜂腹部擺動行為的高清攝像頭6,萬向支架7,用于后續(xù)系統(tǒng)的擴(kuò)展,此外,設(shè)計(jì)中還包括了高速攝像頭8以及用于固定高速攝像頭的支架9。整個系統(tǒng)除了PC以外均放在防震臺上,防止桌面抖動帶了的對實(shí)驗(yàn)的影響。
如圖3所示,一種基于CAN總線的LED顯示屏,用于提供熊蜂的光流信息輸入;所述LED顯示屏為32×8結(jié)構(gòu),單片機(jī)的32個引腳控制列向LED顯示,剩余8個引腳控制橫向LED顯示。由PC控制端、CAN總線上的主節(jié)點(diǎn)和若干包含LED驅(qū)動模塊的從節(jié)點(diǎn)組成。所述PC控制端包括輸入單元和第一串口通信服務(wù)單元,將包含了圖像信息和控制命令的數(shù)據(jù)包發(fā)送給CAN總線的主節(jié)點(diǎn),所述CAN總線上的主節(jié)點(diǎn)包括第二串口通信服務(wù)單元,接收客戶端發(fā)送的數(shù)據(jù);CAN總線通信服務(wù)單元,將接收到的數(shù)據(jù)編碼后,上傳到CAN總線;所述的從節(jié)點(diǎn)包括第二CAN總線通信服務(wù)單元,從CAN總線接收數(shù)據(jù),并傳輸給相應(yīng)的LED驅(qū)動模塊。所述LED驅(qū)動模塊所用單片機(jī)型號為MSP430F149,LED驅(qū)動模塊驅(qū)動LED燈,從而到達(dá)了顯示圖像和控制圖像運(yùn)動的功能。
本發(fā)明中使用單一的亮條紋作為熊蜂機(jī)器人的視覺信息輸入,由此來誘導(dǎo)熊蜂運(yùn)動行為。
如圖4所示,為本發(fā)明中熊蜂飛行行為的采集和數(shù)據(jù)分析示意圖,熊蜂的腹部擺動行為通過背面的高清攝像頭捕獲,攝像頭的型號是ANC HD1080P,熊蜂的擺腹頻率最高位7Hz左右,因此設(shè)置攝像頭的幀率為30幀/秒。圖中(x0,y0)是熊蜂被固定的點(diǎn),熊蜂被固定在一根彎曲細(xì)鐵棒上,鐵棒的彎曲角度為45度,直徑為1mm,固定點(diǎn)為熊蜂背部。由操作人員選取需要跟蹤的腹部位置區(qū)域,記區(qū)域的中心為(x,y),根據(jù)公式可以得到熊蜂擺腹角度β=arctan[(x-x0)/(y-y0)]。
如圖5所示,為本發(fā)明中的強(qiáng)化學(xué)習(xí)算法的交互過程,通常,強(qiáng)化學(xué)習(xí)維護(hù)了一個從環(huán)境到動作映射的動作值函數(shù)Q(xt,at),表示在狀態(tài)xt下,采取動作at能夠獲得的累積獎勵,每一次,在得到這個值函數(shù)后,通常選擇對應(yīng)狀態(tài)xt下,能夠獲得最大值的動作at。這個值函數(shù)的更新是通過強(qiáng)化學(xué)習(xí)不斷地和環(huán)境交互得到的。
t時(shí)刻時(shí),熊蜂的擺腹模式為xt,并根據(jù)序列K-means算法進(jìn)行狀態(tài)離散化,隨后選擇一個動作at,即調(diào)整了當(dāng)前的光流刺激參數(shù),同時(shí),熊蜂的復(fù)眼接受到光流刺激以后,會產(chǎn)生對應(yīng)的腹部擺動行為,熊蜂的擺腹行為參數(shù)為由粒子濾波算法得到的偏轉(zhuǎn)角度,且如圖6所示,這里我們設(shè)置了一個大小為200ms的滑動窗口,取其中所有的偏轉(zhuǎn)角度數(shù)據(jù),計(jì)算了包括最大值、最小值、平均絕對值、波峰波谷數(shù),大于均值點(diǎn)個數(shù)以及方差這6個特征作為熊蜂的擺腹模式,這個6維特征即圖中所示的狀態(tài)xt+1,同時(shí),通過計(jì)算獎勵函數(shù),可以得到當(dāng)前得到的即時(shí)獎rt+1,強(qiáng)化學(xué)習(xí)算法的更新公式為:
Q(xt,at)←Q(xt,at)+α[rt+1+γQ(xt+1,at+1)-Q(xt,at)]。
其中為α是算法的學(xué)習(xí)速率,γ為折扣因子。具體算法流程如圖7所示。
所述獎勵函數(shù)主要由當(dāng)前熊蜂的擺腹模式和目標(biāo)擺腹模式之間的歐式距離決定,記目標(biāo)狀態(tài)為向量xg,對應(yīng)離散狀態(tài)為kg,當(dāng)前時(shí)刻t的熊蜂擺腹模式為xt,對應(yīng)離散狀態(tài)為kt,上一時(shí)刻熊蜂的擺腹模式記為xt-1,dist1為xt與xg間的距離,dist2為xt-1與xg間的距離,那么獎勵函數(shù)可以記為:
R=0.2,if(dist1>dist2and kt≠kg);
R=+1,if(dist1>dist2and kt=kg);
R=-1,otherwise。
應(yīng)用強(qiáng)化學(xué)習(xí)算法,無需事先知道光流刺激參數(shù)與熊蜂擺腹模式之間的對應(yīng)關(guān)系,通過不斷的交互學(xué)習(xí),強(qiáng)化學(xué)習(xí)算法可以學(xué)習(xí)到這種從環(huán)境狀態(tài)(熊蜂擺腹模式)到動作(光流刺激參數(shù))的映射關(guān)系,并作為后續(xù)的閉環(huán)實(shí)時(shí)控制策略,避免了人為地大量實(shí)驗(yàn)并進(jìn)行數(shù)據(jù)分析的過程。
為了驗(yàn)證基于強(qiáng)化學(xué)習(xí)算法的控制機(jī)制的有效性,我們還和普通的隨機(jī)算法進(jìn)行了比較,圖8-10是我們采集到的熊蜂的數(shù)據(jù)以及其算法控制實(shí)驗(yàn)結(jié)果,圖8和9是熊蜂的控制曲線圖,體現(xiàn)的是當(dāng)前狀態(tài)的維度SSC向目標(biāo)狀態(tài)xg的維度SSC趨近的情況(SSC是指滑動窗口內(nèi)波峰波谷的個數(shù),反應(yīng)了腹部運(yùn)動的頻率信息,是描述熊蜂腹部擺動最主要的特征)。
其中帶三角形的線是目標(biāo)的SSC值,帶圓形的線是在強(qiáng)化學(xué)習(xí)算法控制下的變化曲線,帶×的線則是隨機(jī)算法控制的變化曲線,可以看出:
1、強(qiáng)化學(xué)習(xí)算法的控制結(jié)果使得SSC每一步都越來越趨近于目標(biāo)狀態(tài),每一步狀態(tài)和目標(biāo)狀態(tài)的偏差(對應(yīng)的是圖10的歐氏距離)是單調(diào)遞減的,最終偏差趨于0。但是隨機(jī)算法的控制曲線在控制過程中是隨機(jī)的,偏差也是隨機(jī)的,并沒有明確的控制趨勢。
2、在強(qiáng)化學(xué)習(xí)算法的控制下,熊蜂在最多8步以內(nèi),均已趨于目標(biāo)值,且最終保持了穩(wěn)定,然而隨機(jī)算法并沒有使得控制的過程趨于目標(biāo)值,靠近目標(biāo)值的狀態(tài)沒有規(guī)律性。
3.強(qiáng)化學(xué)習(xí)算法控制下的曲線較光滑,隨機(jī)算法控制的曲線抖動非常大。
從以上的結(jié)果和分析來看,基于強(qiáng)化學(xué)習(xí)算法,我們可以很好的用光流刺激來控制熊蜂的腹部擺動,為后續(xù)的光流式熊蜂機(jī)器人打下了良好的基礎(chǔ)。