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