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