王 粵
(棗莊廣播電視臺,山東 棗莊 277000)
智能尋跡車在廣播電臺、廠房、圖書館、餐廳、實驗室等場所的智能巡檢或智能交互等場景中有廣泛的應用.車輛集成了機器視覺、傳感技術、自動控制技術、人工智能技術等多學科領域為一體,有良好的應用前景[1-5].但是傳統智能尋跡廣播直播車系統對道路要求較高,不能對道路模糊處理,在尋跡有較大的提升空間.并且車輛在轉向中電機沒有控制,車輛運行穩定性較差[6-8].
為解決這些問題,本文對智能尋跡廣播直播車軟件設計部分進行優化改進.整車采用OV7725數字攝像頭實現路面信息的采集,采用編碼器等實現對整車車速的采集,采用PID控制、模糊PID等算法,在優化整車PID參數的基礎上提高車輛在轉向的穩定性[9-10].
軟件是智能尋跡廣播直播車系統的核心.該控制系統主要由人機交互部分、圖像獲取與處理部分、整車控制三大部分組成.其中,圖像獲取與處理部分主要完成圖像采集與處理、偏差提取;整車控制主要完成整車的速度和方向的控制.軟件系統結構如圖1所示.
初始化模塊是整車控制程序的基礎,下面對時鐘、串口以及PWM的初始化進行介紹.
1.1.1 時鐘初始化
單片機在時鐘初始化后可以通過鎖相環(PLL)將系統的時鐘系統提高,寄存器中某些位、倍頻公式如下:
MCG_CLK_MHZ=
(1)
(2)
(3)
(4)
(5)
其中,系統的外部晶振為50 MHz.CORE_DIV為系統時鐘分頻系數,它的初始值為0.BUS_DIV為總線時鐘分頻系數,它的初始值為1.FLEX_DIV-flex為時鐘分頻系數,它的初始值為9.FLASH_DIV為flash時鐘分頻系數,它的初始值為8.
1.1.2 串口初始化
為了便于調試,該設計利用UART串口通訊實現數據的傳輸.串口初始化函數:uart_init(UARTn_e uratn,uint32 baud),它有兩個輸入變量,其中UARTn_e uratn是模塊號(UART0-UART5),uint32 baud為波特率,可以選擇不同的波特率.通過此函數可直接設置串口號、波特率.
1.1.3 PWM初始化
PWM即脈寬調制,脈沖寬度調制是一種可以由程序控制的波形,用來控制工作周期、相位等.
初始化FTM的PWM功能程序主要是初始化PWM通道、周期、占空比等.PWM初始化函數:ftm_pwm_init(FTMn_e ftmn,FTM_CHn_e ch,uint32 freq,uint32 duty),uint32 duty為占空比的分子,占空比計算方法為:占空比=duty*FTMn_PRECISON,其中FTMn_PRECISON為占空比精度.
1)道路圖像處理
傳感器采集的圖像存儲在數組里,接下來的一些程序設計就變成了對該數組的處理.首先得到道路的中線,采用了從中間往兩邊掃描的方法.圖像像素點由白色變成黑色的時候,記錄此坐標,左右邊界相加除二,就是道路的中間線.為了使智能尋跡廣播直播車能夠在道路中間行駛,采用計算道路中心線的方法,如圖2所示.
2)彎道的補線
在實際調試中發現圖像只會丟失一邊,需根據邊界變化的趨勢來補線.例如當右邊界第11行丟線,然后計算左邊界的第11行與第10行的坐標偏移量,因賽道平行,所以左右邊界偏移量是一樣的,將右邊界第10行坐標加上偏移量就是右邊界第11行坐標,并以此類推.
3)車行駛偏差獲取與處理
智能尋跡廣播直播車在拐彎處靠近道路內側行駛時,可以縮短行駛時間.首先選取某一行對應于中間線的偏差,調試智能尋跡廣播直播車沿著中間線行走.這一步完成以后,把中線偏差加上這一段中線上兩點間的斜率,偏差和斜率都乘以一個權重,就是實際偏差了.
4)障礙的識別
由于道路上存在障礙,首先要根據圖像判斷出障礙.判斷是否為障礙需要滿足兩個條件:一是當前智能尋跡廣播直播車所處位置為直道,二是根據搜線算法判斷出中線出現的跳變.檢測到障礙后,只需要控制舵機打一定的角度并保持一段時間,可實現障礙的越過,如圖3所示.

圖3 道路上存在障礙圖像
1)整車速度控制
為了讓智能尋跡廣播直播車速度更快,根據道路的曲率判斷直、彎道,使用變速行駛的方法.本設計簡化了數學上的曲率計算方法,采用中線某點相對于上一點的偏移量來計算曲率.
由于智能尋跡廣播直播車目標速度是連續改變的,為了控制精準,首先要保證的是跟隨能力,所以靜差的影響可以忽略,從而采用PID控制.
PID控制器數學公式為:
(6)
式(6)中:u(t)為控制量;e(t)為偏差;KP為比例放大系數;TI為積分時間常數;TD為微分時間常數.
2)整車轉向控制
智能尋跡廣播直播車轉向控制是根據處理得到車相對于道路中間位置的偏差.得到的偏差經過PID算法計算,最終輸出到舵機,控制舵機轉向.
智能尋跡廣播直播車的轉向控制采用了PID控制算法.由于智能尋跡廣播直播車的轉向是個不斷變化的過程,是個動態的過程,要保證控制的跟隨性.
系統對電機采用了增量式PID控制:
KD(e(k)-e(k-1))
(7)
式(7)中:KI為積分系數;KD為微分系數;T為采樣周期;e(k)、e(k-1)分別為第k、k-1采樣時刻輸入的偏差值.
為了提高智能尋跡廣播直播車舵機轉角的精度,本設計使用前四次偏差量的平均值和當前偏差量的差作為微分項.因為道路情況非常復雜,同一組參數并不一定能夠完全適應不同的道路形式,比如KP過大,智能尋跡廣播直播車會出現抖動的現象,過小的話拐彎力度不夠.所以本設計引入了模糊PID算法的概念,就是根據道路的彎曲程度給定不同的KP值,在直道上以小一點的KP系數運行,提高穩定性,彎道上以較大的KP運行,增大拐彎力度.具體的分段方式是根據偏差大小來分的,偏差變大說明智能尋跡廣播直播車正在進入彎道,變小說明進入直道.
智能循跡廣播車的底盤是實現路徑循跡的核心,這里采用MK60DN512ZVLQ10單片機為核心控制器,采用540電機、S-D5數字舵機、24 V 2 Ah 鋰離子電池等,設計出能夠自主識別路徑的智能車.所設計的智能循跡廣播車的整車效果圖如圖4所示.

圖4 智能循跡廣播車的整車底盤
為了便于整車PID參數的在線調試,這里選用藍牙模塊進行通信進而實現整車參數的上位機觀測,同時使用串口助手如圖5、上位機輔助如圖6、虛擬示波器如圖7等軟件,可以有效的幫助調試的時候觀察參數變化.

圖6 上位機界面圖

圖7 虛擬示波器界面圖
本設計主要調試PID里面的參數量,通過調參數來調試整車的行駛狀態,由于采用了PID算法,所以整車的速度、方向控制只需多次實驗更改相應的參數值就可達到優化路徑、節能充電與行駛的目的.PID調試實驗數據如表所示1.

表1 PID調試實驗數據表
在相同的運行路徑下,在線調試共進行了五組實驗研究,為了提高整車的期望速度,通過降低速度P和I的值可提高智能尋跡廣播直播車的運動速度,最終整車運動速度從1 500 mm/s提高到了2 100 mm/s.但較高的速度會造成整車運動的不穩定,甚至丟失軌跡線進而導致整車停機,可通過調節舵機P和D值,提高舵機的響應速度,保證整車的穩定性,在相同路徑下,整車運行時間從35 s縮短至27 s.為了最大程度上發揮智能尋跡廣播直播車的性能,需要不斷調試電機和舵機的參數進而使整車更加穩定,因此開發的采用藍牙通信的整車PID參數的在線調試系統可大幅提高調試速度.
本文主要對智能尋跡廣播直播車的軟件部分進行了分析,軟件程序的控制在硬件完好的基礎上才能更好地發揮作用,闡述了處理圖像的一些方法,以及一些道路特殊元素的識別.在控制算法上使用了PID控制算法提高了車輛運行穩定性,開發的在線調試系統可大幅提高整車參數的調試速度.