基于視覺的高速尋線機器人設計與實現(xiàn)
在最近一些機器人競賽中,對于機器人的尋線行走,除了要求精確之外,對機器人尋線速度也提出了很高的要求,速度往往成為某些比賽制勝的關鍵。在最近教育部推出的全國大學生智能汽車大賽中,更是將尋線速度定為比賽的主題。本文在總結(jié)參加此類賽事的基礎上,提出了一種將單片機作為核心控制器,利用低分辨率攝像頭代替通用光電傳感器的機器人高速尋線行走機構(gòu)設計方法。
本文引用地址:http://m.butianyuan.cn/article/173882.htm1 車體機械設計
為了體現(xiàn)速度要求,采用仿真賽車模型作為車體機械平臺。采用后輪驅(qū)動,前輪轉(zhuǎn)向的工作方式,實現(xiàn)高速轉(zhuǎn)向運動;而如果采用兩輪式結(jié)構(gòu),通過雙電機差速方式實現(xiàn)的轉(zhuǎn)向運動,在高速轉(zhuǎn)向情況下,對電機同步控制要求很高,難以實現(xiàn)。前輪轉(zhuǎn)向采用舵機驅(qū)動,后輪驅(qū)動通過直流電機傳動到后輪軸,利用機械差速機構(gòu)避免轉(zhuǎn)向打滑。其各主要部件安裝位置如圖1所示。
圖1 車體實物及結(jié)構(gòu)示意圖
機器人采用攝像頭作為尋線傳感器,為了使攝像頭獲得很好的前方視野,將攝像頭安裝在車體前部高處,從而捕獲車體前方足夠豐富的路線信息,實現(xiàn)線路預判,這是視覺方案在尋線速度上大大優(yōu)于光電傳感器方案的關鍵。
2 硬件電路設計
這里主要介紹作為核心控制器的單片機性能以及視頻采集模塊電路結(jié)構(gòu),簡要介紹其他模塊硬件實現(xiàn)。系統(tǒng)整體結(jié)構(gòu)如圖2所示:
圖2 系統(tǒng)硬件結(jié)構(gòu)設計圖
2.1 核心控制器設計
為了實現(xiàn)視頻采集,考慮綜合性價比、設備安裝等因素,核心控制器選用Freescale公司的16位高性能單片機――MC9S12DG128(以下簡稱S12)。它的指令處理時鐘可以達到38MHz,其A/D轉(zhuǎn)換器的工作時鐘可以達到16MHz,用于采集視頻。同時它擁有8路PWM通道,控制舵機和直流電機完成轉(zhuǎn)向和速度控制;8路捕捉/比較通道獲取作為速度傳感器的編碼器脈沖信號;串行通信接口用于無線調(diào)試;多達64個IO(通過IO復用方式)足夠用于狀態(tài)顯示及參數(shù)設置。另外,其擁有128k的flash存儲空間,無需進行存儲器擴展,在片內(nèi)就可以實現(xiàn)視頻數(shù)據(jù)存儲和調(diào)用。如圖2所示,整個系統(tǒng)采用一塊單片機,無需添加其他控制器、存儲器,成為真正的“單片”系統(tǒng)。
2.2視頻采集模塊
由于單片機A/D速度限制,需要選用低分辨率的黑白攝像頭。因為低分辨率意味著視頻單行掃描時間的增加,而黑白攝像頭意味著只需要單路A/D就可以完成視頻采集工作。選擇了Omvision生產(chǎn)的ov5116芯片為內(nèi)核的CMOS黑白攝像頭,分辨率為320×240,圖像刷新頻率50Hz。同時選用LM1881視頻同步信號分離芯片提取視頻信號中的行同步和場同步信號,連入s12的脈沖捕捉通道。通過捕捉信號觸發(fā)AD模塊工作,采集存儲視頻數(shù)據(jù)。
圖3 視頻采集電路原理圖
2.3電機控制及電源
選用Mabuchi公司生產(chǎn)的RS-380SH直流電機作為主驅(qū)動電機,通過PWM信號控制。選用Freescale公司的MC33886全橋驅(qū)動芯片,通過兩路半橋?qū)崿F(xiàn)電機正反轉(zhuǎn)。這里的電機反轉(zhuǎn)并不為實現(xiàn)倒車,而主要用于車體減速。在進行電機正反轉(zhuǎn)切換時,電機驅(qū)動電流會隨著負載增大而瞬間放大,因此需要增大穩(wěn)壓能力,保證系統(tǒng)正常工作電壓,避免單片機自動重啟。在整個系統(tǒng)中,有多種電壓需求,單片機和舵機為5V供電;CMOS攝像頭為6~9V。因此,為了方便開發(fā),這里選用最常用的7.2V充電電池組。只需在系統(tǒng)內(nèi)加入5V穩(wěn)壓芯片,提供5V電壓。
3 視頻采集與處理
這里重點介紹用s12片內(nèi)A/D實現(xiàn)視頻采集和視頻處理工作。
3.1視頻采集
S12上AD標準工作時鐘為2MHz,而AD采樣至少需要14個時鐘周期。由此可得,每采集一次需要7us=14/2M。根據(jù)視頻傳輸原理和CMOS攝像頭參數(shù),視頻單行掃描時間為 。因此,在默認時鐘工作情況下,A/D模塊單行只可以采集9個視頻點,采集效果如圖5。
圖4 2MHz A/D時鐘下視頻采集效果
這種采集效果顯然無法滿足尋線控制要求,因此需要加快AD工作時鐘,將速度提高8倍,達到16MHz,采樣所需時間也同比視頻加快8倍,理論上,單行可以采集77個點。實際采集效果如圖5,精度達到40×76象素。這樣的視頻效果足已達到尋線精度要求。(由于采集精度很高,其中每行視頻中多個采樣點位于視頻行消隱區(qū),即圖像兩側(cè)黑色區(qū)域)
圖5 16MHz A/D時鐘情況下視頻采集和視頻處理效果
3.2視頻處理
通過視頻處理,提取視頻中的黑線位置。由于視頻圖像簡單,視頻處理算法采用邊緣檢測算法,即每行相鄰兩點數(shù)據(jù)做差,根據(jù)差值大小及正負,獲取視頻圖像中的“白變黑”和“黑變白”的黑線邊緣位置。同時,通過計算兩個邊緣位置的距離,判斷“黑線”寬度,過濾其他干擾。視頻處理效果見圖5。
為了節(jié)省系統(tǒng)資源,系統(tǒng)并沒有將320行視頻全部采集,而選取視頻中的40行進行采集,仍然可以達到尋線控制要求。同時,利用非采集視頻行的系統(tǒng)空閑時間進行視頻處理和運動控制工作,實現(xiàn)邊采集邊處理邊控制。另外,這種方法并不需要保存全部視頻數(shù)據(jù),而僅存儲視頻處理后的黑線位置數(shù)組,減少系統(tǒng)存儲空間占用和程序執(zhí)行時間。
4 運動控制策略
該行走機器人主要設計目的是提高尋線行走速度。攝像頭的使用,正是為了增加前方線路探測距離,給運動控制提供充足的決策時間。因此,其運動控制策略也基于此方案。本系統(tǒng)采用預瞄與PID相結(jié)合的方法實現(xiàn)速度和轉(zhuǎn)向控制。
基于單片機采集的視頻,判斷車體前方道路情況,可以明顯區(qū)分彎道直道以及彎道曲率大小。而在不同道路情況下,車體受自身機械結(jié)構(gòu)和電機特性等因素影響,有不同的行駛表現(xiàn)。在彎道行駛中存在最佳入彎速度,彎道行駛速度以及彎道行駛路線。而在直道行駛中,雖然車體速度越快越好,但是為了安全地完成直道入彎道,必須進行入彎提前減速。這點是攝像頭方案在速度上優(yōu)于紅外光電傳感器方案的關鍵:足夠充分的預判距離,保證了足夠充分的減速時間和距離,取得最快入彎效果
控制算法說明如下:首先求取黑線位置數(shù)據(jù)方差,根據(jù)方差大小,判斷黑線彎曲程度,將賽道簡單分成3種:直道、小彎道和大彎道。通過大量試驗,獲取三種賽道的最佳車速,采用閉環(huán)PID控制實現(xiàn)車速控制。對于轉(zhuǎn)向控制,由于追求尋線速度并不追求精確橫向控制,采用PD控制算法結(jié)合預瞄算法。根據(jù)線路情況,動態(tài)調(diào)整轉(zhuǎn)向控制距離。按照模糊控制模型,根據(jù)人駕駛車輛習慣,在直道運行時,利用較遠視頻行進行橫向控制,當進入彎道,采用近端視頻行。轉(zhuǎn)向公式如下:
根據(jù)此速度和轉(zhuǎn)向控制策略,經(jīng)過大量實際的試驗,最終獲得良好的車體尋線運動效果,平均尋線速度可以達到2.5m/s,明顯高于普通行走機器人設計方案。由于本文重點闡述系統(tǒng)構(gòu)建方案,而對于采用的控制算法部分,各個車體機械和電機差異很大,試驗數(shù)據(jù)不具備參考性價值,因此在此僅對算法策略進行說明。
5總結(jié)與展望
本文設計了一個基于視覺的以高速尋線為目的的行走機器人系統(tǒng)。系統(tǒng)采用一塊高性能單片機,完成了從視頻采集到視頻處理,最終實現(xiàn)速度和轉(zhuǎn)向控制的一套尋線行走功能。系統(tǒng)輕便靈巧,無需存儲器擴展和其他可編程器件配合,搭建費用低。該方案在參加第一屆全國大學生智能車大賽中,系統(tǒng)運行平穩(wěn),取得了非常優(yōu)異的成績。
創(chuàng)新點:系統(tǒng)沒有采用通用的紅外光電對管,而采用低分辨率攝像頭作為尋線傳感器。同時打破傳統(tǒng)觀念,僅利用一塊單片機完成視頻采集處理,由于視頻獲取的路線信息比紅外光電傳感器方案要豐富的多,因此這種低成本的視頻尋線解決方案,使運動控制算法開發(fā)提供很高的靈活性。系統(tǒng)由于單片機速度限制,尚不能實現(xiàn)彩色視頻采集工作,因此無法實現(xiàn)復雜視頻圖像的尋線工作。
本系統(tǒng)方案,除了應用在某些機器人大賽中,還可以用于智能車輛的導航算法研究上。系統(tǒng)實現(xiàn)簡單和成本低正好解決了智能車輛研究中存在的相應問題。同時,本系統(tǒng)也可以作為良好的教學平臺,供控制理論和視頻處理教學使用。
評論