摘" 要: 基于機(jī)器視覺模塊OpenMV和TC264單片機(jī),設(shè)計(jì)基于圖像識(shí)別的自主迷宮尋寶小車。通過識(shí)圖裝置OpenMV識(shí)別藏寶圖,定位寶藏坐標(biāo)、識(shí)別迷宮矩陣,并通過串口發(fā)送給單片機(jī),利用多目標(biāo)A算法進(jìn)行路徑規(guī)劃,利用陀螺儀與編碼器進(jìn)行實(shí)時(shí)定位,根據(jù)小車當(dāng)前的坐標(biāo)與寶藏坐標(biāo)對(duì)比來進(jìn)行小車的控制,同時(shí)使用超聲波避障模塊及按鍵等實(shí)現(xiàn)迷宮尋寶的任務(wù)。通過實(shí)驗(yàn)證明,小車系統(tǒng)運(yùn)行流暢,各個(gè)模塊之間協(xié)調(diào)配合,定位精度可達(dá)0.2 mm,判別真?zhèn)螌毑夭⑿畔l(fā)送給單片機(jī)的時(shí)間在1~2 s,在科學(xué)性、準(zhǔn)確性、可行性、創(chuàng)新性和完整性方面均有較好的表現(xiàn)。
關(guān)鍵詞: OpenMV; TC264單片機(jī); 圖像識(shí)別; 迷宮尋寶; 多目標(biāo)A算法; 實(shí)時(shí)定位
中圖分類號(hào): TN911.73?34; TP13" " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " " 文章編號(hào): 1004?373X(2024)05?0070?05
Autonomous maze treasure hunting car based on OpenMV image recognition
LAI Shengying1, XIE Xinxin2, FAN Weizheng1, WANG Huiqin1, CHEN Yuanfeng1
(1. School of Mathematics, Physics and Statistics, Shanghai University of Engineering Science, Shanghai 201620, China;
2. School of Electronic and Electrical Engineering, Shanghai University of Engineering Science, Shanghai 201620, China)
Abstract: On the basis of the machine vision module OpenMV and microcontroller unit (MCU) TC264, an autonomous maze treasure hunting car is designed based on image recognition. The map reading device OpenMV is used to identify the treasure map, locate the treasure corrdinates and identify the maze matrix. After the identification, the messanges of the maze and treasures are sent to the MCU by the serial port. The path is planned with the multi?objective A algorithm. The gyroscope and the encoder are used for real?time positioning. The car is controlled according to the comparison between the current coordinates of the car and the treasure coordinates. Meanwhile, the ultrasonic obstacle avoidance module and keys are used to achieve the tasks of finding treasures in the maze. Experiments show that the small car system operates smoothly, with coordination and cooperation among various modules. Its positioning accuracy is 0.2 mm. It takes about 1 s to 2 s for the hunting car to judge the authenticity of the treasure and send the information to the MCU. The results show that the car has good performance in terms of scientificity, accuracy, feasibility, innovation and completeness.
Keywords: OpenMV; MCU TC264; image recognition; treasure hunting in the maze; multi?objective A algorithm; real?time positioning
0" 引" 言
在當(dāng)今數(shù)字化時(shí)代,機(jī)器視覺技術(shù)以及自主導(dǎo)航系統(tǒng)的快速發(fā)展為智能機(jī)器人的研發(fā)和應(yīng)用帶來了無限可能。隨著人工智能技術(shù)的不斷進(jìn)步,圖像識(shí)別在多個(gè)領(lǐng)域中發(fā)揮著重要作用,特別是在自主導(dǎo)航和智能控制方面[1]。設(shè)計(jì)基于圖像識(shí)別的自主迷宮尋寶小車的過程中,可以采用深度學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò)(CNN),對(duì)藏寶圖進(jìn)行識(shí)別和解析,也可以利用樹莓派的計(jì)算能力和OpenCV的圖像處理功能來實(shí)現(xiàn)圖像識(shí)別、路徑規(guī)劃和避障等功能??紤]到迷宮尋寶的準(zhǔn)確性、創(chuàng)新性和成本效益等方面的要求,本文基于機(jī)器視覺模塊OpenMV和TC264單片機(jī),旨在設(shè)計(jì)一款基于OpenMV圖像識(shí)別的自主迷宮尋寶小車,該小車能夠通過識(shí)別藏寶圖并定位寶藏坐標(biāo),在迷宮中智能地規(guī)劃路徑,實(shí)現(xiàn)自主尋寶的任務(wù)。該小車系統(tǒng)的核心技術(shù)包括圖像識(shí)別、路徑規(guī)劃、實(shí)時(shí)定位和避障等多個(gè)模塊的協(xié)同作用[2]。本文基于機(jī)器視覺模塊OpenMV識(shí)別藏寶圖,提取寶藏位置信息和迷宮矩陣,并通過串口通信將信息發(fā)送給TC264單片機(jī),使用多目標(biāo)A算法進(jìn)行路徑規(guī)劃,確保小車能夠以最短路徑快速到達(dá)目的地。為了實(shí)現(xiàn)小車在迷宮中的實(shí)時(shí)定位,采用陀螺儀和編碼器,有效地監(jiān)測和更新小車的位置信息,確保路徑規(guī)劃的準(zhǔn)確性和實(shí)時(shí)性。小車在移動(dòng)過程中,通過與寶藏坐標(biāo)和路徑的對(duì)比,智能地調(diào)整行駛方向和速度,從而實(shí)現(xiàn)對(duì)小車的精準(zhǔn)控制。此外,為了增加小車在迷宮中的智能化和靈活性,還采用超聲波避障模塊等裝置,以應(yīng)對(duì)在迷宮中可能遇到的障礙物和緊急情況[3]。通過實(shí)踐證明,該方案可行有效,集成了多個(gè)核心技術(shù)模塊,具備專用的圖像識(shí)別裝置、全面的系統(tǒng)控制手段及實(shí)時(shí)定位技術(shù),具有一定的推廣價(jià)值。
1" 系統(tǒng)方案設(shè)計(jì)
基于OpenMV圖像識(shí)別的自主迷宮尋寶小車是由多個(gè)嵌入式系統(tǒng)組成的,主要由TC264單片機(jī)及其學(xué)習(xí)板、機(jī)器視覺模塊OpenMV、陀螺儀傳感器IMU963RA、編碼器、TFT屏幕(薄膜晶體管屏幕)以及電源等外設(shè)組成。其中,OpenMV是一個(gè)獨(dú)立的嵌入式視覺開發(fā)平臺(tái),用于檢測和分析迷宮,提取圖像中的特征,執(zhí)行目標(biāo)識(shí)別、跟蹤及其他視覺任務(wù)。智能車則是另一個(gè)獨(dú)立的嵌入式系統(tǒng),可以感知環(huán)境,并根據(jù)OpenMV提供的視覺信息執(zhí)行移動(dòng)和導(dǎo)航。本文研究了兩個(gè)嵌入式系統(tǒng)通過串口通信進(jìn)行交互,以實(shí)現(xiàn)系統(tǒng)的整體功能。系統(tǒng)架構(gòu)設(shè)計(jì)如圖1所示。
在迷宮尋寶的整個(gè)流程中有兩個(gè)關(guān)鍵環(huán)節(jié):OpenMV識(shí)別藏寶圖和坐標(biāo)導(dǎo)航。智能車的迷宮尋寶流程圖如圖2所示。
1.1" 系統(tǒng)硬件設(shè)計(jì)
1.1.1" 主控模塊設(shè)計(jì)
本文采用TC264單片機(jī)進(jìn)行智能車的嵌入式開發(fā)。該單片機(jī)主頻高達(dá)200 MHz,擁有強(qiáng)大的處理能力,滿足復(fù)雜應(yīng)用的需求。采用OpenMV進(jìn)行視覺開發(fā),它以STM32F427 MCU為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上實(shí)現(xiàn)了核心機(jī)器視覺算法,并提供Python編程接口。通過OpenMV可以識(shí)別寶藏位置、辨別真假寶藏信息、識(shí)別迷宮矩陣、循跡等。
1.1.2" 傳感器模塊設(shè)計(jì)
本文采用的傳感器模塊主要有陀螺儀IMU963RA、1024線編碼器、超聲波避障模塊等。陀螺儀可以測量車輛的角速度和角度變化,用于姿態(tài)感知,通過獲取車輛的姿態(tài)信息,進(jìn)行精確的定位和導(dǎo)航控制。IMU963RA是具備三軸加速度計(jì)[4]、三軸陀螺儀和三軸磁力計(jì)的傳感器組合,可以提供更全面的姿態(tài)感知和運(yùn)動(dòng)測量能力。九軸陀螺儀通常具有較高的精度,能夠提供準(zhǔn)確的姿態(tài)感知和運(yùn)動(dòng)測量[5]。1024線編碼器提供了較高的分辨率,能夠提供更精確的位置和速度測量結(jié)果。編碼器可以測量電機(jī)輪子的轉(zhuǎn)動(dòng)位置和速度,用于實(shí)現(xiàn)精確的車輛定位和控制。超聲波模塊可以測量車輛與障礙物之間的距離,用于檢測前方的障礙物并進(jìn)行避障。超聲波模塊具有較高的測距精度,能夠提供準(zhǔn)確的距離測量結(jié)果。
1.1.3" 車模結(jié)構(gòu)
迷宮尋寶小車的車型選用三輪車,采用自制車模,外接2S鋰電池供電,三輪車的設(shè)計(jì)更為靈活,在迷宮尋寶任務(wù)中使得小車能夠更快速地探索迷宮并做出快速反應(yīng)。小車結(jié)構(gòu)如圖3a)所示,車模3D圖如圖3b)所示。
1.2" 系統(tǒng)軟件設(shè)計(jì)
1.2.1" 軟件環(huán)境
本文使用C語言開發(fā)TC264單片機(jī),開發(fā)環(huán)境為AURIX? Development Studio(簡稱ADS);其次,使用Python語言開發(fā)機(jī)器視覺模塊OpenMV,開發(fā)環(huán)境為OpenMV IDE。
1.2.2" OpenMV圖像識(shí)別
本文通過機(jī)器視覺模塊OpenMV主要實(shí)現(xiàn)三個(gè)功能:
1) 識(shí)別藏寶圖:OpenMV可以使用畸變校正和透視變換算法對(duì)攝像頭捕獲的圖像進(jìn)行處理?;冃U梢孕U捎跀z像頭鏡頭特性引起的圖像畸變,以獲取更準(zhǔn)確的圖像信息[6]。透視變換可以將圖像從攝像頭的視角轉(zhuǎn)換為鳥瞰視角,消除遠(yuǎn)近物體的大小變化[7]。OpenMV可以使用計(jì)算機(jī)視覺算法進(jìn)行色塊檢測,色塊檢測是一種常見的圖像處理任務(wù),用于識(shí)別和定位圖像中具有特定顏色的區(qū)域。本文先對(duì)攝像頭進(jìn)行畸變矯正,后根據(jù)色塊檢測找到迷宮的起點(diǎn)和終點(diǎn),根據(jù)迷宮的4個(gè)頂點(diǎn)分別進(jìn)行[x]軸和[z]軸的透視旋轉(zhuǎn)變換,其中,[x]軸變換的角度Angle1如式(1)所示,[z]軸變換的角度Angle2如式(2)所示。隨后,根據(jù)目標(biāo)識(shí)別和形狀檢測找到寶藏,并進(jìn)行平移變換和比例變換,變換后的[x]坐標(biāo)transform_[x]如式(3)所示,變換后的[y]坐標(biāo)transform_[y]如式(4)所示,最后,將變換得到的坐標(biāo)進(jìn)行矯正,即將地圖分成10個(gè)區(qū)間,每個(gè)區(qū)間長度為40,處于此區(qū)間的任意坐標(biāo)為區(qū)間中點(diǎn)值,據(jù)此便可以在理想狀態(tài)下確定其準(zhǔn)確的坐標(biāo)位置。
[Angle1=arccosabs(end_y-start_y)abs(end_x-start_x)*180°π] (1)
式中:[(start_x,start_y)]是迷宮起點(diǎn)的坐標(biāo);[(end_x,end_y)]是迷宮終點(diǎn)的坐標(biāo)。
[Angle2=arctanabs(bend_y-bend_x)abs(bstart_y-bstart_x)*180°π]
(2)
式中:[(bstart_x,bstart_y)]是經(jīng)過[x]軸變換后的迷宮起點(diǎn)的坐標(biāo);[(bend_x,bend_y)]是經(jīng)過[x]軸變換后的迷宮終點(diǎn)的坐標(biāo)。
[transform_x=k1*abs(x+dx)" =400abs(bend_x-bstart_x)*(x+target_x-bstart_x)] (3)
式中:[k1]為[x]軸比例變換系數(shù),目的是轉(zhuǎn)換成實(shí)際為4 m×4 m的迷宮里的坐標(biāo);target_[x]是將起點(diǎn)轉(zhuǎn)換成目標(biāo)值的[x]軸坐標(biāo),即0;[dx]為增量,初始值為0,目的是將迷宮起點(diǎn)坐標(biāo)映射到(0,0)。
[transform_y=k2*abs(y+dy) =400abs(bend_y-bstart_y)*(y+target_y-bstart_y)] (4)
式中:[k2]為[y]軸比例變換系數(shù);target_[y]是將起點(diǎn)轉(zhuǎn)換成目標(biāo)值的[y]軸坐標(biāo),即0;[dy]為增量,初始值為0。
2) 指引智能車循跡:智能車一鍵發(fā)車進(jìn)入迷宮,OpenMV通過攝像頭采集迷宮的圖像數(shù)據(jù),對(duì)賽道進(jìn)行濾波、二值化等操作,以便更好地提取車道線的信息,使用OpenMV的線性回歸算法,智能車可以輔助進(jìn)行循跡操作。通過分析循跡線的邊緣信息,擬合循跡線的方程,智能車可以根據(jù)循跡線的位置和方向進(jìn)行轉(zhuǎn)向控制,從而實(shí)現(xiàn)沿著循跡線行駛[8]。
3) 識(shí)別真?zhèn)螌毑兀褐悄苘嚫鶕?jù)寶藏位置信息,通過導(dǎo)航和路徑規(guī)劃算法,使車輛能夠準(zhǔn)確到達(dá)寶藏附近。OpenMV利用圖像處理算法,提取寶藏的特征信息,即顏色、形狀等,通過比較匹配或分類結(jié)果,確定寶藏的真?zhèn)涡再|(zhì),根據(jù)預(yù)先定義的判別準(zhǔn)則,可以判斷寶藏是否為真實(shí)的目標(biāo)。
1.2.3" 多目標(biāo)A算法
A*算法是一種啟發(fā)式搜索算法,用于在圖或網(wǎng)絡(luò)中找到兩個(gè)節(jié)點(diǎn)之間的最短路徑。在迷宮問題中,可以將起始點(diǎn)設(shè)置為迷宮的入口,將寶藏位置設(shè)置為目標(biāo)點(diǎn),并使用A*算法找到最短路徑[9?11]??紤]到存在多個(gè)寶藏點(diǎn),本文采用多目標(biāo)A算法(MOA算法)。MOA算法能夠同時(shí)考慮多個(gè)目標(biāo),在一次搜索中找到最優(yōu)解,從而減少搜索次數(shù)和計(jì)算量。
1.2.4" 坐標(biāo)導(dǎo)航
利用九軸陀螺儀和編碼器,通過航跡推算法,計(jì)算出相對(duì)于初始時(shí)刻的位移與姿態(tài)變化,從而得到小車當(dāng)前實(shí)時(shí)的坐標(biāo)和姿態(tài)[5,12]。編碼器可以獲得輪子的瞬時(shí)脈沖用于速度閉環(huán)和里程計(jì)算。陀螺儀檢測偏航角,通過積分得到姿態(tài)。對(duì)于陀螺儀存在的零點(diǎn)漂移現(xiàn)象,可以采用零漂補(bǔ)償或?yàn)V波處理(FIR濾波、卡爾曼濾波[13]),從而降低陀螺儀的輸出誤差。
2" 實(shí)驗(yàn)結(jié)果
2.1" OpenMV識(shí)圖結(jié)果
1) 使用OpenMV對(duì)藏寶圖進(jìn)行畸變矯正,再查找色塊定位起點(diǎn)和終點(diǎn),根據(jù)迷宮4個(gè)頂點(diǎn)的坐標(biāo)對(duì)[x]軸進(jìn)行透視旋轉(zhuǎn)變換,隨后,根據(jù)變換后的迷宮頂點(diǎn)坐標(biāo)對(duì)[z]軸進(jìn)行透視旋轉(zhuǎn)變換,此時(shí),得到的迷宮藏寶圖狀態(tài)較為理想,該過程如圖4所示。在此狀態(tài)基礎(chǔ)上進(jìn)行圓形檢測,并根據(jù)平移變換和比例變換定位寶藏的真實(shí)坐標(biāo)。
定位寶藏結(jié)束后,對(duì)圖像進(jìn)行預(yù)處理。首先采用高斯模糊濾波和均值濾波,再對(duì)圖像進(jìn)行二值化處理,根據(jù)圖像的分辨率對(duì)迷宮邊緣進(jìn)行一定的腐蝕和膨脹,得到一個(gè)較為理想的黑白迷宮圖。隨后根據(jù)黑白迷宮的像素值對(duì)迷宮進(jìn)行遍歷,即可將迷宮轉(zhuǎn)化成一個(gè)二維矩陣(二維矩陣的大小根據(jù)不丟失元素特征和不占用過多內(nèi)存的前提下自定義),結(jié)果如圖5所示。
2) 使用OpenMV的線性回歸算法,根據(jù)迷宮的黑線進(jìn)行二值化處理,并擬合成一條直線,以獲得直線的偏差和角度。
3) 使用OpenMV識(shí)別真?zhèn)螌毑兀鶕?jù)寶藏的特征信息,即顏色、形狀等,通過比較匹配或分類結(jié)果,確定寶藏的真?zhèn)涡再|(zhì),分別假定我方為紅方和藍(lán)方,區(qū)分真假寶藏,具體如圖6所示。
2.2" 智能小車運(yùn)行結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果顯示,迷宮尋寶小車在成功識(shí)圖的前提下能夠在迷宮中完整運(yùn)行,并通過LED燈光提供照明。無論是在昏暗環(huán)境還是正常環(huán)境下,小車均能成功完成迷宮尋寶任務(wù)。識(shí)別真假寶藏并將信息發(fā)送給單片機(jī)的時(shí)間在0.5~2 s之間,而整個(gè)迷宮尋寶過程總時(shí)長約在2 min以內(nèi)。最理想情況下,智能小車前往的前3個(gè)寶藏全為真寶藏,找完直接去往終點(diǎn),耗費(fèi)時(shí)間在1 min左右;最糟糕情況下,智能小車前往了8個(gè)寶藏才找到3個(gè)真寶藏,耗時(shí)2 min以內(nèi)。
通過超聲波避障模塊實(shí)現(xiàn)避障,采用外部中斷來檢測超聲波模塊返回的高低電平,70 cm內(nèi)能夠進(jìn)行準(zhǔn)確距離測算,解決了傳統(tǒng)算法中易卡死的情況。編碼器采用1024線,定位精度可達(dá)0.2 mm,在沒有循跡線的情況下也能進(jìn)行迷宮尋寶。
3" 結(jié)" 論
本文基于機(jī)器視覺模塊OpenMV圖像識(shí)別和TC264單片機(jī)設(shè)計(jì)的自主迷宮尋寶小車在實(shí)驗(yàn)中取得了令人滿意的結(jié)果。
1) 通過使用OpenMV圖像識(shí)別裝置,小車能夠成功識(shí)別藏寶圖并提取寶藏的坐標(biāo)信息和迷宮矩陣信息,這證明了圖像識(shí)別在迷宮尋寶任務(wù)中的可行性和有效性。
2) 利用多目標(biāo)A算法進(jìn)行路徑規(guī)劃,小車能夠根據(jù)迷宮矩陣和寶藏坐標(biāo)生成最優(yōu)路徑,這表明多目標(biāo)A算法在迷宮尋寶中具有較高的效率和性能。
3) 通過陀螺儀和編碼器的實(shí)時(shí)定位,小車能夠準(zhǔn)確獲取自身的位置信息,這為小車在迷宮中的導(dǎo)航和控制提供了重要的參考依據(jù)。在與寶藏坐標(biāo)的比對(duì)過程中,小車能夠根據(jù)自身位置進(jìn)行準(zhǔn)確的控制,確保朝著寶藏的方向移動(dòng),這驗(yàn)證了小車控制系統(tǒng)的可靠性和準(zhǔn)確性。
注:本文通訊作者為謝鑫鑫。
參考文獻(xiàn)
[1] 張謙,鄔依林.基于智能視覺的無人機(jī)導(dǎo)航技術(shù)研究[J].現(xiàn)代電子技術(shù),2018,41(16):132?134.
[2] 張沫,吳一卓.基于A*算法的搬運(yùn)機(jī)器人路徑規(guī)劃優(yōu)化[J].現(xiàn)代電子技術(shù),2023,46(13):135?139.
[3] 邢強(qiáng),虞凱西,谷玉之.基于測距超聲波傳感器的間距平衡避障策略[J].現(xiàn)代電子技術(shù),2018,41(20):97?99.
[4] 鄒澤蘭,徐同旭,徐祥,等.基于兩步修正法的MEMS三軸陀螺儀標(biāo)定方法[J].儀器儀表學(xué)報(bào),2022,43(4):191?198.
[5] 劉春,劉滔,張海燕,等.小波變換法在姿態(tài)解算中的應(yīng)用[J].電子測量與儀器學(xué)報(bào),2021,35(1):183?190.
[6] 蔡夢姚,王鵬.空間轉(zhuǎn)換的魚眼圖像畸變校正[J].國外電子測量技術(shù),2022,41(3):9?13.
[7] 李一航,周東興,韓東升.一種基于透視變換的遠(yuǎn)距離雙目測距方法[J].電子測量技術(shù),2021,44(7):93?99.
[8] 鄧開連,周芳管,崔燦,等.基于KEA的智能循跡小車[J].現(xiàn)代電子技術(shù),2020,43(16):13?17.
[9] 李喆,吳君,王順森,等.采用A星?遺傳算法的船舶管路智能布置[J].西安交通大學(xué)學(xué)報(bào),2023,57(6):172?180.
[10] 徐淦,李文超,劉美如.基于概率A*的智能車路徑規(guī)劃算法[J].電子測量技術(shù),2023,46(8):92?98.
[11] 丁一,楊旭澤.考慮動(dòng)態(tài)加權(quán)A星算法的預(yù)翻箱作業(yè)優(yōu)化[J].運(yùn)籌與管理,2023,32(5):36?41.
[12] 張徐瑋,鮑其蓮,孫朔冬,等.陀螺儀輔助星敏感器星跟蹤算法設(shè)計(jì)[J].電子測量與儀器學(xué)報(bào),2021,35(4):23?29.
[13] 余志鵬,熊劍,衷衛(wèi)聲,等.基于秩卡爾曼濾波的室內(nèi)行人航位推算算法[J].儀器儀表學(xué)報(bào),2020,41(5):214?220.
[14] 翟瑞,周靜雷.基于STM32的USB轉(zhuǎn)串口通信端口設(shè)計(jì)[J].國外電子測量技術(shù),2021,40(1):92?95.
[15] 張海超,張北偉.基于STM32的多串口通信系統(tǒng)設(shè)計(jì)[J].國外電子測量技術(shù),2019,38(2):99?102.