国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Arduino的智能小車(chē)自動(dòng)并行泊車(chē)系統(tǒng)

2021-06-07 09:08
關(guān)鍵詞:泊車(chē)障礙物小車(chē)

荊 鑫

(1.黑龍江科技大學(xué)研究生學(xué)院,黑龍江 哈爾濱 150028 ;2.布達(dá)佩斯科技和經(jīng)濟(jì)大學(xué)電氣工程與信息學(xué)院,匈牙利 布達(dá)佩斯 1114)

0 引言

自動(dòng)汽車(chē)駕駛系統(tǒng)對(duì)提高駕駛員的安全和進(jìn)一步減少交通事故中的傷亡產(chǎn)生了積極影響[1]。近年來(lái),各種各樣的傳感器和控制器憑借成本低和精度高的優(yōu)點(diǎn),可以很容易解決現(xiàn)實(shí)生活中自動(dòng)駕駛汽車(chē)的許多問(wèn)題。目前,已經(jīng)安裝了半自動(dòng)或全自動(dòng)泊車(chē)輔助系統(tǒng)的汽車(chē)有福特??怂?、豐田普銳斯和梅賽德斯。特斯拉、奧迪和谷歌等公司也在向市場(chǎng)推出安全可靠的自動(dòng)駕駛系統(tǒng)[1]。Arduino是一個(gè)操作方便、易于使用的開(kāi)源編程平臺(tái)[2],它可以在Windows、Macintosh OS X和Linux三大主流操作系統(tǒng)上運(yùn)行。對(duì)于初學(xué)者來(lái)說(shuō),極易掌握,同時(shí)它在編程方面也有足夠的靈活性。簡(jiǎn)單的開(kāi)發(fā)方式使學(xué)習(xí)者能更快地完成項(xiàng)目的研究開(kāi)發(fā)工作,大大節(jié)約了學(xué)習(xí)的成本,縮短了開(kāi)發(fā)的周期。它具有C語(yǔ)言的開(kāi)發(fā)環(huán)境,主要包括Arduino電路板和 Arduino IDE開(kāi)發(fā)環(huán)境。選擇Arduino作為智能小車(chē)控制器的原因是它能通過(guò)控制各種各樣的傳感器來(lái)感知周?chē)h(huán)境,具有大量的可用庫(kù)和豐富的接口,例如數(shù)字I/O口、模擬I/O口,同時(shí)它還支持SPI、IIC和UART串口通信。自動(dòng)并行泊車(chē)技術(shù)需要小車(chē)精確控制移動(dòng)軌跡以及仔細(xì)觀(guān)察周?chē)沫h(huán)境,因此,通過(guò)Arduino實(shí)現(xiàn)自動(dòng)并行泊車(chē)是一個(gè)可行的計(jì)劃。

1 系統(tǒng)介紹

根據(jù)合理假設(shè)來(lái)編寫(xiě)泊車(chē)算法和放置超聲波傳感器。模擬小車(chē)在真實(shí)環(huán)境的道路右側(cè)以恒定的轉(zhuǎn)速向前行駛,準(zhǔn)備尋找可用泊車(chē)位進(jìn)行泊車(chē)。在這種情況下,假設(shè)小車(chē)的右側(cè)由已經(jīng)停放的車(chē)輛和泊車(chē)位組成,小車(chē)上共設(shè)置2個(gè)超聲波傳感器,分別設(shè)置在小車(chē)的正前方和右側(cè)后方。在向前直行的過(guò)程中,右側(cè)超聲波傳感器檢測(cè)車(chē)輛與右側(cè)障礙物的距離,判斷該距離是否大于預(yù)設(shè)的泊車(chē)位寬度。如果車(chē)輛與右側(cè)障礙物的距離達(dá)不到預(yù)設(shè)值,那么小車(chē)將繼續(xù)行駛。如果寬度滿(mǎn)足要求,那么小車(chē)?yán)^續(xù)行駛,從而測(cè)量泊車(chē)位的長(zhǎng)度;如果長(zhǎng)度也達(dá)到程序中設(shè)計(jì)的數(shù)值,那么小車(chē)停止前進(jìn),并執(zhí)行并行泊車(chē)的動(dòng)作。否則,小車(chē)會(huì)繼續(xù)前進(jìn)尋找合適的停車(chē)位。自主泊車(chē)過(guò)程如圖1所示。

圖1 自動(dòng)泊車(chē)過(guò)程

2 系統(tǒng)硬件

2.1 ArduinoMega2560

Arduino是一個(gè)功能強(qiáng)大的控制器,它可以用來(lái)構(gòu)建數(shù)字設(shè)備和交互對(duì)象,從而感知和控制周?chē)奈锢憝h(huán)境。ATmega2560是一款基于AVR增強(qiáng)RISC架構(gòu)的低功耗CMOS 8位微控制器,它有54路數(shù)字輸入/輸出端口(其中15個(gè)可以作為PWM輸出)和16路模擬輸入,電路板如圖2所示。通過(guò)pinMode()、digitalWrite()和digitalRead()等功能,Mega上的54個(gè)數(shù)字引腳都可以用作輸入或輸出。Arduino Mega 2560在5 V的電壓下工作,可以通過(guò)3種方式供電,而且能自動(dòng)選擇供電方式。在自動(dòng)泊車(chē)實(shí)驗(yàn)中,選擇USB接口直接供電。Mega 2560作為小車(chē)的控制中樞,驅(qū)動(dòng)小車(chē)的直流減速電機(jī)使小車(chē)按照設(shè)計(jì)者的意愿進(jìn)行運(yùn)動(dòng),超聲波傳感器也連接到Arduino板并集成到自動(dòng)泊車(chē)系統(tǒng)中。因此,可以將程序上傳至Arduino Mega 2560電路板,從而實(shí)現(xiàn)智能小車(chē)的自動(dòng)泊車(chē)[3]。

圖2 ArduinoMega2560

2.2 超聲波傳感器

在智能小車(chē)上搭載2個(gè)HC-SR04超聲波傳感器,分別放置在小車(chē)的正前方和右后側(cè),測(cè)量小車(chē)與前方障礙物和右側(cè)障礙物的距離,該傳感器可以在2 cm~400 cm的距離內(nèi)提供測(cè)距功能,測(cè)距精度可以達(dá)到0.3 cm。HC-SR04有4個(gè)引腳,其中“Trig”引腳和“Echo”引腳與Arduino Mega 2560的數(shù)字口相連,并以高低電平的方式傳輸距離信息[4]。另外2個(gè)引腳為傳感器供電。超聲波傳感器可以使智能小車(chē)在行進(jìn)過(guò)程中及時(shí)發(fā)現(xiàn)障礙物,并及時(shí)引導(dǎo)智能小車(chē)轉(zhuǎn)向,從而避開(kāi)障礙物。

2.3 A、B相位編碼器直流減速電機(jī)

采用尾部帶A、B相位編碼器的直流減速電機(jī),該電機(jī)可以直接輸出方波,不需要添加電路。在編寫(xiě)程序時(shí),把前一個(gè)A、B相位的輸出值保存起來(lái),將其與下一個(gè)A、B相位的輸出值做比較,循環(huán)往復(fù),就可以得出碼盤(pán)轉(zhuǎn)動(dòng)的方向和轉(zhuǎn)速,再用碼盤(pán)轉(zhuǎn)動(dòng)的方向和轉(zhuǎn)速判斷小車(chē)的行進(jìn)方向和行進(jìn)速度[5]??梢該?jù)此設(shè)計(jì)一個(gè)PID算法來(lái)保持小車(chē)左右電機(jī)的轉(zhuǎn)速相同,使其穩(wěn)定地向前行駛。

3 系統(tǒng)軟件

3.1 超聲波傳感器測(cè)距程序設(shè)計(jì)

超聲波測(cè)距裝置的主要原理是根據(jù)發(fā)射超聲波和接收超聲波產(chǎn)生的時(shí)差測(cè)算小車(chē)與障礙物的距離[6]。超聲波傳感器向一定方向發(fā)射超聲波,同時(shí)開(kāi)始計(jì)時(shí),超聲波在空氣中傳播,遇到障礙物后超聲波立即返回,超聲波傳感器收到反射波就會(huì)立即停止計(jì)時(shí)。已知超聲波經(jīng)過(guò)的總路程L=[(T×344)/2],則T=(2L)/344=0.0058L(T為時(shí)間)。具體原理如下:1)先在Trig端輸入1個(gè)長(zhǎng)為2 μs的低電平方波,再在Trig端輸入1個(gè)長(zhǎng)為10 us的高電平方波。2)輸入方波后,傳感器會(huì)自動(dòng)發(fā)射8個(gè)40 kHz的超聲波,檢查是否有信號(hào)返回。如果有信號(hào)返回,那么發(fā)射超聲波測(cè)距,Echo端的電平由0變?yōu)?,定時(shí)器開(kāi)始計(jì)時(shí)。3)當(dāng)返回的超聲波被傳感器接收時(shí),Echo端的電平由1變?yōu)?,定時(shí)器停止計(jì)時(shí),定時(shí)器記錄的時(shí)間差即為超聲波由發(fā)射到返回的時(shí)長(zhǎng)。

3.2 電機(jī)轉(zhuǎn)速PID控制程序設(shè)計(jì)

在小車(chē)行駛的過(guò)程中,保證小車(chē)筆直前進(jìn)的前提是要保持小車(chē)左右電機(jī)的轉(zhuǎn)速相同。PID調(diào)節(jié)器是一種算法簡(jiǎn)單、魯棒性好和可靠性高的控制策略,適用于可建立精確數(shù)學(xué)模型的控制系統(tǒng)。在自動(dòng)并行泊車(chē)系統(tǒng)中選擇使用增量式PID控制算法。如圖3所示,給定參考值r(t)和實(shí)際輸出值c(t)構(gòu)成控制偏差e(t),PID調(diào)節(jié)器通過(guò)線(xiàn)性組合將偏差的比例、積分以及微分構(gòu)成控制量u(t),用控制量對(duì)被控對(duì)象進(jìn)行控制。r(t)為預(yù)先設(shè)定小車(chē)電機(jī)的轉(zhuǎn)速,c(t)為小車(chē)實(shí)際電機(jī)的轉(zhuǎn)速,e(t)=c(t)-r(t)為轉(zhuǎn)速誤差,將e(t)作為PID控制器的輸入、u(t)為PID控制器的輸出,并作用到小車(chē)電機(jī)上。比例系數(shù)的作用是對(duì)速度偏差作出反應(yīng)。電機(jī)轉(zhuǎn)速偏差一旦產(chǎn)生就會(huì)使小車(chē)速度向偏差減少的方向變化。積分環(huán)節(jié)會(huì)消除靜態(tài)誤差,只要存在轉(zhuǎn)速偏差,積分作用就會(huì)不斷增大。微分環(huán)節(jié)的作用是阻止偏差的變化,偏差變化越快,微分環(huán)節(jié)的輸出就越大[7]。

PID調(diào)節(jié)器通過(guò)改變輸出PWM的值(范圍為0~255)來(lái)改變電機(jī)的轉(zhuǎn)速。r為設(shè)定轉(zhuǎn)速,n為實(shí)際轉(zhuǎn)速,u為PWM的輸入。通過(guò)A、B相位測(cè)出電機(jī)的轉(zhuǎn)速,與設(shè)定值比較得到轉(zhuǎn)速誤差,將轉(zhuǎn)速誤差送進(jìn)PID調(diào)節(jié)器進(jìn)行處理,最終消除小車(chē)的轉(zhuǎn)速誤差,使左右電機(jī)的轉(zhuǎn)速相等。

3.3 自動(dòng)并行泊車(chē)程序設(shè)計(jì)

小車(chē)以恒定的轉(zhuǎn)速直線(xiàn)行駛,與右側(cè)路沿保持固定距離d,此時(shí)變量park_status的值為0。當(dāng)小車(chē)經(jīng)過(guò)一個(gè)泊車(chē)位時(shí),側(cè)面超聲波傳感器將判斷該泊車(chē)位的寬度是否大于設(shè)定的寬度B。如果寬度不夠,小車(chē)將繼續(xù)行駛;如果寬度足夠,小車(chē)將繼續(xù)行駛以測(cè)量泊車(chē)位長(zhǎng)度L(如圖4所示),此時(shí)變量park_status的值為1。右側(cè)傳感器首次測(cè)量到距離大于設(shè)定的停車(chē)寬度為t1時(shí)刻,變量park_status的值變?yōu)?。右側(cè)傳感器測(cè)量到距離小于設(shè)定的停車(chē)寬度為t2時(shí)刻,變量park_status的值變?yōu)?。再根據(jù)已知的電機(jī)轉(zhuǎn)速就可以得出泊車(chē)位的長(zhǎng)度。由此可以完成對(duì)泊車(chē)位的選擇。泊車(chē)位的判斷程序如下。

圖3 PID調(diào)節(jié)器

在找到合適的泊車(chē)位后,小車(chē)開(kāi)始倒車(chē)。首先,當(dāng)變量park_status=4時(shí),小車(chē)先向后倒退一段距離,這是為了留出緩沖區(qū),避免在倒車(chē)時(shí)與其他障礙物碰撞。其次,讓小車(chē)右側(cè)電機(jī)停止轉(zhuǎn)動(dòng),左側(cè)電機(jī)向后轉(zhuǎn)動(dòng),調(diào)整姿態(tài)后,向后倒退。再次,保持小車(chē)左側(cè)電機(jī)停止轉(zhuǎn)動(dòng),右側(cè)電機(jī)向后轉(zhuǎn)動(dòng)。此時(shí)小車(chē)車(chē)體幾乎全部進(jìn)入泊車(chē)位。最后,只需要對(duì)小車(chē)姿態(tài)進(jìn)行微調(diào),就可以完成泊車(chē),該操作完成后給變量park_status賦值為5。當(dāng)變量park_status=5時(shí),2個(gè)傳感器測(cè)量小車(chē)與右側(cè)障礙物和前方障礙物的距離。如果距離大于設(shè)定值,就再次微調(diào)小車(chē)的姿態(tài),直到兩側(cè)距離都小于設(shè)定值。完成之后給變量park_status賦值為6,小車(chē)停止運(yùn)動(dòng),完成整個(gè)自動(dòng)泊車(chē)過(guò)程。自動(dòng)泊車(chē)的程序如下。

圖4 測(cè)量泊車(chē)位長(zhǎng)度

4 測(cè)試

測(cè)試時(shí)將小車(chē)放置在模擬道路的起點(diǎn),在小車(chē)的前方右側(cè)預(yù)留1個(gè)足夠小車(chē)泊車(chē)的泊車(chē)位。如果小車(chē)在不碰撞的情況下完全進(jìn)入泊車(chē)位,就說(shuō)明自動(dòng)并行泊車(chē)系統(tǒng)設(shè)計(jì)成功。由于每次測(cè)試時(shí)小車(chē)的運(yùn)動(dòng)軌跡并不完全一致,例如電機(jī)編碼器的精度限制和小車(chē)的車(chē)輪滑移都會(huì)導(dǎo)致小車(chē)的運(yùn)動(dòng)軌跡發(fā)生改變。因此多次測(cè)試泊車(chē)過(guò)程并手動(dòng)調(diào)試代碼后,消除了實(shí)際誤差,證明自動(dòng)泊車(chē)實(shí)驗(yàn)成功。

5 結(jié)論

該設(shè)計(jì)開(kāi)發(fā)的自動(dòng)并行泊車(chē)系統(tǒng)具有良好的性能。根據(jù)測(cè)試的成果,該設(shè)計(jì)實(shí)現(xiàn)了基本目標(biāo)。但是仍有許多方法可以提高自動(dòng)泊車(chē)系統(tǒng)的質(zhì)量和性能,例如添加其他傳感器(激光雷達(dá)傳感器)或者使用更高級(jí)的算法(SLAM算法)等。綜上所述,在現(xiàn)代社會(huì)中,自動(dòng)泊車(chē)系統(tǒng)是非常有前景的,但是由于真實(shí)交通的不可預(yù)測(cè)性,因此還需要對(duì)該系統(tǒng)進(jìn)行更多的研究。

猜你喜歡
泊車(chē)障礙物小車(chē)
基于插電式混動(dòng)汽車(chē)的自動(dòng)泊車(chē)控制策略
基于MATLAB的平行泊車(chē)路徑規(guī)劃
基于CarSim的平行泊車(chē)仿真分析
大車(chē)?yán)≤?chē)
自制小車(chē)來(lái)比賽
高低翻越
Arrive平臺(tái)新增智能泊車(chē)推薦引擎 幫助找到最佳泊車(chē)地點(diǎn)
SelTrac?CBTC系統(tǒng)中非通信障礙物的設(shè)計(jì)和處理
劉老師想開(kāi)小車(chē)
兩輪自平衡小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)
商洛市| 丰都县| 连南| 承德县| 香河县| 皋兰县| 临沭县| 美姑县| 石城县| 驻马店市| 桦甸市| 连平县| 高雄市| 诸暨市| 襄城县| 修武县| 邵东县| 包头市| 饶河县| 交口县| 会宁县| 哈密市| 布尔津县| 杭锦旗| 清水县| 偃师市| 通榆县| 巴塘县| 宿迁市| 建始县| 扎囊县| 廊坊市| 保靖县| 屏东市| 闵行区| 古丈县| 马尔康县| 庆城县| 沽源县| 锦州市| 磴口县|