黃 振,董建平,段瑩瑩,張葛祥
(西南交通大學 電氣工程學院,成都 611756)
膜計算(membrane computing)是自然計算中最年輕的一個分支,是從細胞的結構、器官和組織等細胞群的信息處理協作方式中抽象出的一種計算模型.膜計算自提出以來,受到了眾多學者的廣泛關注[1].研究表明:理論上膜計算模型具有與圖靈機同等的計算能力,甚至有可能突破圖靈機的局限性[2-4].目前,膜計算的研究主要在理論、應用和實現三個方面[5].在膜計算應用方面,它已經成功地應用在優化領域[6],故障診斷[7],移動機器人控制[8],計算機圖形學與語言學[9]等領域.
移動機器人膜控制器(membrane controller)是利用膜系統設計的一種移動機器人認知、行為控制器,是膜計算在機器人控制方面的一種典型應用.利用膜系統設計機器人控制器主要優勢在其天然的并行性和分布式.膜系統各層膜上的運算可以分布在機器人不同的微處理器上,各層膜的計算是并行的[10].因此,在設計過程中,不需要額外考慮控制器并行性、分布性的實現,可以專注于膜控制器功能的實現.膜控制器最早由羅馬尼亞布加勒斯特大學自然計算團隊的Buiu提出[11].2011年,Buiu 等人首次將數值膜系統(Numerical P Systems,NPS)應用于機器人控制,并在Epuck 機器人和Khepera3 機器人上設計實現了機器人的避障行為、隨墻行為以及跟隨行為膜控制器,證明了膜控制器的可行性[8].隨后,Cristian 等人將膜控制器應用于Koala 機器人,進一步驗證了其可行性[12].由于數值膜系統膜內規則數的限制,導致了需要大量的膜來存放規則.為了提高膜控制器設計效率,Pavel 和Buiu 在此基礎上提出了酶數值膜系統(Enzymatic Numerical P Systems,ENPS),并將酶數值膜系統應用于控制移動機器人的避障行為[13].
目前,絕大多數基于膜系統進行避障的機器人其膜控制器參數固定,使移動機器人無法同時兼顧避障效果和無障礙物時的巡航速度.針對該問題,本文提出了一種基于酶數值膜系統的移動機器人避障控制方法.該方法采用酶數值膜系統結構,利用膜之間的信息交流,實現多個膜融合多個傳感器的距離信息,根據融合的距離信息調節巡航速度,從而兼顧移動機器人的避障效果和行走速度,實現了更優的避障控制.
避障控制律是膜控制器的設計基礎,移動機器人避障行為的依據.目前,避障行為膜控制器主要基于式(1)(2)的控制律設計[8,12,13].該控制律通過傳感器獲得的機器人與障礙物之間的距離信息,計算避障所需的左右輪速度,用于控制機器人兩輪速度,實現機器人差速避障.

其中,leftSpeed和rightSpeed分別為左右輪的速度;CruiseSpeed為巡航速度;si為第i個傳感器的值,障礙物距離移動機器人越近,該值需越大,未檢測到障礙物時,該值為0;weightLefti和weightRighti分別為第i個傳感器對應左右輪速度的權重.
控制律中巡航速度CruiseSpeed為定值,取值為(0,Vmax),Vmax為移動機器人最大行走速度.傳感器權值weightLefti和weightRighti用于表示不同位置的傳感器對左右輪速度的影響,取值規律一般為:
位于機器人左前側的傳感器對應的weightLefti為正,weightRighti為負;
位于機器人右前側的傳感器對應的weightLefti為負,weightRighti為正;
位于機器人后側的傳感器對應的weightLefti、weightRighti為0;
左右側傳感器對應的權值weightLefti(weightRighti)互為相反數;
傳感器位置越靠近機器人正前方,對應權值的絕對值越大.
該種取值方式使得移動機器人探測到左側障礙物時,左輪速度增加,右輪速度減少,向右避開障礙物;右側障礙物同理.且障礙物越靠近機器人正前方,左右輪速度差越大.本文之后的討論均在該取值規律下進行.
從移動機器人運動學分析,兩輪差速驅動移動機器人的運動學方程為[14]:

其中,v為機器人質心處的線速度,即機器人前進速度;w為機器人的轉向角速度,即機器人旋轉角速度;vl和vr分別為機器人的左右輪線速度;l為機器人兩驅動輪的輪距.
由文獻[15]可知:移動機器人左右輪速度恒定,但取值不同時,機器人運動軌跡為圓形.軌跡半徑為r,如圖 1 所示.

圖1 雙輪差速機器人運動學模型

其中,r為移動機器人圓周運動半徑.
移動機器人行走過程中,障礙物環境十分常見,在如圖2所示的障礙物場景中,分析移動機器人前進速度v,旋轉角速度w對機器人避障距離d的影響.

圖2 移動機器人避障距離分析
假設移動機器人避障過程中前進速度v,旋轉角速度w恒定.機器人恰好避開相距d的障礙物,機器人軌跡運動半徑為r.
當旋轉角速度w一定時,前進速度v增大,由式(5)可知:機器人軌跡運動半徑r增大,避障距離d增大,如圖2所示.
當前進速度v一定時,旋轉角速度w增大,由式(5)可知:機器人軌跡運動半徑r減小,避障距離d減小.
分析控制律中巡航速度對避障距離的影響.將式(1)、式(2)代入式(3)、式(4)得:

按照權值取值規律,weightLefti、weightRighti為相反數.上述公式簡化為:

由式(6)和式(7)可知,巡航速度CruiseSpeed等于機器人前進速度v.結合前述分析可得:避障距離與控制律中巡航速度成正相關.
由于控制律中巡航速度為固定值,移動機器人初始巡航速度大,機器人避障效果差,初始巡航速度小,行走速度慢.機器人無法兼顧避障效果和無障礙物時的行走速度.
移動機器人避障過程中,控制器計算速度對避障效果有著很大的影響.膜系統具有分布式、并行性的特點,有助于提高控制器的計算速度,適合機器人控制器的設計.酶數值膜系統能夠處理數值變量、每個膜內可以允許存在多條規則,廣泛應用于移動機器人膜控制器設計中.
由第1 節分析可知:傳統膜控制方法存在移動機器人前進速度和避障效果之間的矛盾.為了兼顧移動機器人無障礙物時的前進速度和有障礙物時的避障效果,本文對傳統避障控制律進行改進,如式(8),使巡航速度隨障礙物與機器人間的距離自適應變化.當障礙物距離移動機器人近時(si大),巡航速度減小;當障礙物距離移動機器人大或無障礙物時(si小),巡航速度大.其中,CruiseSpeed為巡航速度;C0為設定速度,無障礙物時,C0=CruiseSpeed;si為第i個傳感器的值,機器人與障礙物距離越近,si越大;wi為第i個傳感器值的權重;a為底數(0<a<1),a值小,CruiseSpeed下降幅度大.

式(8)中,∑si?wi稱為障礙物距離衡量值.其融合多個不同方位的傳感器距離值,用來衡量環境中障礙物與機器人的距離.障礙物離移動機器人越近(si越大),該值越大.其中,權值wi的取值規律為:位于移動機器人前方的傳感器對應權值為正,后方的權值為0(障礙物位于移動機器人后側時,移動機器人已避開障礙物,無需減速,權值為0);離機器人正前方越近的傳感器權值越大(靠近機器人正前方的障礙物對機器人避障影響大,速度需要降低更大),與機器人正前方對稱的傳感器權值相同.指數函數ax(0<a<1),具有如下特點:
(1)x=0 時,y=1;
(2) 函數單調遞減,且當x大于0 時,y在(0,1)間取值.
因此,障礙物距離衡量值越大,即障礙物離機器人越近時,CruiseSpeed越小且CruiseSpeed不會因為距離衡量值過大,出現負值(機器人向后運動).衡量值為0(無障礙物或已避開障礙物)時,CruiseSpeed=C0,機器人以設定速度前進.
依據避障控制律,即式(1)、式(2)、式(8),本文設計了酶數值膜控制器,如圖3所示.膜控制器的輸入變量為傳感器值si,權重weightLefti和weightRighti,底數a,設定速度C0;輸出變量為左右輪速度leftSpeed、rightSpeed.控制律的計算可分為權值乘累加(即自適應巡航速度計算、左右輪速度計算3 部分.膜控制器通過3 次循環完成上述3 部分計算.膜Sensori(i=1,···,n,n對應移動機器人的傳感器數量)內融合n個傳感器的距離信息,完成權值乘累加,膜CruiseSpeed中完成巡航速度計算,膜Avoid內完成左右輪速度計算.膜控 制器3 次循環執行過程如下:
(1)第一次循環執行步驟如下:
Sensori膜中的3 條規則和CruiseSpeed膜中的規則1 激活(值產生規則中存在變量的值小于酶變量);
Sensori膜中規則1、2、3 將傳感器值和權值累加給變量SWL、SWR、SW(權值乘累加部分,其中變量SWL為左輪權值乘累加值,SWR為右輪權值乘累加值,SW為障礙物距離衡量值);
CruiseSpeed膜中規則1 將變量f賦值1,e賦值2.確保變量f始終為1 以及酶變量e在第二次循環中起作用(激活規則).值產生規則中的0*e用于防止酶變量e的值不斷累積.
(2)第二次循環執行步驟如下:
CruiseSpeed膜中的規則2-5 激活(值產生規則中存在變量的值小于酶變量);
CruiseSpeed膜中規則2 將酶變量e0賦值2.確保酶變量e0在第三次循環中起作用.值產生規則中的0*e0用于防止酶變量e0的值不斷累積;
CruiseSpeed膜中規則3 將設定速度C0和指數相乘賦給變量Cruise_Speed(自適應巡航速度計算);
CruiseSpeed膜中規則4、5 分別將變量SWL、SWR值賦給變量SWL_temp、SWR_temp.用于保存SWL、SWR的值.
(3)第三次循環執行步驟如下:
Avoid膜中的規則1、2 激活(值產生規則中存在變量的值小于酶變量);
Avoid膜中規則1、2 分別將巡航速度Cruise_Speed和SWL_temp、SWR_temp相加賦給變量leftSpeed、rightSpeed(左右輪速度計算).完成控制律的計算.
為了驗證酶數值膜控制器的避障控制效果,本文分別在Pioneer3-DX 機器人仿真平臺和實物上進行測試.Pioneer3-DX 具有16 個環形分布傳感器,如圖4所示,故酶數值膜控制器中存在16 個Sensori膜(i取1-16).

圖4 移動機器人聲吶傳感器分布圖
設計如圖5所示的固定巡航速度酶數值膜控制器作為對比實驗.在以下實驗中,膜控制器1 表示固定巡航速度的酶數值膜控制器,膜控制器2 表示本文自適應巡航速度的酶數值膜控制器.

圖5 固定巡航速度酶數值膜控制器
表1為兩種膜控制器的默認參數取值(特殊說明除外).其中,膜控制器1 巡航速度及膜控制器2 設定速度取為500 mm/s,使無障礙時移動機器人能夠較快移動.權重weightLeft(Right),wi根據前述取值規律及移動機器人巡航速度確定.底數a根據速度下降需求取定,a越小,巡航速度下降越快.表中橫杠表示相應控制器中不存在該變量.
為了方便實驗,設置機器人傳感器的檢測范圍為1000 mm.在檢測范圍內,對Pioneer 機器人聲吶傳感器所獲距離數據xi進行線性變換,使其滿足控制律要求.

其中,xi為第i個聲吶傳感器檢測的機器人與障礙物的距離(單位:mm),si為線性變換后的傳感器值,xi的變化從0 到1000 mm,線性變換后,si從1000 到0.處理后的聲吶傳感器值si作為2 種酶數值膜控制器的輸入.

表1 兩種膜控制器的參數值
為了驗證本文設計的酶數值膜控制器的有效性,在機器人仿真平臺上進行最小避障距離實驗以及復雜環境實驗.仿真實驗所用的計算機為聯想G470 2.3 GHz,6 G RAM,操作系統為Window7,仿真平臺為MobileSim,仿真機器人為Pioneer3-DX,機器人尺寸52×40 cm.
(1) 最小避障距離實驗
為了驗證第1 節得出的傳統膜控制器巡航速度CruiseSpeed對移動機器人最小避障距離的影響規律,進行最小避障距離實驗.通過改變膜控制器1 中巡航速度CruiseSpeed,測量移動機器人最小避障距離.本文使用的避障測量場景如圖6,障礙物尺寸為40×40 cm.移動機器人初始速度達到巡航速度,測量移動機器人避開障礙物所需的最小距離.注:本文測量間隔為5 cm,該距離相對移動機器人尺寸已足夠小.
實驗結果如表2:隨著CruiseSpeed的增大,移動機器人避障所需的最小距離越大,避障效果越差.
在該測量場景下,膜控制器2 的最小避障距離為50 cm,相當于巡航速度CruiseSpeed為320 mm/s 的膜控制器1 的避障距離,而其無障礙物時的速度為500 mm/s,兼顧了避障效果和無障礙物行走速度,控制效果更佳.

圖6 避障距離測量場景

表2 不同巡航速度所需的最小避障距離
(2) 復雜環境實驗
為了驗證本文設計的自適應膜控制器在復雜環境的有效性,設計如圖7所示的復雜環境進行實驗.環境中包括死區、100 cm 通道、80 cm 通道、間隔60 cm 的兩障礙物.將移動機器人置于此環境中,分別在膜控制器1 和膜控制器2 的控制下進行行走.比較膜控制器的避障效果,并采集行走過程中移動機器人左右輪速度、前進速度、旋轉角速度、巡航速度及障礙物距離衡量值,進行比較分析.

圖7 復雜環境場景
實驗結果如圖8所示,圖8(a)為膜控制器1 控制下的移動機器人仿真結果:機器人在2 個相隔60 cm的障礙物處發生碰撞;將其手動放置到100 cm 通道中,繼續實驗,其在80 cm 通道處發生碰撞;將其放置到死區環境中,其與死區環境相撞.圖8(b)為膜控制器2 的仿真結果:機器人順利避開障礙物,通過通道,最終在死區環境中停下.通過實驗結果可以看出固定巡航速度的膜控制器機器人容易因反應時間短、角度調整不及時,發生碰撞;而自適應巡航速度機器人可隨著障礙物的距離而改變速度,進而有效避開障礙物.
對比圖9、10 的速度值,可以進一步看出:避障過程中,由于膜控制器1 的巡航速度、前進速度不變,為500 mm/s,在兩障礙物區域和80 cm 通道區域,機器人反應時間短,約為36、30 個執行次數(膜控制器1 平均每個執行次數耗時0.157 s),發生碰撞;死區環境由于左右側傳感器同時檢測到障礙物且傳感器值相近,造成控制律中權值乘累加部分小,旋轉角速度小,導致碰撞.而膜控制器2 巡航速度隨著障礙物的接近而減小,在障礙物區域速度降至150 mm/s,80 cm 通道區域降到100 mm/s,機器人前進速度變化情況與巡航速度相同,從而使移動機器人有更長的避障反應時間,分別約為70、180 個執行次數(膜控制器2 的平均每個執行次數耗時0.122 s);在死區環境下速度降為0,避免發生碰撞.

圖8 復雜環境實驗結果

圖9 膜控制器1 控制下的移動機器人速度
由于仿真實驗條件理想,不存在聲吶傳感器探測不到障礙物、機器人打滑等情況.為了驗證膜控制器在實物中的控制效果,分別使用膜控制器1 和膜控制器2 在如圖11場景中進行實驗.場景中包括間隔50 cm的3 個障礙物,110 cm 的通道、80 cm 通道以及死區環境.實物機器人使用Adept MobileRobots 公司制造的Pioneer3-DX 雙輪移動機器人,該機器人擺動半徑為26 cm,重9 kg,16 個環形分布聲吶傳感器,2 個高扭矩馬達,配有Window7 系統、i5 處理器的工控機.

圖10 膜控制器2 控制下的移動機器人速度
膜控制器1 控制下的實驗結果如圖12所示:圖12(a)-12(h)為移動機器人在多障礙物區域的實驗結果,圖12(i)-12(l) 為通道區域的實驗結果,圖12(m)-12(p)為死區的實驗結果.膜控制器1 作用下的移動機器人在相隔50 cm 的多障礙物區域、通道區域、死區均發生碰撞.
從移動機器人速度圖13進一步看出:膜控制器1 作用下的移動機器人巡航速度不隨障礙物距離變化,固定為500 mm/s,使得機器人前進速度不變(500 mm/s),在障礙物區域和通道區域,前進速度快,機器人反應時間短(分別約為110、120 個執行次數,平均每個執行次數耗時:0.072 s),造成碰撞.死區環境由于左右側傳感器檢測值相近,造成控制律中權值乘累加部分小,旋轉 角速度小(最大約正負20 度/s),導致碰撞.

圖12 膜控制器1 控制下的移動機器人實物結果
膜控制器2 控制下的實驗結果如圖14所示:圖14(a)-14(h)為移動機器人通過多障礙物區域的過程,圖14(i)-14(l) 為通過通道區域的過程,圖14(m)-14(p)為避開死區的過程.從圖中可以看出,膜控制器2 控制下的移動機器人順利避開場景中相隔50 cm 的障礙物,通過80 cm 的狹窄通道并避免了與死區環境的碰撞.
從速度圖15可進一步看出:膜控制器2 控制下的移動機器人巡航速度隨著障礙物距離的減小而減小,前進速度變化規律相同.障礙物區域前進速度降至200 mm/s 左右,通道區域降至100 mm/s 左右,死區降至50 mm/s 左右,使得移動機器人有足夠的時間調整姿態(分別約為140、280、160 個執行次數,平均每個執行次數耗時:0.087 s),防止與環境相撞.

圖13 膜控制器1 控制下的移動機器人速度
從上述的仿真和實物實驗可以得出:膜控制器2 控制的移動機器人能夠隨著障礙物與機器人間的距離自適應調節速度,兼顧了避障效果和速度,避障控制效果更優.
本文對基于膜系統的移動機器人避障控制方法進行詳細的分析,總結了一般的參數取法,分析了傳統方法的不足.針對傳統方法無法兼顧避障效果和無障礙物時移動機器人的行走速度,本文通過使巡航速度隨著障礙物與機器人之間的距離自適應改變,使移動機器人在障礙物近時,巡航速度降低,提高避障效果;障礙物遠或無障礙物時,巡航速度增大,兼顧了避障效果和移動機器人行走速度.采用酶數值膜系統設計控制器,利用多個膜融合多傳感器的信息,根據融合的距離信息調節巡航速度.仿真實驗和實物實驗表明:本文設計的酶數值膜控制器可行且避障控制效果更優.

圖15 膜控制器2 控制下的移動機器人速度