新聞中心

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

基于April Tag標記定位的自動泊車系統(tǒng)實現(xiàn)

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

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

本文引用地址:http://www.butianyuan.cn/article/201807/389575.htm

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

*2017年“瑞薩杯”全國大學生電子設(shè)計競賽高職高專組最高獎“瑞薩杯獎”

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

0 引言

  本設(shè)計為2017年“瑞薩杯”大學生電子設(shè)計競賽高職高專組自動泊車系統(tǒng)(L題)的解決方案,本題的核心要求是設(shè)計并制作一個泊車系統(tǒng),要求電動小車能自動駛?cè)胫付ǖ耐\囄唬\嚭竽茏詣玉偝鐾\噲?。為了達成核心要求,我們設(shè)計了這套使用做小車車輪的方式使小車具備全向移動能力,并通過識別定位來定位小車位置的自動泊車方案。通過利用在圖像識別定位開發(fā)方面簡單快速的特點,以及全向移動的能力使得糾偏算法大大簡化。使得我們得以在緊張的比賽時間內(nèi)完成本套方案。

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

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

2 檢測碰撞電路

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

3 攝像頭模塊

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

4 麥克納姆輪

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

5 軟件設(shè)計

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

6 結(jié)論

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

  參考文獻:

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

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

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

  [4]石維亮,王興松,賈茜.基于Mecanum輪的全向移動機器人的研制[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.

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



評論


相關(guān)推薦

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

關(guān)閉