“U轉(zhuǎn)法”在基于STM32的微電腦鼠迷宮探索中的應(yīng)用
0 引言
微電腦鼠本質(zhì)上就是個微小的智能機器人,個子只有鼠標(biāo)的大小,有著4 個小輪子,依靠微控制器、傳感器和機電運動部件,能夠直行、轉(zhuǎn)彎、后退、加速、減速、避障等十分靈活自由地行走。如果把它放置在一個由許多圍墻和死胡同構(gòu)成的迷宮中,通過微電腦鼠上各種傳感器的測量、分析、比較,能夠正確地探索周圍的環(huán)境并自動記憶,依靠人工智能算法自主判斷選擇合適的路徑,控制著輪子行走的方向和速度,從而保證用最少的時間快速到達預(yù)先設(shè)定的目的地[1-4]。因此,一只優(yōu)秀的微電腦鼠需要具有環(huán)境感知能力強、數(shù)據(jù)分析處理功能強、探索算法智能、響應(yīng)快速、沖刺高速、行走精確、控制自如等特點。一只完整的電腦鼠應(yīng)該包括微處理器系統(tǒng)、傳感器電路、電機驅(qū)動電路、智能算法等幾個部分,如果微電腦鼠想用最短的時間到達預(yù)定的目標(biāo),那么,其必須對迷宮進行有效的探索,對路徑進行最佳的規(guī)劃,在硬件結(jié)構(gòu)和功能區(qū)別不大的情況下,最佳的判斷、選擇最優(yōu)的路徑就意味著耗用最少的時間,因此,一個智能算法就是微電腦鼠在比賽中獲得成功的核心要素之一。
迷宮時間是評判微電腦鼠是否優(yōu)秀的一個重要衡量指標(biāo),迷宮時間的長短在相當(dāng)程度上取決于智能算法,算法對微電腦鼠的重要性不言而喻。一種優(yōu)秀的算法,能夠使微電腦鼠在迷宮探索中,找到一條最短的路徑,并在最短的時間內(nèi)到達目的地。
早期的迷宮一般是木制材料制成,為一個正方形,尺寸是18 cm×18 cm,內(nèi)部分成16×16 格。隨著集成電路技術(shù)、現(xiàn)代傳感與測量技術(shù)、現(xiàn)代通訊技術(shù)和AI 算法的不斷發(fā)展和進步,迷宮的尺寸變成了9 cm×9 cm,內(nèi)部分成了32×32 格,即1 024 個小格子,如圖1 所示,不難看出,新的迷宮有更多的岔路和死胡同,周圍的環(huán)境變得更加復(fù)雜,任務(wù)的完成變得更加具有挑戰(zhàn)性,在相當(dāng)程度上增加了微電腦鼠到達目的地的難度。
圖1 迷宮二維結(jié)構(gòu)
將微電腦鼠放置在迷宮左下角的起點,坐標(biāo)(0,0)的位置,打開微電腦鼠的電源開關(guān),微電腦鼠將全程獨立自主地到達終點。在這個過程中,微電腦鼠身上的傳感器類似它的“眼睛”,用來準(zhǔn)確獲取周圍的環(huán)境信息并傳輸給微處理器;微處理器類似它的“大腦”,需要迅速進行信息處理并作出準(zhǔn)確判斷,通過各種智能算法,在最短的時間內(nèi)、正確地解開由1 024 個迷宮格組成的復(fù)雜迷宮,尋找到預(yù)設(shè)的目標(biāo)位置,快速找到1 條從起點到達終點的最佳路徑,然后以最合理的速度、在最短的時間內(nèi)到達目標(biāo)位置。值得注意的是,微電腦鼠在迷宮探索過程中應(yīng)隨時觀察周圍環(huán)境,獲取自身的位置信息以及周圍擋墻的環(huán)境信息,并實時將信息傳遞給微處理器,便于其及時處理和判斷,同時向控制器發(fā)出指令,控制器根據(jù)指令參數(shù)來不斷執(zhí)行前進/ 后退、加速/ 減速、左轉(zhuǎn)/ 右轉(zhuǎn)等運動控制,使其按照選擇的規(guī)劃路徑和適當(dāng)?shù)倪\動參數(shù)探索行走。1 只優(yōu)秀的微電腦鼠必須具有良好的運動控制能力、周圍環(huán)境的感知能力、信息的判斷和處理能力,以及優(yōu)秀的路徑算法,迷宮時間是其中一個重要的衡量指標(biāo),迷宮時間的長短在相當(dāng)程度上取決于智能算法,因此,在某種意義上,可以說算法就是微電腦鼠的靈魂。
1 “U轉(zhuǎn)法”探索
在微電腦鼠的算法方面,有眾多的學(xué)者進行了研究,如電腦鼠走迷宮的控制算法(鄭偉等,2016[5]),基于向心法則和向點法則的深度優(yōu)先法和洪水填充法相結(jié)合的智能搜索算法(王斌等,2011[6]),運用概率距離將迷宮進行劃分并對概率距離和標(biāo)定各區(qū)域進行算法填充(薛艷,2020[7]),在參考這些研究的基礎(chǔ)上,本文對回轉(zhuǎn)探索法(簡稱“U 轉(zhuǎn)法”)進行了研究,實現(xiàn)了微電腦鼠在迷宮探索中的有效應(yīng)用。
在迷宮中,微電腦鼠的行走過程是在一邊探索一邊根據(jù)接收的指令快速移動,如圖2 所示,假設(shè)在行走過程中遇到這樣一段線路環(huán)境,那么當(dāng)前坐標(biāo)點(x,y)將傳送到微處理器中并被存儲起來,隨后,控制器發(fā)出指令,微電腦鼠開始探索行走的路徑,特別是轉(zhuǎn)彎的路徑探索。
圖2 線路環(huán)境
微電腦鼠的一般運動軌跡如圖3 所示,在這樣的環(huán)境下,微電腦鼠會豎直向上直行,遇到前方有障礙物體時,會90° 右轉(zhuǎn)向右繼續(xù)行走,然后又遇到前方障礙物體時,會繼續(xù)90° 右轉(zhuǎn)向下行走,再次遇到前方擋墻時,會90° 左轉(zhuǎn)向左繼續(xù)行走,然后又遇到前方擋墻時,又會繼續(xù)90° 左轉(zhuǎn)向上行走,如此反復(fù),直到走出為止,從圖3 可以發(fā)現(xiàn),一般情況下,微電腦鼠會選擇這樣的一條行走路線,那么它行走的距離就變得更加長了,另外,在行走的過程中,它還需要不斷地啟動、加速、減速、停止、轉(zhuǎn)向……,這樣的話,行走的時間也就毫無疑問的增加了。
圖3 一般運動軌跡
為此,本文對微電腦鼠的連續(xù)轉(zhuǎn)彎方法進行了深入探索,提出了一種連續(xù)兩次90° 轉(zhuǎn)彎的回轉(zhuǎn)探索法,因其路徑類似字母U,簡稱“U 轉(zhuǎn)法”,并進行了實驗驗證,結(jié)果顯示:微電腦鼠在迷宮探索中加入了U 轉(zhuǎn)法后,不僅探索路徑縮短了,而且微電腦鼠到達終點的時間也減少了。思路如下:微控制器接收到傳感器發(fā)送過來的周圍環(huán)境信息,將其轉(zhuǎn)化為輪子需要行走的位置、速度和加速度參數(shù),然后與FPGA 器件進行通訊,F(xiàn)PGA 器件結(jié)合光電編碼器等的反饋,生成控制直流電機運行的PWM波,推動微電腦鼠在不斷地探索中行走。
圖4 右側(cè)回轉(zhuǎn)“U轉(zhuǎn)法”原理圖
具體原理描述如下:當(dāng)微電腦鼠一邊探索一邊向前行走時,假設(shè)在行走過程中遇到如圖2 所示的一段線路環(huán)境,微電腦鼠將按照曲線運動軌跡分段進行探索,如圖4 所示。探索行走的路徑分成6 段,分別是R90_Leading、R90_Arc、R90_Passing、R90_Leading、R90_Arc、R90_Passing。微控制器首先把行走直線很短的距離R90_Leading 按照探索到的環(huán)境參數(shù)轉(zhuǎn)化為位置參數(shù)、速度參數(shù)以及加速度參數(shù)指令值,然后與FPGA器件通訊,F(xiàn)PGA 控制著微電腦鼠的左右輪,F(xiàn)PGA 再結(jié)合電機和電機上的光電編碼器和各種傳感器的反饋,生成控制微電腦鼠輪子運動的PWM 波,PWM 波經(jīng)驅(qū)動橋放大,控制著微電腦鼠輪子的速度和加速度。微處理器結(jié)合傳感器的各種反饋,實時更新指令并傳輸給FPGA,實時動態(tài)微調(diào)微電腦鼠的姿態(tài),確保微電腦鼠行走在兩邊擋墻的中心線;當(dāng)?shù)竭_既定位置時,傳感器參考值R90_FrontWallRef 開始工作,進行誤差補償,主要是為了防止外界的干擾,補償結(jié)束后,微控制器會按照不同環(huán)境要求,把曲線運動軌跡R90_arc 轉(zhuǎn)化為速度和加速度參數(shù),通過與FPGA 通訊進行指令值傳送,然后,F(xiàn)PGA 再結(jié)合電機和電機上的光電編碼器和各種傳感器的反饋,生成控制微電腦鼠輪子運動的PWM波,PWM 波經(jīng)驅(qū)動橋放大,控制著微電腦鼠輪子的速度和加速度實現(xiàn)回轉(zhuǎn)探索。在微電腦鼠回轉(zhuǎn)探索過程中,微處理器結(jié)合傳感器的各種反饋,實時更新指令并傳輸給FPGA,實時動態(tài)微調(diào)微電腦鼠的姿態(tài),確保微電腦鼠按照最佳的路徑行走;當(dāng)?shù)竭_既定位置后,微電腦鼠已經(jīng)完成向右旋轉(zhuǎn)90° ,進入到R90_Passing 段,微控制器把行走直線很短的距離R90_Passing+R90_Leading 按照探索到的環(huán)境參數(shù)轉(zhuǎn)化為速度和加速度參數(shù)指令值,然后與控制著微電腦鼠左右輪的FPGA 器件通訊,F(xiàn)PGA 再結(jié)合電機和電機上的光電編碼器和各種傳感器的反饋,生成控制微電腦鼠輪子運動的PWM波,PWM 波經(jīng)驅(qū)動橋放大,控制著微電腦鼠輪子的速度和加速度。微處理器結(jié)合傳感器的各種反饋,實時更新指令并傳輸給FPGA,實時動態(tài)微調(diào)微電腦鼠的姿態(tài),確保微電腦鼠行走在兩邊擋墻的中心線;微電腦鼠完成R90_Passing 直線行走,進入到R90_Leading 段,到達既定位置時,傳感器參考值R90_FrontWallRef 開始工作,進行誤差補償,即將完成R90_Leading、R90_Arc、R90_Passing 的路徑轉(zhuǎn)換,軌跡轉(zhuǎn)換的原理與上述R90_Leading、R90_Arc、R90_Passing 路徑轉(zhuǎn)換相同,這樣一來,就完成了右側(cè)回轉(zhuǎn)180° 。
左側(cè)回轉(zhuǎn)的轉(zhuǎn)換方法如圖5 所示,與右側(cè)回轉(zhuǎn)同理,探索行走的路徑分成L90_Leading、L90_Arc、L90_Passing、L90_Leading、L90_Arc、L90_Passing 六段,分兩次完成L90_Leading、L90_Arc、L90_Passing 的路徑轉(zhuǎn)換,從而完成左側(cè)回轉(zhuǎn)180° 。
圖5 左側(cè)回轉(zhuǎn)“U轉(zhuǎn)法”原理圖
左側(cè)回轉(zhuǎn)完成后再繼續(xù)右側(cè)回轉(zhuǎn),如此往復(fù),直至到達預(yù)定的位置,這就是U 轉(zhuǎn)法的具體實現(xiàn)過程。
圖6 微電腦鼠
2 硬件設(shè)計
本文實驗所用的微電腦鼠如圖6 所示,為了滿足微電腦鼠探索時行走的穩(wěn)定性和快速性的要求,采用了ARM+FPGA的雙核控制的先進設(shè)計理念,F(xiàn)PGA有非??斓臄?shù)據(jù)處理能力,可以來處理直流伺服系統(tǒng)的各種算法,這樣可以適當(dāng)減輕ARM 的工作壓力,實時響應(yīng)各種中斷,實現(xiàn)了數(shù)據(jù)通信和存儲的實時同步,增強了抗干擾能力。本設(shè)計的整個系統(tǒng)框架包含了硬件系統(tǒng)和軟件系統(tǒng)兩個部分,其中,硬件系統(tǒng)由微處理器、電源電路、傳感器電路、電機驅(qū)動電路以及車體結(jié)構(gòu)系統(tǒng)等部分組成。在完成相應(yīng)的硬件、軟件制作以及功能測試后,就可以進行系統(tǒng)測試,并對結(jié)果進行評估。系統(tǒng)硬件結(jié)構(gòu)組成如圖7 所示。
圖7 系統(tǒng)硬件結(jié)構(gòu)
本設(shè)計的微控制器選用的是STM 公司生產(chǎn)的STM32F429IGT6, 它是基于ARM Cortex-M4 內(nèi)核的32位高性能微控制器,頻率高達180 MHz,集成高速嵌入式存儲器,以及3 個12 位A/D 轉(zhuǎn)換器、2 個D/A 轉(zhuǎn)換器、1 個低功耗的實時時鐘(RTC)、12 個通用16 位計時器、2 個通用32 位計時器等強大的I/O 端口和先進的外設(shè),Cortex-M4 支持所有ARM 單精度數(shù)據(jù)處理指令和數(shù)據(jù)類型,實現(xiàn)了一套完整的DSP 指令,能夠滿足數(shù)字信號控制和處理的需求,提供了非常靈活多樣的解決方案,在多軸伺服電機控制中得到了廣泛的應(yīng)用,這些特點滿足了微電腦鼠在探索以及沖刺階段的信號處理需求,基于上述分析,本設(shè)計選用了STM32F429IGT6 微控制器。
FPGA(現(xiàn)場可編程門陣列)是優(yōu)秀的可編程器件,可解決原來的可編程器件門電路有限的缺點,用于ASIC(專用集成電路)的半定制電路,可以根據(jù)設(shè)計需要,在短時間內(nèi)設(shè)計出特定的ASIC,降低成本、縮短開發(fā)周期、可重復(fù)使用,非常適合高性能的多軸伺服系統(tǒng)的控制需求,因此,本設(shè)計采用了ACTEL 公司設(shè)計的FPGA 器件——A3P250。A3P250 的工作和停止受微處理器的控制,其通過I/O 接口與微處理器實時進行數(shù)據(jù)交互。
U 轉(zhuǎn)法中,對微電腦鼠探測周圍環(huán)境參數(shù)提出了更高的要求,為了提高迷宮探索的精密度和準(zhǔn)確度,本文實驗所用的微電腦鼠采用基于OPE5594A 紅外發(fā)射管和TSL262 紅外接收管的紅外傳感器,微電腦鼠傳感器如圖8 所示,1、3、4、6 都是基于OPE5594A和TSL262的紅外發(fā)射和接收對管傳感器,其中,傳感器1、6共同作用探測行走前方的擋墻障礙物,傳感器3 探測微電腦鼠左邊擋墻障礙物,傳感器 4 探測右邊擋墻障礙。
圖8 微電腦鼠傳感器結(jié)構(gòu)圖
傳感器結(jié)構(gòu)的這樣排列,有助于1 和6 在微電腦鼠加速前對于前方環(huán)境的探測和判斷,防止出現(xiàn)誤加速,如果傳感器1 和6 發(fā)現(xiàn)運動前方出現(xiàn)了擋墻障礙物,就會立刻向微控制器發(fā)送加速錯誤中斷請求,從而封鎖電機的PWM 驅(qū)動信號,反之,微電腦鼠將進入加速運動;同時,傳感器3 和4 相互配合,確保微電腦鼠行走在兩邊擋墻的中心線。如果傳感器1、3 和6 發(fā)現(xiàn)前方出現(xiàn)擋墻障礙物,會將環(huán)境信息及時的傳遞給微處理器進行處理,然后與A3P250 進行通訊,生成控制電機的PWM 控制信號,執(zhí)行右轉(zhuǎn)1/4 圓弧的操作;如果傳感器1、4 和6 發(fā)現(xiàn)前方出現(xiàn)擋墻障礙物,微處理器會及時接收到環(huán)境信息,然后與A3P250 進行通訊,生成控制電機的PWM 信號,執(zhí)行左轉(zhuǎn)1/4 圓弧。本文實驗所用的微電腦鼠硬件設(shè)計中,還加入了陀螺儀,如圖8所示的G1,其主要目的是為了提高微電腦鼠在行進過程中的穩(wěn)定性,對微電腦鼠的位置坐標(biāo)能夠進行實時的補償,完成姿態(tài)的調(diào)整,使其重新回到預(yù)先設(shè)定的中心位置,防止其在行進過程中出現(xiàn)大幅度偏離中心位置的現(xiàn)象。
3 軟件設(shè)計
本文實驗所用的微電腦鼠,在準(zhǔn)備開始迷宮探索的時候,將其放置在迷宮的起點(如圖1 所示),處于準(zhǔn)備狀態(tài),一旦觸發(fā)控制器接受到外界指令,微電腦鼠將依賴于4 個傳感器探測的環(huán)境信息,根據(jù)實際的導(dǎo)航環(huán)境沿著預(yù)判路徑快速前進,STM32F429 根據(jù)探索到的環(huán)境參數(shù)將其轉(zhuǎn)化為輪子所需行走的距離、速度和加速度參數(shù),然后與A3P250 進行通訊,A3P250 根據(jù)這些參數(shù)再結(jié)合光電編碼器等的反饋信息,生成電機的PWM控制信號,使得微電腦鼠在迷宮探索中不斷前行?;凇癠 轉(zhuǎn)法”,即回轉(zhuǎn)探索法的程序設(shè)計,如圖9 所示。由于篇幅有限,程序設(shè)計中涉及的“直線探索”和“S 法探索”[8]就不在此討論了。
4 結(jié)束語
通過實驗,本文所用的微電腦鼠在迷宮探索時,行走在兩邊擋墻的中心線,能夠沿著預(yù)設(shè)的曲線方向運行,這說明紅外傳感器組和陀螺儀對微電腦鼠的位置坐標(biāo)能夠進行實時補償,STM32F429 能夠接收反饋并實時進行動態(tài)調(diào)整,實現(xiàn)精確補償,U 轉(zhuǎn)法的應(yīng)用,進一步減少了微電腦鼠的迷宮探索時間。
參考文獻:
[1] CHEN N. A vision-guided autonomous vehicle an alternative micro mouse competition[J].IEEE Transactions on Education, 1997, 40(4): 253-258.
[2] TETTA CM .The evolution of the micro mouse competition[J].IEEE Potentials,1986,6(4): 32-37.
[3] XIN Y. Research and realization on micro mouse for maze searching in coalmine[M].Coal Technology,2010:60-69.
[4] JIN Y Y, LIU K S, REN Y H. Wheeled maze robot design based on ranging infrared sensor[M].Microcontrollers & Embedded Systems, 2013:1-5.
[5]鄭偉,張永飛.基于IEEE標(biāo)準(zhǔn)電腦鼠走迷宮控制算法研究與優(yōu)化[J].天津職業(yè)大學(xué)學(xué)報,2016(3):73-78.
[6]王斌,張衛(wèi)鋼.基于IEEE標(biāo)準(zhǔn)的電腦鼠走迷宮的智能算法研究[J],電子設(shè)計工程,2011(12):42-45.
[7]薛艷.概率距離的電腦鼠走迷宮融合設(shè)計分析[J].電子制作,2020(22):3-9.
[8]朱利軍,王應(yīng)海.雙核微微鼠迷宮探索的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2021(30):20-23.
(本文來源于《電子產(chǎn)品世界》雜志2022年12月期)
評論