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