巫任煌,沈榮標,于姍,孫漢成
(天津職業(yè)技術(shù)師范大學(xué) 自動化與電氣工程學(xué)院,天津,300222)
近年來,全球汽車保有量呈現(xiàn)快速增長趨勢,這導(dǎo)致了交通壓力的增加,從而增加停車位和停車場的需求。隨著城市化進程的加快,停車位的空間變得越來越有限,“停車難”問題在現(xiàn)代城市中變得越發(fā)突出。對于大部分駕駛員而言,將車倒入狹小的停車位中是一件非常困難的事情,尤其對于經(jīng)驗不足的駕駛員和一些女性駕駛員來說,即便是經(jīng)驗豐富的駕駛員,也需要經(jīng)過多次嘗試才能將車停好。在泊車過程中存在的問題主要包括以下幾個方面。
(1)倒車入庫和側(cè)方停車難以掌握:對于許多駕駛員而言,倒車入庫和側(cè)方停車都是比較困難的技能。特別是在大城市中,由于停車空間有限,將汽車駛?cè)氇M小的空間成為一項必備技能,但對于一些駕駛經(jīng)驗較少的司機來說,這是一項具有挑戰(zhàn)性的任務(wù)。
(2)駕駛員操作負擔(dān)大:在狹小的停車位中,駕駛員需要反復(fù)調(diào)整方向、控制車速,甚至需要多次停車和調(diào)整位置,這對于駕駛員來說是一項繁瑣且耗時的操作,增加了駕駛員的操作負擔(dān)和駕駛風(fēng)險。
(3)泊車事故率較高:由于泊車過程中需要非常精確地掌握車輛位置和方向,很容易出現(xiàn)剮蹭、碰撞等事故,導(dǎo)致車輛損壞和維修成本增加,同時也可能對其他車輛和周圍環(huán)境造成損害。
為解決這些問題,設(shè)計一款具有自動泊車功能的小車模型。該方案小車可以幫助駕駛員自動將車輛駛?cè)胫付ㄜ囄唬瑹o需人工操作,并且在停車過程中可以規(guī)避剮蹭,從而大大降低駕駛員的操作負擔(dān)和泊車事故率,是一種較為智能的便利化系統(tǒng)。
模型車的總體結(jié)構(gòu)如圖1 所示,該車是飛思卡爾競賽專用的C 型模型車。車體采用后輪電機驅(qū)動加前置轉(zhuǎn)向機構(gòu)來實現(xiàn)小車的前進、后退以及左右轉(zhuǎn)彎,與實際車輛行駛原理十分相似。底盤做工較好,安裝方便,無外殼,便于在車上搭載硬件,車的長寬分別為250mm×148mm。
圖1 模型車整體結(jié)構(gòu)圖
下面對模型車的各部分進行詳細介紹。
車體結(jié)構(gòu):模型車的車體采用C 型結(jié)構(gòu),包括底盤、車輪和車軸等部分。底盤做工較好,可以提供穩(wěn)固的支撐和固定硬件的位置。車體沒有外殼,便于在車上搭載各種硬件,如傳感器、控制器等。
電機驅(qū)動:模型車采用后輪電機驅(qū)動,通過電機控制車輪的轉(zhuǎn)動來實現(xiàn)小車的前進、后退。電機通常采用直流無刷電機,具有高效率、低噪音和長壽命等優(yōu)點。
前置轉(zhuǎn)向機構(gòu):模型車采用前置轉(zhuǎn)向機構(gòu)來實現(xiàn)小車的左右轉(zhuǎn)彎。轉(zhuǎn)向部分使用兩根拉桿連接到舵機,通過舵機來控制小車的左右轉(zhuǎn)。前置轉(zhuǎn)向機構(gòu)可以提供良好的懸掛和轉(zhuǎn)向性能,使得小車在行駛過程中可以穩(wěn)定地轉(zhuǎn)向。
車輪和車軸:模型車通常采用四個車輪和兩個車軸,其中后輪由電機驅(qū)動,前輪通過舵機控制轉(zhuǎn)向。車輪通常采用橡膠或硅膠材質(zhì),具有良好的摩擦性能和抓地力,使得小車在行駛過程中可以穩(wěn)定地行駛和轉(zhuǎn)彎。
安裝硬件:模型車的車體底盤沒有外殼,便于在車上搭載各種硬件,如傳感器、控制器、電池等。這使得模型車可以用于各種實際應(yīng)用,如自動駕駛、避障、路徑規(guī)劃等。安裝硬件時需要考慮硬件的大小、重量和固定方式,以確保模型車在行駛過程中的穩(wěn)定性和安全性。尺寸:模型車的尺寸為250mm×148mm,長寬適中。
STM32 單片機是一種由意法半導(dǎo)體公司開發(fā)的32 位微控制器,具有豐富的硬件資源和強大的處理能力。它的引腳數(shù)量為100pin,內(nèi)置512KB 大小的FLASH(閃存)用于儲存程序代碼,以及64KB 大小的SRAM(靜態(tài)隨機存取存儲器)用于臨時數(shù)據(jù)存儲,這使得它能夠滿足對主控芯片片內(nèi)資源、處理性能、實時性、外部中斷處理能力、功耗和成本等方面的要求。
在自動泊車控制系統(tǒng)中,基于STM32 微處理器的設(shè)計框圖如圖2 所示。系統(tǒng)通過采集小車周圍環(huán)境信息,經(jīng)過STM32 單片機的處理和分析,確定泊車位置,并由處理器控制小車的行駛角度、方向和動力,從而實現(xiàn)小車的自動泊位。主要的硬件組成部分包括STM32 單片機、OpenMV 攝像頭、電機驅(qū)動電路、傳感器電路等。
圖2 STM32 自動泊車控制系統(tǒng)框圖
在系統(tǒng)中,STM32 單片機起到了核心的作用。它負責(zé)接收來自O(shè)penMV 攝像頭的圖像信息,并通過圖像處理和分析算法,提取出環(huán)境信息,包括停車位的位置、大小和障礙物的位置等。然后,STM32 單片機根據(jù)這些信息計算出小車的行駛角度和方向,并通過電機驅(qū)動電路控制小車的動力,使其按照預(yù)定的路徑自動泊位。
為保證系統(tǒng)的穩(wěn)定性和安全性,STM32 單片機具有低功耗模式,可以在系統(tǒng)空閑時自動進入睡眠狀態(tài),從而降低功耗,延長電池壽命。同時,STM32 單片機的處理速度較快,可以高效地處理圖像信息和算法,保證系統(tǒng)的實時性和穩(wěn)定性。此外,STM32 單片機具有豐富的I/O 接口,可以連接多種外部傳感器和執(zhí)行器,實現(xiàn)與其他硬件模塊的通信和控制,從而實現(xiàn)更復(fù)雜的功能。
在系統(tǒng)中,OpenMV 攝像頭負責(zé)采集小車周圍的圖像信息,包括停車位和障礙物的位置等。它采用高分辨率圖像傳感器,并通過內(nèi)置的圖像處理算法對圖像進行處理,提取出系統(tǒng)所需的信息,并傳輸給STM32 單片機進行處理和分析。
電機驅(qū)動電路負責(zé)控制小車的動力系統(tǒng),包括電機的轉(zhuǎn)速和轉(zhuǎn)向。它接收STM32 單片機的控制信號,并根據(jù)信號調(diào)整電機的驅(qū)動方式。
本文所設(shè)計的視覺自動泊車系統(tǒng)硬件控制平臺分為兩部分,分別為車身控制部分和視頻信號處理部分。車身控制部分主要采集各傳感器信號以及由視頻信號處理部分傳送過來的信號,經(jīng)過數(shù)據(jù)處理,輸出信號給執(zhí)行機構(gòu),控制車輛的運動;視頻信號處理部分的功能是接收由攝像頭采集的視頻信號,并采用一系列算法對視頻流進行實時處理,得到所需信息,并將信息傳輸至車身控制部分的處理器。模型車控制系統(tǒng)硬件結(jié)構(gòu)如圖3 所示。
圖3 模型車控制系統(tǒng)結(jié)構(gòu)圖
六軸加速度電子陀螺儀傳感器姿態(tài)傾角溫補傳感器模塊JY60 采用高精度的陀螺加速度計芯片,通過處理器讀取ICM42605 芯片的測量數(shù)據(jù)然后通過串口輸出,免去了用戶開發(fā)ICM42605 的I2C 協(xié)議通信,同時精心的PCB 布局和工藝保證了ICM42605 收到外界的干擾小,陀螺儀傳感器信號連接說明圖如圖4 所示。陀螺儀傳感器是一個簡單易用的基于自由空間移動和手勢的定位的控制系統(tǒng),它原本是運用到直升機模型上,現(xiàn)已被廣泛運用于手機等移動便攜設(shè)備。模塊采用高精度的陀螺加速度計芯片,受干擾小,靈敏度高,測量精度高,穩(wěn)定性好??捎行瓿尚≤嚾霂鞂喬ソ嵌鹊谋O(jiān)測,能完全配合舵機的高速反應(yīng)。
圖4 陀螺儀傳感器信號連接說明圖
功率驅(qū)動選用H 橋電路,H 的橋臂采用MOS 管。本H橋模塊使用門電路、與MOS 管組合方式實現(xiàn)電機正反轉(zhuǎn)、制動及調(diào)速控制。既有較大的輸出電流又有類似L298 靈活的控制信號邏輯干擾處理方法:控制信號光耦隔離,電源尖峰電壓抑制,控制信號邏輯:使用門電路實現(xiàn)類似L298 的控制邏輯。
要使電機運轉(zhuǎn),必須使對角線上的一對MOS 管導(dǎo)通。當(dāng)Q1 管和Q4 管導(dǎo)通時(此時必須保Q2 和Q3 關(guān)斷),電流就從電源正極經(jīng)Q1 從左至右穿過電機,然后再經(jīng)Q4回到電源負極。另一對MOS 管2 相Q3 導(dǎo)通的時候(此時必須保證Q1 和Q4 關(guān)斷),電流從右至左流過電機,從而驅(qū)動電機沿逆時針方向轉(zhuǎn)動。電機驅(qū)動原理圖如5 所示。
軟件設(shè)計思路是根據(jù)OpenMV 測量數(shù)據(jù)處理后,通過DIR 方向接口和PWM 接口對電機轉(zhuǎn)速和舵機轉(zhuǎn)向進行控制。軟件要實現(xiàn)的功能如下:給定電機轉(zhuǎn)速、轉(zhuǎn)向;電機轉(zhuǎn)速連續(xù)可調(diào)并且具有良好的靜、動態(tài)性能,轉(zhuǎn)速設(shè)計采用PI 算法調(diào)節(jié);具有電機保護功能。當(dāng)電機出現(xiàn)堵轉(zhuǎn)、電流過大時能停止。系統(tǒng)整體流程圖如圖6 所示。
圖6 系統(tǒng)整體流程圖
PID 即:Proportional(比例)、Integral(積分)、Differential(微分)的縮寫。PID 控制算法是結(jié)合比例、積分和微分三個環(huán)節(jié)于一體的控制算法,它是運動系統(tǒng)中技術(shù)最為成熟、應(yīng)用最為廣泛的一種控制算法。連續(xù)控制系統(tǒng)的理想PID 控制規(guī)律為式(1),式中u(t)為PID 控制器的輸出信號;e(t)為誤差函數(shù);KP為比例調(diào)節(jié)系數(shù);KI為積分調(diào)節(jié)系數(shù);KD為微分調(diào)節(jié)系數(shù)。
在本系統(tǒng)中,巡線時的誤差有角度誤差與偏離誤差。利用差速的方法對偏離誤差進行修正。算法實現(xiàn)如下:式(2)中的error 為誤差量;total_error 為誤差累積量,式(3)中的u 為PID 算法的輸出。
根據(jù)PID 算法輸出的結(jié)果,調(diào)整左右電機轉(zhuǎn)速實現(xiàn)穩(wěn)定行駛速度的結(jié)果。
另外考慮到,在機器人進行拐彎時產(chǎn)生的角度誤差上,加入6 軸運動處理傳感器MPU6050,它集成3 軸MEMS陀螺儀,3 軸MEMS 加速度計,以及一個可擴展的數(shù)字運動處理器DMP。用它可以測得進行本身x、y、z 軸的傾角(俯仰角Pitch、翻滾角Roll、偏航角Yaw)。STM32 單片機通過I2C 讀取到MPU6050 的六個數(shù)據(jù)(三軸加速度AD 值、三軸角速度AD 值)經(jīng)過姿態(tài)融合后就可以得到Pitch、Roll、Yaw 角。在此課題中,MPU6050 用來控制小車每次轉(zhuǎn)向的角度,因此僅需考慮偏航角。式(4)為MPU6050 的偏航角(Yaw)的解算式,其中q0,q1,q2,q3 是DMP輸出的四元數(shù)。
同樣采用PID 控制算法,轉(zhuǎn)向時誤差量error 的表達式為式(5),其中Target_Angle 為目標轉(zhuǎn)向角度,Yaw 為實時偏航角,Yaw0 為轉(zhuǎn)向前的偏航角。
圖7 車輛控制算法流程圖
基于特征點檢測的線性回歸算法是一種用于控制小車運動的方法,其主要思想包括以下幾個步驟:
特征點檢測:首先,通過特征點檢測算法快速在小車視野中定位關(guān)鍵路徑元素,例如直線、彎道、十字路口、人形分岔口等。這可以通過計算圖像中像素的梯度、角點、邊緣等特征來實現(xiàn)。這些關(guān)鍵路徑元素在小車行駛中起著重要的導(dǎo)航作用。
圖8 特征點檢測流程圖
目標框選:在定位到關(guān)鍵路徑元素后,通過在圖像中對這些元素進行方框選取,將其位置信息存儲下來。方框可以通過固定大小或者根據(jù)路徑元素的大小自適應(yīng)調(diào)整。
線性回歸偏移量計算:對于每個選取的路徑元素,計算其在視野坐標系中的偏移量。這可以通過將圖像中的像素坐標轉(zhuǎn)換為視野坐標系中的坐標,并與目標框在視野坐標系中的位置信息進行比較得到。
偏移量疊加:將目標框在視野坐標系中的偏移量與路徑元素的線性回歸偏移量進行疊加,得到最終的路徑偏移量。這個偏移量表示了小車當(dāng)前位置相對于路徑的偏離程度,用于控制小車的運動。
圖像處理結(jié)果傳輸:通過串口將圖像處理結(jié)果傳輸給STM32控制器,以便控制小車的運動。STM32 控制器可以根據(jù)接收到的路徑偏移量調(diào)整小車的行駛速度和方向,使其保持在路徑中心行駛,從而實現(xiàn)穩(wěn)定的導(dǎo)航。
測試結(jié)果表明,該系統(tǒng)具有目標檢測準確、數(shù)據(jù)處理和轉(zhuǎn)向目標速度快等特點。搭建了倒車入庫的測試環(huán)境,實物如圖9 所示。
圖9 小車運行圖
系統(tǒng)目標檢測準確主要體現(xiàn)在目標檢測電路信號穩(wěn)定和處理器處理算法優(yōu)化等方面。通過分別放置邊長為25cm、高度為10cm 的底為正方形的木箱在庫1 庫2 庫3,測試車輛在車庫鄰庫有車時轉(zhuǎn)向目標的準確率和速度。測量結(jié)果如表1 所示。
表1 目標轉(zhuǎn)向測試結(jié)果
表2為在不同顏色和不同長度下10次測試中脫軌次數(shù)記錄。
表2 10次測試中脫軌次數(shù)
系統(tǒng)目標檢測準確主要體現(xiàn)在目標檢測電路信號穩(wěn)定和處理器處理算法優(yōu)化等方面。通過車庫有無車以及車庫特征點,以60s 時間內(nèi)計算系統(tǒng)目標檢測的準確率。測量結(jié)果如表3 所示。
本文介紹了一種基于STM32 的自動泊車硬件系統(tǒng)設(shè)計。系統(tǒng)采用72MHz 主頻的 STM32F103 芯片作為處理器,接口資源豐富能夠滿足各項數(shù)據(jù)采集的處理要求。編寫控制算法,能夠?qū)圀w在停車過程中遇到的各種情況作出準確處理,確保了泊車的準確性、數(shù)據(jù)處理的快速性可靠性和準確性。該硬件系統(tǒng)對于日后機器車系統(tǒng)的開發(fā)和研究具有重要的作用,其應(yīng)用前景廣闊。