沈 飛
(漢江師范學院 汽車與電子信息工程系,十堰 442000)
移動機器人路徑規劃是智能機器人研究的一項重要課題,路徑規劃主要解決3個問題:①使機器人能從初始位置運動到目標位置;②用一定的算法使機器人能避開障礙物;③在完成以上任務的前提下盡可能優化機器人運行軌跡。局部路徑規劃是在障礙物位置信息未知的環境中,移動機器人僅通過傳感器感知周圍局部環境和自身狀態,從而實現自主避障和路徑規劃。目前常用的局部路徑規劃方法主要有人工勢場法[1]、模糊邏輯算法、蟻群算法和遺傳算法等[2]。與其它幾種方法相比,模糊邏輯算法較具有計算量較小,對環境依賴性小,實時性好的優點,對于處理未知或發生變化的環境下的路徑規劃問題,顯示出較大的優越性和較強的適應性。
在此,介紹了一種移動機器人路徑規劃模糊控制器的設計方案,并且針對超聲波傳感器在實際測距時存在的問題提出改進措施,最后通過軟件仿真和移動機器人試驗平臺,對整個設計方案進行了有效性驗證。
移動機器人路徑規劃模糊邏輯控制器,利用安裝在機器人上的超聲波傳感器測量與周圍障礙物的距離,獲取機器人左方、左前方、前方、右前方、右方等5個方向上的測距值,以及預設目標點位置與運動方向夾角信息,以此作為模糊控制器的輸入量。模糊控制器對輸入變量行模糊推理,得到的模糊輸出量是機器人運動方向轉角。超聲波掃描方向和范圍如圖1所示,模糊控制功能如圖2所示。

圖1 超聲波掃描方向Fig.1 Ultrasonic scanning direction

圖2 模糊控制功能Fig.2 Fuzzy control function
移動機器人路徑規劃模糊控制系統設計了6個輸入信號和1個輸出信號。6個輸入信號分別為5個方向上的超聲波傳感器測量的與障礙物的距離值,以及當前機器人運動方向和目標方位的夾角;輸出信號為運動方向轉角。d1,d2,d3,d4,d5分別為左方、左前方、前方、右前方和右方的測距值;α為機器人當前運動方向與目標方位的夾角;θ為輸出的機器人運動方向轉角。
超聲波測得的距離值d的論域為[0.2,2]m,用語言變量近(NA)、遠(FA)來描述;夾角α的論域為[-90°,90°],用語言變量負大(LB)、負小(LS)、正前(Z)、正小(RS)、正大(RB)描述。 輸入變量的隸屬度函數如圖3所示。

圖3 輸入變量的隸屬度函數Fig.3 Membership function of inuput variables
轉角 θ 的論域為[-90°,90°],機器人下一步運動方向為左方(TL)、左前方(TLB)、前方(TF)、右前方(TRB)和右方(TR)。輸出變量的隸屬度函數如圖4所示。

圖4 輸出變量的隸屬度函數Fig.4 Membership function of output variables
模糊推理規則是按照人的知覺推理的一種語言表示形式,反映了輸入輸出變量之間的關系。制定模糊推理規則[3]參考借鑒了人類駕駛車輛的知識和經驗,主要實現2個目標:當移動機器人距離障礙物較近時,應改變當前的行進方向以避開障礙物;行進方向趨向目標點。
當機器人距離周圍障礙物較遠時,機器人的方向轉角θ主要由機器人的運動方向與目標方位的角度差α來決定,目的是使機器人的運動方向盡可能趨向目標(α→0),以最短的距離和最少的時間到達目標點;當機器人距離一個或多個障礙物較近時,根據移動機器人距離周圍障礙物的遠近以及分布情況,采取以避開障礙物為優先控制目標建立模糊控制規則,同時兼顧考慮運動方向與目標方位夾角減小的控制目標。采用IF THEN形式[5]制定的模糊控制規則為
If d1 is FA and d2 is FA and d3 is FA and d4 is FA and d5 is NA and α is LS then θ is TLB
例如,預到達的目標點在機器人當前運動方向的左前方且周圍只有一個障礙物的情況下,即α為LS,可編寫的模糊規則見表1。

表1 目標方位為左前方的模糊規則Tab.1 Fuzzy rules of left front in direction of target
綜合輸入變量所有可能的情況共得到5×25=160條模糊規則[6],經過對規則表中的輸入變量進行編碼并進行特征簡化,最終得到30條控制規則,大大提高了模糊控制的實時性。機器人控制器在獲取外部障礙物的距離和分布情況以及目標方位夾角情況下,通過模糊推理,得到運動方向的判定。
該移動機器人平臺以TI公司的MSP430F5529單片機為核心,設計移動機器人路徑規劃模糊控制系統。MSP430F5529單片機具有豐富的片內資源,128 kB的Flash程序存儲器,8 k的RAM,59個可復用的I/O口,16個12位的ADC通道,2個定時器均具有7個可配置的捕獲/比較寄存器,并設有JTAG和SBW兩種接口進行在線編程和調試,方便開發。
移動機器人平臺由運動機構、傳感器測距模塊、系統控制模塊和電機驅動模塊共同組成,如圖5所示。運動機構由2個驅動輪和1個支撐輪組成,呈倒三角形分布。其中,2個驅動輪分別由1個步進電機驅動,便于調速和轉向;后面的支撐輪沒有動力驅動,起支撐和輔助轉向的作用。系統控制模塊主要負責測距數據處理、模糊邏輯控制以及各種控制信號輸出。電機驅動模塊由2塊步進電機驅動器組成,用于控制兩2個電機的起動停止、差速轉向和速度。

圖5 移動機器人平臺Fig.5 Mobile robot platform
為了避免因為安裝多個超聲波傳感器帶來的交叉干擾問題[4-6],傳感器測距模塊由1個超聲波傳感器和1個舵機組成,超聲波傳感器模塊安裝在舵機上,通過控制單片機輸出脈沖的占空比可以使舵機在0°~180°之間以任意角度旋轉,從而實現超聲波傳感器對移動機器人左方、左前方、前方、右前方和右方的障礙物距離的測量。
超聲波傳感器的測距原理,是借助超聲脈沖回波渡越時間法來實現的,若超聲波脈沖由傳感器發出到接收所經歷的時間為t,超聲波在空氣中傳播速度為c,則從傳感器到障礙物的距離d為[7]

機器人在運動過程中因為與障礙物的距離不斷地發生變化,使得超聲波傳感器每次接收到返回波信號的時間不會完全相同,即測量的時間t會存在一定的誤差。另外,超聲波傳感器測距受障礙物尺寸和形狀以及機器人運動時產生的震動等因素影響,容易發生聲波的散射、折射和多次反射等現象,測距誤差可達cm級。相比之下,當移動機器人靜止不動時,超聲波測距的不確定因素減少了,測距的精度也就相應得到了提高。因此,考慮將超聲波測距動作分為2種情況,即機器人在運動過程中的測距和在靜止狀態下的測距,對這2種不同情況采用不同的策略來處理測距數據。
2.1.1 運動過程中測距數據處理
由于在機器人運動過程中超聲波測距存在上述多種不確定因素,導致采集的數據存在較大誤差。因此,移動機器人在運動過程中舵機不啟動,超聲波傳感器只對機器人當前運動方向的正前方障礙物進行探測,并對連續采集的若干次測距數據采用中位值平均濾波法進行處理,處理結果作為當前的測距值。 假定,連續采樣數據為x(i)(1≤i≤N),N為樣本序列的長度;從采樣值中去掉1個最大值xmax和1個最小值xmin,然后計算N-2個數據的算術平均值,得到濾波后的測距值,其中取N=3~9,即

在移動機器人平臺避障試驗中,取N=7,有效地抑制了回波中的串擾,減小了運動中超聲波測距誤差,保證了機器人的運行速度平穩。
2.1.2 機器人靜止時測距數據
當距離前方障礙物很近時,移動機器人停止前進并啟動舵機旋轉進行180°掃描,讓超聲波傳感器分別獲取5個方向上的障礙物距離[8],并將這些數據送到模糊控制器做進一步處理。在傳感器進行旋轉掃描測距時,只要保證2次啟動超聲波測距的時間間隔大于超聲波探測系統的掃描周期,即可消除隨機干擾,減少測距誤差。
系統選用由芯片TB6560為核心的步進電機驅動器來完成移動機器人的速度和方向控制,具有穩定性高、抗干擾能力強的特點。該驅動器可驅動35 V,3 A以下的步進電機,采用細分控制和衰減設置可以有效地消除電機振動。通過接收單片機的16位定時器產生的2路PWM信號以及方向控制信號、使能信號,即可靈活地控制,2個步進電機的轉速、運動方向以及啟動停止。
根據障礙物和機器人距離遠近的變化,需要實時調整機器人的行進速度,防止機器人因移動速度過快而撞上障礙物[7]。當機器人離障礙物較遠時,機器人全速前進;當與障礙物較近時,將機器人的速度降低至原來的1/2;當離障礙物很近時,機器人停止前進。
為了驗證模糊控制方法的有效性,采用Mobotsim機器人運動仿真軟件建立系統仿真模型[9],進行編程與仿真。在該軟件環境中先對障礙物進行隨機布置,并對移動機器人進行基本的參數配置,其中對機器人前方±90°的范圍內設置5個測距傳感器,傳感器相互間隔45°,發射角25°。按照上述模糊控制方法設計程序,并運行仿真以檢驗模糊控制規則的有效性。仿真顯示出機器人的運動軌跡如圖6所示,模糊避障控制器能有效地避開機器人周圍的障礙物,到達系統設定的目標點。

圖6 機器人模糊避障仿真效果Fig.6 Simulation effect of robot fuzzy obstacle avoidance
對移動機器人平臺進行測試,在設定前方的目標點的方位和坐標的情況下,機器人能自主避開所遇到的各種障礙物,到達目標位置[10],試驗場景如圖7所示。

圖7 移動機器人試驗場景Fig.7 Mobile robot test scene
文中討論了一種移動機器人在未知環境下的實時導航和路徑規劃的系統設計方案;采用了單個超聲波傳感器和舵機轉向機構組成的測距平臺;通過傳感器感知環境障礙物信息,應用模糊控制算法實現路徑規劃,并提出了超聲波傳感器在測距過程中存在的問題和實際解決辦法,減小了障礙物距離測量值的誤差。仿真和試驗結果均表明,移動機器人在障礙物較少的情況下,能有效地避開周圍環境中的障礙物并到達指定的目標位置。