鄭炳坤,賴乙宗,葉 峰
(華南理工大學(xué) 機(jī)械與汽車工程學(xué)院,廣州 510640)
自動(dòng)導(dǎo)向車AGV[1]是現(xiàn)代物流系統(tǒng)自動(dòng)化、柔性化及智能化的關(guān)鍵設(shè)備,研究AGV的相關(guān)技術(shù)意義重大。導(dǎo)航系統(tǒng)為AGV核心組成部分,目前常見的AGV導(dǎo)航方式主要有視覺導(dǎo)航、激光導(dǎo)航與磁導(dǎo)航[2],視覺導(dǎo)航由于易受環(huán)境影響其適應(yīng)性差,激光導(dǎo)航的硬件成本較高,磁導(dǎo)航則不僅控制簡單[3]、成本低、且抗干擾能力強(qiáng),可在各種環(huán)境下工作,應(yīng)用最為廣泛。
AGV的導(dǎo)航控制系統(tǒng)根據(jù)其控制核心不同主要有采用單片機(jī)、可編程控制器PLC與嵌入式工控機(jī)等方案[4]。單片機(jī)與PLC控制系統(tǒng)具有低功耗且控制簡單等優(yōu)點(diǎn),但可擴(kuò)展性較差[5]。相比之下,嵌入式工控機(jī)帶有多種硬件接口,有利于系統(tǒng)功能擴(kuò)展,方便產(chǎn)品的升級換代。
鑒于此,本文提出一種基于CAN總線的磁導(dǎo)航AGV控制系統(tǒng),其硬件架構(gòu)以嵌入式工控機(jī)為核心,通過CAN總線掛接多個(gè)控制外圍設(shè)備的ARM處理器,以中斷任務(wù)調(diào)度模式來協(xié)調(diào)系統(tǒng)運(yùn)動(dòng)控制器的各個(gè)任務(wù)單元,通過適時(shí)掛起線程與逐步匹配報(bào)文方式來協(xié)作完成監(jiān)控管理系統(tǒng)的通信過程,實(shí)現(xiàn)系統(tǒng)的實(shí)時(shí)控制,此外,采用模糊自整定PD調(diào)節(jié)器來保證磁導(dǎo)航的控制精度和適應(yīng)性,經(jīng)實(shí)際測試,系統(tǒng)運(yùn)行穩(wěn)定可靠,取得良好的控制效果。
文中AGV的本體結(jié)構(gòu)如圖1所示,AGV本體由前左右差速驅(qū)動(dòng)輪及后萬向輪組成,導(dǎo)航傳感器安裝在車載前端底部,用于檢測AGV中心與磁帶軌道的偏距;命令傳感器則固定在車載右后側(cè),用于檢測特殊命令觸發(fā)信號。導(dǎo)航軌道由連續(xù)磁帶組成,離散的三磁帶段組合成一特殊命令觸發(fā)單元。
圖1 AGV本體結(jié)構(gòu)簡圖Fig.1 Sketch of AGV
系統(tǒng)架構(gòu)是AGV控制系統(tǒng)的關(guān)鍵,本文提出的控制方案自上而下分為監(jiān)控管理層、通信層、控制層、功能層及傳感器層五大層,如圖2所示。
圖2 系統(tǒng)總體架構(gòu)Fig.2 Overall system architecture
監(jiān)控管理層:在AGV上裝載研華工控機(jī)POD-6552,用于實(shí)現(xiàn)對控制系統(tǒng)的監(jiān)控管理等。通過建立無線局域網(wǎng),可實(shí)現(xiàn)用戶端PC與監(jiān)控管理終端數(shù)據(jù)的共享,有助于控制系統(tǒng)的調(diào)試、開發(fā)與管理;在通信層采用CAN現(xiàn)場總線來完成監(jiān)控管理層與控制層之間的命令控制發(fā)送與報(bào)告反饋?,F(xiàn)場總線適于后期控制節(jié)點(diǎn)的擴(kuò)展,是系統(tǒng)走向復(fù)雜化及智能化等的保證;控制層使用STM32F103RBT6 ARM7處理器來協(xié)調(diào)完成各種控制功能,圖2所示系統(tǒng)是由運(yùn)動(dòng)控制器與輔助控制器兩節(jié)點(diǎn)組成的一個(gè)微小型分散式控制系統(tǒng)。
功能層包括導(dǎo)航、特殊命令、電機(jī)驅(qū)動(dòng)、避障、顯示交互、姿態(tài)反饋與手動(dòng)控制七大功能單元。導(dǎo)航單元的功能是保證AGV以一定的精度沿著預(yù)定的軌跡作業(yè),當(dāng)AGV跑飛預(yù)定軌跡時(shí),自動(dòng)停止;特殊命令單元作用于當(dāng)車載到達(dá)某預(yù)定位置時(shí),命令A(yù)GV執(zhí)行停歇、裝載或者卸載特殊動(dòng)作;電機(jī)驅(qū)動(dòng)單元是系統(tǒng)的執(zhí)行末端,系統(tǒng)通過電機(jī)速度的調(diào)節(jié)控制來達(dá)成導(dǎo)航、停歇及加減速等各種基本運(yùn)動(dòng)控制功能;避障單元是AGV車載系統(tǒng)的安全模塊,AGV在遇到障礙物時(shí)應(yīng)立即停止,障礙消失后自動(dòng)重啟,繼續(xù)作業(yè)。此外,若AGV處于前進(jìn)狀態(tài),但檢測到的障礙物位于車載后端,那么AGV應(yīng)保持繼續(xù)前進(jìn)狀態(tài)。處于后退狀態(tài)的AGV前面出現(xiàn)障礙物時(shí)做類似處理;顯示交互單元用于AGV當(dāng)前運(yùn)行速度、位置等狀態(tài)的顯示;手動(dòng)控制單元用來急??刂艫GV等。
傳感器層由導(dǎo)航傳感器、命令傳感器、控制電機(jī)與驅(qū)動(dòng)器、紅外傳感器、液晶屏、編碼器及按鈕按鍵組成。運(yùn)動(dòng)處理器通過實(shí)時(shí)掃描讀取數(shù)字導(dǎo)航傳感器的狀態(tài)值,以普通IO連接導(dǎo)航傳感器;命令傳感器起作用于一些離散的特殊標(biāo)記點(diǎn),采用IO外部觸發(fā)中斷來獵取命令信息;電機(jī)的速度調(diào)控采用變頻PWM輸出完成;紅外傳感器的觸發(fā)信息也采用IO外部觸發(fā)中斷來實(shí)時(shí)監(jiān)視獲?。徊捎肧TM32定時(shí)器集成的增量式編碼器接口采集編碼器信號,計(jì)算取得當(dāng)前車載的速度和位姿。
導(dǎo)航跟蹤方法是運(yùn)動(dòng)控制器的核心技術(shù)之一。傳統(tǒng)PID控制器技術(shù)成熟,應(yīng)用廣泛,但常規(guī)的PID控制器魯棒性差,對于非線性時(shí)變或遲滯的系統(tǒng),控制效果不佳,而純模糊控制恰好能彌補(bǔ)傳統(tǒng)PID控制器的缺點(diǎn)。為此本文將模糊控制與PID控制相結(jié)合,采用圖3所示的控制器,以PD控制器為核心,利用模糊控制來動(dòng)態(tài)修正PD控制器的系數(shù),改良AGV的動(dòng)態(tài)跟蹤行為。
圖3 模糊自整定PD調(diào)節(jié)器Fig.3 Fuzzy self-tuning PD controller
在圖3中,以導(dǎo)航傳感器從磁帶探測到的跟蹤偏差及偏差變化作為控制器的輸入,經(jīng)模糊處理后得到PD控制器的參數(shù)修正值,修正PD控制器后,輸出AGV車載左右輪的控制速度差去調(diào)整AGV的當(dāng)前位姿。為了減少在線計(jì)算量,提高效率,程序中把模糊調(diào)節(jié)器以二維離線查詢表形式嵌入到STM32運(yùn)動(dòng)控制器上。
圖4 運(yùn)動(dòng)控制器的軟件實(shí)現(xiàn)Fig.4 Software realization of motion controller
給出運(yùn)動(dòng)控制器功能的軟件實(shí)現(xiàn),如圖4所示。主要包括導(dǎo)航跟蹤任務(wù)、調(diào)速任務(wù)、特殊命令任務(wù)、安全避障任務(wù)與通信任務(wù)。本文采用中斷模式來協(xié)調(diào)實(shí)現(xiàn)各個(gè)任務(wù)單元,其中特殊命令任務(wù)、安全避障任務(wù)與通信任務(wù)由外部事件觸發(fā)驅(qū)動(dòng),一旦事件來臨,運(yùn)動(dòng)控制器立即響應(yīng),保證AGV能遇障即停,無障立行等;運(yùn)動(dòng)控制器以每5 ms掃描讀取一次導(dǎo)航傳感器狀態(tài)值,以此確定出當(dāng)前偏距,然后控制器利用此偏距量計(jì)算出AGV驅(qū)動(dòng)輪的控制速度;運(yùn)動(dòng)控制器以每1 ms判斷一次當(dāng)前驅(qū)動(dòng)輪速度是否已達(dá)到控制速度,實(shí)時(shí)對驅(qū)動(dòng)電機(jī)進(jìn)行梯形調(diào)速,確保AGV能快速平穩(wěn)地加減速到控制速度。任務(wù)單元之間以變時(shí)間切片輪換執(zhí)行,安全避障等任務(wù)未被觸發(fā)下處于監(jiān)視掛起狀態(tài),不用消耗MCU資源。在系統(tǒng)控制過程中,運(yùn)動(dòng)控制器資源按需分配,提高了系統(tǒng)運(yùn)作效率的同時(shí),也保證了控制器響應(yīng)的實(shí)時(shí)性。
為了便于對AGV自動(dòng)導(dǎo)引車的現(xiàn)場工作控制與狀態(tài)監(jiān)控,上層管理系統(tǒng)的開發(fā)是十分有必要的。從AGV車載系統(tǒng)的現(xiàn)場作業(yè)出發(fā),利用MFC在車載工控機(jī)上實(shí)現(xiàn)了如圖5所示的監(jiān)控管理系統(tǒng),主要分成工作站點(diǎn)管理、操控模式、運(yùn)行狀態(tài)、跟蹤控制信息、避障狀態(tài)與車載位姿狀態(tài)六大功能模塊。
圖5 監(jiān)控管理系統(tǒng)組成Fig.5 Components of management system
上層監(jiān)控管理系統(tǒng)與底層控制器間通信的準(zhǔn)確性與實(shí)時(shí)性是控制系統(tǒng)有效性的可靠保證。將報(bào)文分為報(bào)頭、報(bào)文功能碼、報(bào)文長度、報(bào)文控制數(shù)據(jù)、報(bào)文校驗(yàn)碼與報(bào)尾,報(bào)文在發(fā)送中按照其組分順次發(fā)送,接收方讀取到報(bào)文后再逐步匹配校對,應(yīng)答執(zhí)行。以請求報(bào)告發(fā)送和接收讀取報(bào)告報(bào)文為例,給出具體的軟件實(shí)現(xiàn),如圖6所示。
圖6 數(shù)據(jù)包發(fā)送與讀取的軟件實(shí)現(xiàn)Fig.6 Software realization of TXD&RXD
報(bào)文的發(fā)送與接收都在線程中完成,其中為避免重入“報(bào)文發(fā)送”函數(shù)而修改狀態(tài)標(biāo)志量,利用互斥量來實(shí)現(xiàn)線程同步。完成一次報(bào)文報(bào)告請求后,發(fā)送線程立即掛起,以能釋放CPU資源給報(bào)文接收線程。在讀取到報(bào)告報(bào)文有誤或讀完報(bào)告報(bào)文前,發(fā)送線程一直掛起,從而保證不浪費(fèi)CPU資源。如果報(bào)告報(bào)文接收有誤,立即重新請求;當(dāng)在100 ms掛起時(shí)間內(nèi)仍然請求不成功,將因請求超時(shí)而終止本次請求;一旦接收成功,請求成功完畢。在接收線程中,如果出現(xiàn)匹配錯(cuò)誤,程序重新開始接收匹配報(bào)文。發(fā)送線程通過適時(shí)掛起操作釋放資源給接收線程等其它線程,接收線程通過逐步接收匹配方式來檢驗(yàn)報(bào)文,提高了通信過程的實(shí)時(shí)性與準(zhǔn)確性。
為測試所開發(fā)的AGV嵌入式控制系統(tǒng)的可行性與穩(wěn)定性,本文對車載系統(tǒng)進(jìn)行了實(shí)際現(xiàn)場作業(yè)的模擬實(shí)驗(yàn)。在地表鋪設(shè)引導(dǎo)磁帶,由曲線與直線組成,除了引導(dǎo)磁帶外,還有用于模擬特殊控制指令的命令磁帶,本實(shí)驗(yàn)的實(shí)訓(xùn)AGV車載及磁帶軌道如圖7所示。
AGV自動(dòng)導(dǎo)向車在現(xiàn)場實(shí)訓(xùn)中,導(dǎo)航跟蹤功能通過調(diào)整兩驅(qū)動(dòng)輪的速度來實(shí)現(xiàn),本文測試了在不同速度下AGV的導(dǎo)航精度,測試結(jié)果為表1所示。其中編號1直行速度為0.3 m/s,拐彎速度為0.1 m/s;而編號2的直行速度為0.5 m/s,拐彎速度為0.35 m/s。
圖7 AGV測試車載及磁帶軌道Fig.7 Testing AGV and its magnetic tape track
表1 偏距統(tǒng)計(jì)Tab.1 Statistical error (mm)
從表1中可以看出,AGV慢速作業(yè)時(shí)的性能優(yōu)于快速工作。因此在控制器設(shè)計(jì)中,拐彎時(shí)應(yīng)當(dāng)適當(dāng)降低AGV的工作速度,以保證AGV不會沖離導(dǎo)航軌道。此外,根據(jù)表中的平均偏距與偏距標(biāo)準(zhǔn)差兩統(tǒng)計(jì)量,可以得出在較高速時(shí),AGV的動(dòng)態(tài)跟蹤行為良好,有效表明了本控制系統(tǒng)的穩(wěn)定性與可行性。
AGV是現(xiàn)代物流系統(tǒng)的熱點(diǎn)研究對象。本文介紹了一種基于CAN總線,易于擴(kuò)展的磁導(dǎo)航AGV控制系統(tǒng)?;谥袛嗄J絹碓O(shè)計(jì)運(yùn)動(dòng)控制器,增強(qiáng)了系統(tǒng)的執(zhí)行效率與響應(yīng)速度;實(shí)現(xiàn)了AGV車載的監(jiān)控管理系統(tǒng),可實(shí)時(shí)監(jiān)控車載的運(yùn)行狀態(tài)、跟蹤控制信息、避障狀態(tài)與車載位姿狀態(tài)等,易于交互管理。此外,采用模糊PD調(diào)節(jié)器保證了良好的導(dǎo)航精度。對本系統(tǒng)進(jìn)行現(xiàn)場實(shí)測,系統(tǒng)通信穩(wěn)定可靠,跟蹤有效。
[1] 武啟平,金亞萍,任平,等.自動(dòng)導(dǎo)引車(AGV)關(guān)鍵技術(shù)現(xiàn)狀及其發(fā)展趨勢[J].制造業(yè)與自動(dòng)化,2013,35(5):106-109,121.
[2] 姜涌,曹杰,杜亞玲,等.基于各種傳感器的自動(dòng)導(dǎo)引車的制導(dǎo)方式[J].傳感器技術(shù),2005,25(8):1-4.
[3] 彭光清,樓佩煌.磁導(dǎo)航AGV模糊控制器的研究[J].工業(yè)控制計(jì)算機(jī),2012,25(9):43-44.
[4] 盧冬華.計(jì)算機(jī)控制自動(dòng)導(dǎo)向小車(AGV)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2006.
[5] 王冰,胡彬,王春香,等.自動(dòng)導(dǎo)引車車載控制系統(tǒng)的研究與設(shè)計(jì)[J].自動(dòng)化儀表,2013,34(5):1-4. ■