王 粵
(棗莊廣播電視臺(tái),山東 棗莊 277000)
智能尋跡車在廣播電臺(tái)、廠房、圖書館、餐廳、實(shí)驗(yàn)室等場(chǎng)所的智能巡檢或智能交互等場(chǎng)景中有廣泛的應(yīng)用.車輛集成了機(jī)器視覺、傳感技術(shù)、自動(dòng)控制技術(shù)、人工智能技術(shù)等多學(xué)科領(lǐng)域?yàn)橐惑w,有良好的應(yīng)用前景[1-5].但是傳統(tǒng)智能尋跡廣播直播車系統(tǒng)對(duì)道路要求較高,不能對(duì)道路模糊處理,在尋跡有較大的提升空間.并且車輛在轉(zhuǎn)向中電機(jī)沒有控制,車輛運(yùn)行穩(wěn)定性較差[6-8].
為解決這些問題,本文對(duì)智能尋跡廣播直播車軟件設(shè)計(jì)部分進(jìn)行優(yōu)化改進(jìn).整車采用OV7725數(shù)字?jǐn)z像頭實(shí)現(xiàn)路面信息的采集,采用編碼器等實(shí)現(xiàn)對(duì)整車車速的采集,采用PID控制、模糊PID等算法,在優(yōu)化整車PID參數(shù)的基礎(chǔ)上提高車輛在轉(zhuǎn)向的穩(wěn)定性[9-10].
軟件是智能尋跡廣播直播車系統(tǒng)的核心.該控制系統(tǒng)主要由人機(jī)交互部分、圖像獲取與處理部分、整車控制三大部分組成.其中,圖像獲取與處理部分主要完成圖像采集與處理、偏差提??;整車控制主要完成整車的速度和方向的控制.軟件系統(tǒng)結(jié)構(gòu)如圖1所示.
初始化模塊是整車控制程序的基礎(chǔ),下面對(duì)時(shí)鐘、串口以及PWM的初始化進(jìn)行介紹.
1.1.1 時(shí)鐘初始化
單片機(jī)在時(shí)鐘初始化后可以通過鎖相環(huán)(PLL)將系統(tǒng)的時(shí)鐘系統(tǒng)提高,寄存器中某些位、倍頻公式如下:
MCG_CLK_MHZ=
(1)
(2)
(3)
(4)
(5)
其中,系統(tǒng)的外部晶振為50 MHz.CORE_DIV為系統(tǒng)時(shí)鐘分頻系數(shù),它的初始值為0.BUS_DIV為總線時(shí)鐘分頻系數(shù),它的初始值為1.FLEX_DIV-flex為時(shí)鐘分頻系數(shù),它的初始值為9.FLASH_DIV為flash時(shí)鐘分頻系數(shù),它的初始值為8.
1.1.2 串口初始化
為了便于調(diào)試,該設(shè)計(jì)利用UART串口通訊實(shí)現(xiàn)數(shù)據(jù)的傳輸.串口初始化函數(shù):uart_init(UARTn_e uratn,uint32 baud),它有兩個(gè)輸入變量,其中UARTn_e uratn是模塊號(hào)(UART0-UART5),uint32 baud為波特率,可以選擇不同的波特率.通過此函數(shù)可直接設(shè)置串口號(hào)、波特率.
1.1.3 PWM初始化
PWM即脈寬調(diào)制,脈沖寬度調(diào)制是一種可以由程序控制的波形,用來控制工作周期、相位等.
初始化FTM的PWM功能程序主要是初始化PWM通道、周期、占空比等.PWM初始化函數(shù):ftm_pwm_init(FTMn_e ftmn,FTM_CHn_e ch,uint32 freq,uint32 duty),uint32 duty為占空比的分子,占空比計(jì)算方法為:占空比=duty*FTMn_PRECISON,其中FTMn_PRECISON為占空比精度.
1)道路圖像處理
傳感器采集的圖像存儲(chǔ)在數(shù)組里,接下來的一些程序設(shè)計(jì)就變成了對(duì)該數(shù)組的處理.首先得到道路的中線,采用了從中間往兩邊掃描的方法.圖像像素點(diǎn)由白色變成黑色的時(shí)候,記錄此坐標(biāo),左右邊界相加除二,就是道路的中間線.為了使智能尋跡廣播直播車能夠在道路中間行駛,采用計(jì)算道路中心線的方法,如圖2所示.
2)彎道的補(bǔ)線
在實(shí)際調(diào)試中發(fā)現(xiàn)圖像只會(huì)丟失一邊,需根據(jù)邊界變化的趨勢(shì)來補(bǔ)線.例如當(dāng)右邊界第11行丟線,然后計(jì)算左邊界的第11行與第10行的坐標(biāo)偏移量,因賽道平行,所以左右邊界偏移量是一樣的,將右邊界第10行坐標(biāo)加上偏移量就是右邊界第11行坐標(biāo),并以此類推.
3)車行駛偏差獲取與處理
智能尋跡廣播直播車在拐彎處靠近道路內(nèi)側(cè)行駛時(shí),可以縮短行駛時(shí)間.首先選取某一行對(duì)應(yīng)于中間線的偏差,調(diào)試智能尋跡廣播直播車沿著中間線行走.這一步完成以后,把中線偏差加上這一段中線上兩點(diǎn)間的斜率,偏差和斜率都乘以一個(gè)權(quán)重,就是實(shí)際偏差了.
4)障礙的識(shí)別
由于道路上存在障礙,首先要根據(jù)圖像判斷出障礙.判斷是否為障礙需要滿足兩個(gè)條件:一是當(dāng)前智能尋跡廣播直播車所處位置為直道,二是根據(jù)搜線算法判斷出中線出現(xiàn)的跳變.檢測(cè)到障礙后,只需要控制舵機(jī)打一定的角度并保持一段時(shí)間,可實(shí)現(xiàn)障礙的越過,如圖3所示.
圖3 道路上存在障礙圖像
1)整車速度控制
為了讓智能尋跡廣播直播車速度更快,根據(jù)道路的曲率判斷直、彎道,使用變速行駛的方法.本設(shè)計(jì)簡(jiǎn)化了數(shù)學(xué)上的曲率計(jì)算方法,采用中線某點(diǎn)相對(duì)于上一點(diǎn)的偏移量來計(jì)算曲率.
由于智能尋跡廣播直播車目標(biāo)速度是連續(xù)改變的,為了控制精準(zhǔn),首先要保證的是跟隨能力,所以靜差的影響可以忽略,從而采用PID控制.
PID控制器數(shù)學(xué)公式為:
(6)
式(6)中:u(t)為控制量;e(t)為偏差;KP為比例放大系數(shù);TI為積分時(shí)間常數(shù);TD為微分時(shí)間常數(shù).
2)整車轉(zhuǎn)向控制
智能尋跡廣播直播車轉(zhuǎn)向控制是根據(jù)處理得到車相對(duì)于道路中間位置的偏差.得到的偏差經(jīng)過PID算法計(jì)算,最終輸出到舵機(jī),控制舵機(jī)轉(zhuǎn)向.
智能尋跡廣播直播車的轉(zhuǎn)向控制采用了PID控制算法.由于智能尋跡廣播直播車的轉(zhuǎn)向是個(gè)不斷變化的過程,是個(gè)動(dòng)態(tài)的過程,要保證控制的跟隨性.
系統(tǒng)對(duì)電機(jī)采用了增量式PID控制:
KD(e(k)-e(k-1))
(7)
式(7)中:KI為積分系數(shù);KD為微分系數(shù);T為采樣周期;e(k)、e(k-1)分別為第k、k-1采樣時(shí)刻輸入的偏差值.
為了提高智能尋跡廣播直播車舵機(jī)轉(zhuǎn)角的精度,本設(shè)計(jì)使用前四次偏差量的平均值和當(dāng)前偏差量的差作為微分項(xiàng).因?yàn)榈缆非闆r非常復(fù)雜,同一組參數(shù)并不一定能夠完全適應(yīng)不同的道路形式,比如KP過大,智能尋跡廣播直播車會(huì)出現(xiàn)抖動(dòng)的現(xiàn)象,過小的話拐彎力度不夠.所以本設(shè)計(jì)引入了模糊PID算法的概念,就是根據(jù)道路的彎曲程度給定不同的KP值,在直道上以小一點(diǎn)的KP系數(shù)運(yùn)行,提高穩(wěn)定性,彎道上以較大的KP運(yùn)行,增大拐彎力度.具體的分段方式是根據(jù)偏差大小來分的,偏差變大說明智能尋跡廣播直播車正在進(jìn)入彎道,變小說明進(jìn)入直道.
智能循跡廣播車的底盤是實(shí)現(xiàn)路徑循跡的核心,這里采用MK60DN512ZVLQ10單片機(jī)為核心控制器,采用540電機(jī)、S-D5數(shù)字舵機(jī)、24 V 2 Ah 鋰離子電池等,設(shè)計(jì)出能夠自主識(shí)別路徑的智能車.所設(shè)計(jì)的智能循跡廣播車的整車效果圖如圖4所示.
圖4 智能循跡廣播車的整車底盤
為了便于整車PID參數(shù)的在線調(diào)試,這里選用藍(lán)牙模塊進(jìn)行通信進(jìn)而實(shí)現(xiàn)整車參數(shù)的上位機(jī)觀測(cè),同時(shí)使用串口助手如圖5、上位機(jī)輔助如圖6、虛擬示波器如圖7等軟件,可以有效的幫助調(diào)試的時(shí)候觀察參數(shù)變化.
圖6 上位機(jī)界面圖
圖7 虛擬示波器界面圖
本設(shè)計(jì)主要調(diào)試PID里面的參數(shù)量,通過調(diào)參數(shù)來調(diào)試整車的行駛狀態(tài),由于采用了PID算法,所以整車的速度、方向控制只需多次實(shí)驗(yàn)更改相應(yīng)的參數(shù)值就可達(dá)到優(yōu)化路徑、節(jié)能充電與行駛的目的.PID調(diào)試實(shí)驗(yàn)數(shù)據(jù)如表所示1.
表1 PID調(diào)試實(shí)驗(yàn)數(shù)據(jù)表
在相同的運(yùn)行路徑下,在線調(diào)試共進(jìn)行了五組實(shí)驗(yàn)研究,為了提高整車的期望速度,通過降低速度P和I的值可提高智能尋跡廣播直播車的運(yùn)動(dòng)速度,最終整車運(yùn)動(dòng)速度從1 500 mm/s提高到了2 100 mm/s.但較高的速度會(huì)造成整車運(yùn)動(dòng)的不穩(wěn)定,甚至丟失軌跡線進(jìn)而導(dǎo)致整車停機(jī),可通過調(diào)節(jié)舵機(jī)P和D值,提高舵機(jī)的響應(yīng)速度,保證整車的穩(wěn)定性,在相同路徑下,整車運(yùn)行時(shí)間從35 s縮短至27 s.為了最大程度上發(fā)揮智能尋跡廣播直播車的性能,需要不斷調(diào)試電機(jī)和舵機(jī)的參數(shù)進(jìn)而使整車更加穩(wěn)定,因此開發(fā)的采用藍(lán)牙通信的整車PID參數(shù)的在線調(diào)試系統(tǒng)可大幅提高調(diào)試速度.
本文主要對(duì)智能尋跡廣播直播車的軟件部分進(jìn)行了分析,軟件程序的控制在硬件完好的基礎(chǔ)上才能更好地發(fā)揮作用,闡述了處理圖像的一些方法,以及一些道路特殊元素的識(shí)別.在控制算法上使用了PID控制算法提高了車輛運(yùn)行穩(wěn)定性,開發(fā)的在線調(diào)試系統(tǒng)可大幅提高整車參數(shù)的調(diào)試速度.