<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于April Tag標(biāo)記定位的自動(dòng)泊車系統(tǒng)實(shí)現(xiàn)

          基于April Tag標(biāo)記定位的自動(dòng)泊車系統(tǒng)實(shí)現(xiàn)

          作者:姚錫欽 林燁 陳蘇陽(yáng) 時(shí)間:2018-07-26 來(lái)源:電子產(chǎn)品世界 收藏
          編者按:系統(tǒng)采用STM32F103系列單片機(jī)作為自動(dòng)泊車控制系統(tǒng)和小車控制系統(tǒng)的核心,控制裝置通過(guò)按鈕選擇小車停車位并通過(guò)無(wú)線模塊發(fā)送給小車,實(shí)時(shí)通過(guò)OpenMV攝像頭檢測(cè)小車頂部的April Tag標(biāo)記來(lái)獲取小車的位置及角度,實(shí)現(xiàn)小車自動(dòng)駛?cè)胪\囄弧P≤囃ㄟ^(guò)控制裝置的反饋來(lái)獲取自己的當(dāng)前位置,同時(shí)利用麥克納姆輪的水平位移,讓小車更加精準(zhǔn)快速的到達(dá)停車位。

          作者  姚錫欽 林燁 陳蘇陽(yáng) 浙江工貿(mào)職業(yè)技術(shù)學(xué)院 電子工程系(浙江 溫州 325000)

          本文引用地址:http://www.ex-cimer.com/article/201807/389575.htm

          摘要:系統(tǒng)采用系列單片機(jī)作為自動(dòng)泊車控制系統(tǒng)和小車控制系統(tǒng)的核心,控制裝置通過(guò)按鈕選擇小車停車位并通過(guò)無(wú)線模塊發(fā)送給小車,實(shí)時(shí)通過(guò)攝像頭檢測(cè)小車頂部的標(biāo)記來(lái)獲取小車的位置及角度,實(shí)現(xiàn)小車自動(dòng)駛?cè)胪\囄弧P≤囃ㄟ^(guò)控制裝置的反饋來(lái)獲取自己的當(dāng)前位置,同時(shí)利用的水平位移,讓小車更加精準(zhǔn)快速的到達(dá)停車位。

          *2017年“瑞薩杯”全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽高職高專組最高獎(jiǎng)“瑞薩杯獎(jiǎng)”

          姚錫欽(1978-),男,實(shí)驗(yàn)師,研究方向:機(jī)電一體化技術(shù)。

          0 引言

            本設(shè)計(jì)為2017年“瑞薩杯”大學(xué)生電子設(shè)計(jì)競(jìng)賽高職高專組自動(dòng)泊車系統(tǒng)(L題)的解決方案,本題的核心要求是設(shè)計(jì)并制作一個(gè)泊車系統(tǒng),要求電動(dòng)小車能自動(dòng)駛?cè)胫付ǖ耐\囄?,停車后能自?dòng)駛出停車場(chǎng)。為了達(dá)成核心要求,我們?cè)O(shè)計(jì)了這套使用做小車車輪的方式使小車具備全向移動(dòng)能力,并通過(guò)識(shí)別定位來(lái)定位小車位置的自動(dòng)泊車方案。通過(guò)利用在圖像識(shí)別定位開(kāi)發(fā)方面簡(jiǎn)單快速的特點(diǎn),以及全向移動(dòng)的能力使得糾偏算法大大簡(jiǎn)化。使得我們得以在緊張的比賽時(shí)間內(nèi)完成本套方案。

          1 系統(tǒng)整體方案

            系統(tǒng)整體結(jié)構(gòu)如圖1所示。本系統(tǒng)由小車部分以及控制器兩大部分組成,其中小車部分由STM32單片機(jī)、無(wú)線模塊、測(cè)速模塊、檢測(cè)碰撞電路、電機(jī)控制電路、液晶顯示電路、聲光提示電路、電源電路,輔以合適的機(jī)械結(jié)構(gòu)組成:STM32單片機(jī)通過(guò)無(wú)線模塊接收來(lái)自控制器的目標(biāo)車位以及小車當(dāng)前坐標(biāo)的數(shù)據(jù)流,在STM32單片機(jī)中進(jìn)行拼接格式化后小車即可獲知自身的實(shí)時(shí)坐標(biāo)以及要前往的目標(biāo)車位。運(yùn)動(dòng)過(guò)程中由于使用麥克納姆輪進(jìn)行移動(dòng),且考慮到小車電機(jī)運(yùn)動(dòng)特性參數(shù)不會(huì)絕對(duì)一致,故使用由紅外光電對(duì)管以及碼盤(pán)組成的測(cè)速模塊對(duì)車輪進(jìn)行測(cè)速,并在STM32中做每個(gè)車輪的轉(zhuǎn)速PID實(shí)時(shí)控制小車車輪轉(zhuǎn)速符合麥克納姆輪運(yùn)動(dòng)控制函數(shù)計(jì)算出的單個(gè)輪速度。由于題目中要求小車停入車位以及駛出車位需要有相應(yīng)的聲光提示,且在小車調(diào)試過(guò)程中由于小車處于移動(dòng)中,不方便在外部接入串口線進(jìn)行調(diào)試,故需要相應(yīng)的可控LED以及蜂鳴器發(fā)光發(fā)聲提示,輔助程序調(diào)試。液晶顯示模塊用于顯示無(wú)線模塊初始化情況,以及碰撞次數(shù)。電源部分使用兩節(jié)18650鋰電池串聯(lián)作為總電源,其中電機(jī)驅(qū)動(dòng)供電為電池直供的最高8.4 V,最低6 V的電源,單片機(jī)等其他控制檢測(cè)電路為經(jīng)過(guò)降壓穩(wěn)壓后的5 V電源,并在單片機(jī)最小系統(tǒng)板上由LDO進(jìn)一步穩(wěn)壓為3.3 V。檢測(cè)碰撞方面有與場(chǎng)地配合來(lái)檢測(cè)與場(chǎng)地碰撞的檢測(cè)碰撞電路組成??刂撇糠种饕蓴z像頭、液晶顯示模塊、語(yǔ)音錄放模塊、激光檢測(cè)模塊、無(wú)線模塊組成,其中攝像頭用于跟蹤小車位置,液晶顯示模塊用于顯示當(dāng)前車位以及小車行駛信息,同時(shí)使用語(yǔ)音錄放模塊進(jìn)行播報(bào),激光檢測(cè)模塊用于檢測(cè)小車進(jìn)入場(chǎng)地以及駛出場(chǎng)地,并計(jì)算時(shí)間差,無(wú)線模塊用于向小車發(fā)送數(shù)據(jù)流。

          2 檢測(cè)碰撞電路

            因題目中有要求小車在場(chǎng)地中移動(dòng)的過(guò)程中要能記錄小車碰撞場(chǎng)地隔板的次數(shù)。故需要制作相應(yīng)的檢測(cè)碰撞電路來(lái)檢測(cè)與隔板的碰撞,可參考圖2、圖3、圖4,思路為:在場(chǎng)地隔板上可能碰撞的區(qū)域貼上一條有一定寬度的銅箔,在小車上方安置一個(gè)平臺(tái),并在平臺(tái)四周上下間隔一定高度貼兩圈銅箔,當(dāng)沒(méi)有發(fā)生碰撞時(shí),小車平臺(tái)上兩圈銅箔不導(dǎo)通,一旦發(fā)生碰撞,場(chǎng)地隔板上的銅箔將小車平臺(tái)上的兩圈銅箔導(dǎo)通,單片機(jī)檢測(cè)銅箔被導(dǎo)通則判斷發(fā)生了碰撞,其原理類似一個(gè)常開(kāi)式按鈕。

          3 攝像頭模塊

            由于需要實(shí)時(shí)獲取小車在場(chǎng)地中的位置,并將小車坐標(biāo)通過(guò)控制器實(shí)時(shí)發(fā)送到小車并進(jìn)行反饋控制。故需要保證小車在場(chǎng)地中能實(shí)時(shí)被捕獲并要求小車移動(dòng)過(guò)程中丟失幾率盡量低,且坐標(biāo)數(shù)據(jù)刷新率要求高。故選擇使用OpenMV配合來(lái)實(shí)現(xiàn)定位。OpenMV是一個(gè)開(kāi)源的機(jī)器視覺(jué)模塊。相較于傳統(tǒng)攝像頭+單片機(jī)做硬件,自己寫(xiě)圖像識(shí)別處理算法的方式,OpenMV使用Python語(yǔ)言(通過(guò)MicroPython解釋器在STM32F4或STM32F7上運(yùn)行Python程序),開(kāi)發(fā)速度快。一些常用功能所需的算法已經(jīng)封裝成Python庫(kù),可以直接調(diào)用,并有示例程序參考。在比賽中,由于開(kāi)發(fā)時(shí)間特別寶貴,故選擇使用OpenMV做攝像頭模塊,可以大大提升開(kāi)發(fā)速度,并在數(shù)據(jù)刷新率上相對(duì)于樹(shù)莓派+OpenCV有優(yōu)勢(shì),在小車移動(dòng)過(guò)程中丟失幾率方面優(yōu)于普通攝像頭+STM32自寫(xiě)算法,通過(guò)將OpenMV固定于場(chǎng)地正上方,并俯視全場(chǎng),小車上方平臺(tái)固定April Tag標(biāo)簽來(lái)進(jìn)行追蹤,小車上的April Tag標(biāo)簽安裝示意可參照?qǐng)D6。可以得出小車在攝像頭畫(huà)面中的XY坐標(biāo)以及旋轉(zhuǎn)角度,攝像頭俯視場(chǎng)地時(shí)畫(huà)面如圖5。該方案雖在當(dāng)前項(xiàng)目中具有優(yōu)勢(shì),但由于使用STM32F7單片機(jī),RAM容量較少,不能處理高分辨率圖片,使得其定位精度成為一大瓶頸,且由于分辨率低,導(dǎo)致April Tag標(biāo)簽需要在攝像頭畫(huà)面中占有一定面積才可被穩(wěn)定跟蹤識(shí)別,故需要制作更大尺寸的April Tag標(biāo)簽或者將April Tag標(biāo)簽距離攝像頭的高度差拉近(在車身上抬高April Tag標(biāo)簽高度)來(lái)補(bǔ)償分辨率過(guò)低的問(wèn)題。

          4 麥克納姆輪

            本題目中有兩個(gè)平行式車位,要求小車能實(shí)現(xiàn)側(cè)方位停車,我們?cè)诔跗诳紤]的時(shí)候就以要求停車過(guò)程中零碰撞為目標(biāo),故選擇麥克納姆輪作為小車車輪,小車使用的麥克納姆輪實(shí)物圖如圖7。相對(duì)于普通車輪,麥克納姆輪通過(guò)對(duì)4個(gè)車輪轉(zhuǎn)動(dòng)方向和速度的協(xié)調(diào)控制,可以使車體在運(yùn)動(dòng)平面內(nèi)的任意方向上移動(dòng)、轉(zhuǎn)動(dòng)和漂移,即運(yùn)動(dòng)中可以不改變自身的方向),這可以很容易實(shí)現(xiàn)側(cè)方停車的要求,并且可以大大簡(jiǎn)化在正常行駛過(guò)程中糾偏算法。在電機(jī)方面,由于車身寬度以及其他重量體積方面的考慮,使用普通的微型有刷直流電機(jī)配合20格的普通光電碼盤(pán)配合光電對(duì)管對(duì)電機(jī)進(jìn)行測(cè)速后進(jìn)行轉(zhuǎn)速PID控制,由于電機(jī)輸出軸經(jīng)過(guò)減速機(jī)構(gòu)后連接到麥克納姆輪進(jìn)行驅(qū)動(dòng),且測(cè)速用光電碼盤(pán)也位于減速后的軸上,碼盤(pán)格數(shù)也過(guò)少,故測(cè)速效果十分不理想,導(dǎo)致PID控制效果不理想。有條件可使用步進(jìn)電機(jī)或在電機(jī)直接輸出軸上通過(guò)光電碼盤(pán)進(jìn)行測(cè)速。

          5 軟件設(shè)計(jì)

            軟件主要為小車上STM32程序以及控制器STM32程序,以及OpenMV上個(gè)Python腳本,其中OpenMV中的Python實(shí)現(xiàn)了April Tag標(biāo)簽的追蹤,并將April Tag標(biāo)簽的位置信息和角度信息打包成JSON格式的數(shù)據(jù)包通過(guò)有線TTL串口發(fā)送至控制器上的STM32單片機(jī)進(jìn)行處理,控制器上的STM32單片機(jī)通過(guò)使用CJSON庫(kù)對(duì)來(lái)自O(shè)penMV的JSON數(shù)據(jù)進(jìn)行解析,提取出相應(yīng)數(shù)據(jù)后打包成小車對(duì)應(yīng)的數(shù)據(jù)包格式通過(guò)無(wú)線模塊發(fā)送給小車,更改數(shù)據(jù)包格式主要是因?yàn)樵赟TM32單片機(jī)中解析JSON會(huì)消耗大量RAM以及CPU時(shí)間,故需要更換數(shù)據(jù)格式,且需要發(fā)送至小車的數(shù)據(jù)主要有兩大類,分別是坐標(biāo)角度數(shù)據(jù)以及車位數(shù)據(jù),故在數(shù)據(jù)包中加入包類型來(lái)區(qū)分兩大數(shù)據(jù)類型。小車收到車位數(shù)據(jù)以及坐標(biāo)角度數(shù)據(jù)后根據(jù)小車中的坐標(biāo)點(diǎn)計(jì)算小車當(dāng)前坐標(biāo)與小車目標(biāo)坐標(biāo)的誤差,得出補(bǔ)償誤差用的XY方向向量長(zhǎng)度。將得出的向量長(zhǎng)度數(shù)據(jù)輸入麥克納姆輪運(yùn)動(dòng)計(jì)算函數(shù)算出每個(gè)輪子的輪速度,并傳遞給車輪轉(zhuǎn)速PID程序進(jìn)行車輪轉(zhuǎn)速控制,其中得出誤差并進(jìn)行補(bǔ)償控制的部分由于克納姆輪運(yùn)動(dòng)計(jì)算函數(shù)的參數(shù)為X方向向量長(zhǎng)度以及Y方向向量長(zhǎng)度以及旋轉(zhuǎn)角速度,故可直接使用小車當(dāng)前在攝像頭中的坐標(biāo)與目標(biāo)在攝像頭中的坐標(biāo)的XY誤差分以及小車在攝像頭中的旋轉(zhuǎn)角度直接分別乘以系數(shù)來(lái)作為麥克納姆輪運(yùn)動(dòng)計(jì)算函數(shù)的參數(shù)進(jìn)行位置補(bǔ)償。

          6 結(jié)論

            本文設(shè)計(jì)方案結(jié)構(gòu)較為簡(jiǎn)單,且實(shí)現(xiàn)容易,特別在麥克納姆輪與OpenMV和April Tag的配合方面,大大簡(jiǎn)化了算法以及硬件電路設(shè)計(jì)難度和機(jī)械安裝難度。并且有一定可靠性,在非理想狀態(tài)下(例如電機(jī)運(yùn)動(dòng)出現(xiàn)誤差,麥克納姆輪安裝出現(xiàn)誤差)表現(xiàn)出一定的魯棒性。

            參考文獻(xiàn):

            [1]林燁.基于PID算法的水溫控制系統(tǒng)設(shè)計(jì)[J].山西科技,2011,26(3):111-113.

            [2]王一治,常德功.Mecanum四輪全方位系統(tǒng)的運(yùn)動(dòng)性能分析及結(jié)構(gòu)形式優(yōu)選[J].機(jī)械工程學(xué)報(bào),2009(5):307-310.

            [3]侯彬,李亞明.麥克納姆輪技術(shù)及其在船用輪式設(shè)備中的應(yīng)用[J].船舶工程,2011(3):84-87.

            [4]石維亮,王興松,賈茜.基于Mecanum輪的全向移動(dòng)機(jī)器人的研制[J].機(jī)械工程師,2007(9):18-21.

            [5]Abdelkader I,El-Sonbaty Y,El-Habrouk M.OPENMV: A PYTHON POWERED, EXTENSIBLE MACHINE VISION CAMERA[C]// International Conference on Computer Graphics, Visualization, Computer Vision and Image Processing. 2017.

            本文來(lái)源于《電子產(chǎn)品世界》2018年第8期第39頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();