孫亞星 ,朱佳佳 ,孟 暢 ,張志強(qiáng)
(1.南京理工大學(xué)工程訓(xùn)練中心,江蘇 南京 210094;2.南京理工大學(xué)機(jī)械工程學(xué)院,江蘇 南京 210094;3.南京理工大學(xué)電子工程與光電技術(shù)學(xué)院,江蘇 南京 210094)
低碳越障小車作為一種簡(jiǎn)單的低能耗輪式機(jī)器人,能夠?qū)崿F(xiàn)環(huán)境信息感知(障礙識(shí)別)、路徑規(guī)劃(軌跡判斷)及行為決策(自動(dòng)轉(zhuǎn)向、上下坡和制動(dòng))等功能[1]。同時(shí),它涉及機(jī)械設(shè)計(jì)、傳感器和自動(dòng)控制等理論,以重力勢(shì)能作為唯一的前進(jìn)驅(qū)動(dòng)力,是典型的智能化、綠色化機(jī)電產(chǎn)品[1]。
本文以低碳越障小車為研究對(duì)象,設(shè)計(jì)了一套以ATmega1284P單片機(jī)為核心的控制系統(tǒng),包括電源轉(zhuǎn)換模塊、傳感器模塊和執(zhí)行機(jī)構(gòu)等;采用狀態(tài)機(jī)的程序設(shè)計(jì)思想,針對(duì)不同的路況,設(shè)計(jì)了一套以沿邊PID直行程序?yàn)楹诵牡目刂瞥绦颉T摽刂葡到y(tǒng)能夠?qū)崿F(xiàn)自動(dòng)轉(zhuǎn)向及制動(dòng)等功能。
采用模塊化設(shè)計(jì)思想,將低碳越障小車設(shè)計(jì)為機(jī)械系統(tǒng)和控制系統(tǒng)兩部分。機(jī)械系統(tǒng)采用三輪結(jié)構(gòu)(其中:左邊小輪為轉(zhuǎn)向輪,另外兩輪為行進(jìn)輪/驅(qū)動(dòng)輪)[2-4]。低碳越障小車結(jié)構(gòu)如圖1所示。小車上方懸掛1 kg重物(砝碼),通過滑輪系傳動(dòng),將重力勢(shì)能轉(zhuǎn)化為驅(qū)動(dòng)力矩,作為小車行駛能量[2-4]。
圖1 低碳越障小車結(jié)構(gòu)圖
控制系統(tǒng)主要通過激光測(cè)距傳感器GY-530來感知環(huán)境信息(障礙)、通過姿態(tài)傳感器MPU-6050感知自身姿態(tài),再由程序判斷得到小車所處的環(huán)境,進(jìn)而由執(zhí)行機(jī)構(gòu)舵機(jī)MG90s控制機(jī)械系統(tǒng),實(shí)現(xiàn)障礙檢測(cè)、上下坡控制和自動(dòng)轉(zhuǎn)向等功能。
本文所設(shè)計(jì)的控制系統(tǒng)主要包括:充電電池(或移動(dòng)充電寶)、穩(wěn)壓電源模塊(LM7805)、ATmega1284P單片機(jī)最小系統(tǒng)模塊、傳感器組合和舵機(jī)組合等??刂葡到y(tǒng)結(jié)構(gòu)圖如圖2所示[5-6]。
圖2 控制系統(tǒng)結(jié)構(gòu)圖
單片機(jī)是整個(gè)控制系統(tǒng)的核心。因此,對(duì)單片機(jī)的選型,本文考慮的因素主要有以下幾項(xiàng)。
①性能要求。需要對(duì)多種傳感器進(jìn)行定時(shí)信息采樣;控制兩個(gè)舵機(jī)的運(yùn)動(dòng);對(duì)定時(shí)采樣的傳感器信息進(jìn)行分析判斷,根據(jù)控制算法給出控制命令。
②焊接要求。主控板(除驅(qū)動(dòng)電路外的所有電路)必須方便現(xiàn)場(chǎng)焊接和調(diào)試,這是低碳越障小車走進(jìn)課堂的必然要求。因此,單片機(jī)選型時(shí),應(yīng)結(jié)合學(xué)生的焊接技能水平,慎重選擇。
③成本要求。在單片機(jī)選型時(shí),應(yīng)考慮成本的因素。當(dāng)然,也不能因?yàn)榭紤]成本,而影響到系統(tǒng)的整體性能。
綜合以上考慮,本文選用DIP-40封裝的ATmega1284P單片機(jī)[7-8]。
在整個(gè)控制系統(tǒng)中,ATmega1284P 單片機(jī)、傳感器組合和舵機(jī)組合均使用5 V工作電壓。
本文選用7.2 V充電電池或移動(dòng)充電寶作為供電電源,并通過降壓模塊LM7805穩(wěn)定到5 V。LM7805穩(wěn)壓模塊結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定可靠,得到了廣泛的應(yīng)用,但輸出電流小。經(jīng)實(shí)測(cè),本文控制系統(tǒng)需要選用兩塊LM7805模塊進(jìn)行穩(wěn)壓。
感知環(huán)境中的障礙物,需要使用距離傳感器。通常使用超聲波傳感器。在實(shí)際測(cè)試中發(fā)現(xiàn),超聲波的發(fā)散角度偏大,容易造成誤判斷??紤]到激光的定向發(fā)光特性,本文選用激光測(cè)距傳感器GY-530代替超聲波傳感器。實(shí)踐證明,激光測(cè)距傳感器的定位精度高、性能穩(wěn)定可靠,在價(jià)格成本上也沒有明顯增加。
感知小車的姿態(tài),需要使用到姿態(tài)傳感器。在本文設(shè)計(jì)中,選用MPU-6050模塊[1,9]。該模塊又稱三軸陀螺儀+三軸加速器,能夠同時(shí)測(cè)量三個(gè)軸的角度、角速度和加速度,進(jìn)而判斷小車是否處于轉(zhuǎn)向或上下坡階段。
舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,精度高、控制使用靈活,適用于需要不斷變化角度并可以保持的控制系統(tǒng)。因此,本文中的轉(zhuǎn)向部分和剎車部分,均使用舵機(jī)來驅(qū)動(dòng),具體使用的舵機(jī)型號(hào)為MG90s。舵機(jī)采用脈沖寬度調(diào)制(pulse width modulation,PWM)波進(jìn)行控制,控制方法簡(jiǎn)單[1]。
控制系統(tǒng)采用前后臺(tái)程序設(shè)計(jì)結(jié)構(gòu),其流程如圖3所示。
圖3 控制系統(tǒng)程序流程圖
程序先進(jìn)行系統(tǒng)初始化,配置相關(guān)的寄存器,在判斷出發(fā)起始位置之后(采用I/O信息來判斷出發(fā)起始位置),進(jìn)入循跡模式運(yùn)行。
后臺(tái)采用30 ms的定時(shí)中斷程序采集(定時(shí)更新)傳感器數(shù)據(jù);前臺(tái)則根據(jù)定時(shí)更新的傳感器數(shù)據(jù),對(duì)位置信息進(jìn)行判斷處理,單片機(jī)再將相應(yīng)的PWM控制信號(hào)發(fā)送給舵機(jī)模塊,以控制小車的運(yùn)行狀態(tài),從而達(dá)到賽道障礙檢測(cè)、自動(dòng)轉(zhuǎn)向和剎車的功能。
激光測(cè)距傳感器GY-530、姿態(tài)傳感器MPU-6050與微程序控制器(microprogram controller,MCU)的通信均支持I2C協(xié)議。而ATmega1284P也支持I2C。因此,本文采用I2C協(xié)議作為通信方式。
根據(jù)不同的環(huán)境路況,在循環(huán)模式中,主要完成直線道避障、半圓道避障和直線道上下坡控制等功能。
通常,直線道上的障礙墻是隨機(jī)擺放的??紤]到小車自身的尺寸大小,只要求兩個(gè)相鄰障礙墻之間的最小距離不小于1 m,因此,障礙墻擺放方式有很多種。為此,本文考慮了直線道上障礙墻擺放的極限情況,即兩個(gè)相鄰障礙墻交錯(cuò)擺放,且兩者之間的距離為1 m,如圖4所示。這種障礙墻的極限擺放方式,能夠適應(yīng)障礙墻隨機(jī)擺放的要求。因此,極限直線段賽道避障模塊是整個(gè)控制程序設(shè)計(jì)的關(guān)鍵。
圖4 直線段賽道障礙墻擺放的極限情況圖
本文采用狀態(tài)機(jī)編程思想來設(shè)計(jì)直線道避障模塊的程序。
整個(gè)避障過程如下:假設(shè)小車從左下起點(diǎn)出發(fā),首先是左PID直行;當(dāng)檢測(cè)到小車正前方60 cm處有障礙物時(shí),即2號(hào)障礙墻,小車右轉(zhuǎn)90°,通過MPU-6050模塊判斷動(dòng)作是否完成;動(dòng)作完成后,小車進(jìn)入沿障礙墻的左PID,這個(gè)過程比較短暫;當(dāng)檢測(cè)到小車正前方60 cm處有障礙物時(shí),即右直線擋板,小車左轉(zhuǎn)90°;MPU-6050模塊判斷動(dòng)作完成后,小車進(jìn)入右PID直行操作。當(dāng)然,若小車從右下起點(diǎn)出發(fā),這個(gè)過程是類似的。以左賽道啟動(dòng)為例,直線道避障程序流程如圖5所示。
圖5 直線道避障程序流程圖
整個(gè)避障過程所涉及的狀態(tài)有:左/右PID直行、左/右轉(zhuǎn)90°這四種狀態(tài)。所涉及的轉(zhuǎn)移條件分別是:小車正前方60 cm處檢測(cè)到障礙、左/右轉(zhuǎn)90°動(dòng)作完成。由圖5可知,整個(gè)程序的基本模塊是沿邊PID直行(左/右PID直行)程序。也就是說,沿邊PID直行程序是整個(gè)控制程序設(shè)計(jì)的基礎(chǔ)。
需要說明的是,半圓道避障可以通過執(zhí)行右PID直行程序來實(shí)現(xiàn)。
直線道上下坡模塊,主要用于控制小車從坡道上沖下的速度,并防止翻車。首先需要判斷小車是否位于有坡道的直線段賽道,然后判斷小車是否已經(jīng)經(jīng)歷了上坡并正處于下坡的過程中,進(jìn)而輸出PWM波來控制剎車舵機(jī)。這些都是基于姿態(tài)傳感器MPU-6050模塊實(shí)現(xiàn)的。
在實(shí)際控制系統(tǒng)中,PID控制得到了廣泛應(yīng)用[10-12]。本文設(shè)計(jì)中,采用PID控制實(shí)現(xiàn)小車沿左/右直線邊直行功能。
程序設(shè)計(jì)的具體思路是:將小車離直線道邊沿的距離作為控制目標(biāo),使用PID算法,控制舵機(jī)運(yùn)動(dòng)的PWM波作為輸出,實(shí)現(xiàn)小車沿賽道邊沿直行。
在測(cè)試跑道一側(cè)直線道上間隔不等(隨機(jī))地交錯(cuò)設(shè)置多個(gè)障礙墻,相鄰障礙墻之間最小間距為1 m。另一側(cè)直線道上設(shè)置有一段坡道,坡道由上坡道、坡頂平道和下坡道組成。兩端則為半圓道。
經(jīng)過實(shí)測(cè),在機(jī)械系統(tǒng)配合下,本文設(shè)計(jì)的控制系統(tǒng)能夠很好地滿足設(shè)計(jì)要求。
所設(shè)計(jì)的低碳越障小車,分別在距離邊沿20 cm、30 cm和40 cm三種情況下,均能正常完成沿左/右邊PID直行操作;在距離坡道1 m、3 m和5 m等條件下啟動(dòng)小車,均能夠正常上下坡,沒有發(fā)生翻車的現(xiàn)象,充分說明了剎車模塊的可靠性。在隨機(jī)擺放10個(gè)障礙墻的情況下,小車可以跑35 m左右,經(jīng)歷了直線道避障、半圓道避障和直線道上下坡等階段。
低碳越障小車作為典型的智能化、綠色化機(jī)電產(chǎn)品,越來越受到全社會(huì)的關(guān)注。本文所設(shè)計(jì)的控制系統(tǒng),使用ATmega1284P單片機(jī)作為核心,采用激光測(cè)距傳感器GY-530和姿態(tài)傳感器MPU-6050模塊來感知跑道環(huán)境,并以舵機(jī)MG90s作為執(zhí)行機(jī)構(gòu)。根據(jù)不同路況,應(yīng)用狀態(tài)機(jī)程序設(shè)計(jì)思想,設(shè)計(jì)了一套以沿邊PID直行模塊為基礎(chǔ)的控制程序。經(jīng)過測(cè)試,該控制系統(tǒng)能夠?qū)崿F(xiàn)直線道與半圓道避障以及直線道上下坡等功能。
作為低碳環(huán)保型產(chǎn)品,該小車的控制系統(tǒng)還有進(jìn)一步開發(fā)的空間。比如,實(shí)現(xiàn)能量管理策略以提高重力勢(shì)能的利用率,減輕整個(gè)控制系統(tǒng)的質(zhì)量以提高整個(gè)小車的續(xù)航能力等。