王 冰 胡 彬 王春香 楊 明
(上海交通大學(xué)電信學(xué)院1,上海 200240;上海交通大學(xué)機(jī)器人研究所2,上海 200240)
隨著科學(xué)技術(shù)的飛速發(fā)展和經(jīng)濟(jì)的全球化,自動(dòng)化的物流系統(tǒng)已成為現(xiàn)代化工廠企業(yè)不可缺少的重要部分。由于降低成本的壓力一直貫穿于社會(huì)生產(chǎn)的整個(gè)物流搬運(yùn)行業(yè)和制造業(yè),所以制定具有成本效益的物流搬運(yùn)解決方案成為生產(chǎn)企業(yè)的重要工作目標(biāo)之一。自動(dòng)導(dǎo)引車(chē)(automated guided vehicle,AGV)作為現(xiàn)代柔性制造系統(tǒng)中的關(guān)鍵設(shè)備,對(duì)整個(gè)產(chǎn)品的生產(chǎn)過(guò)程起著重要的作用。AGV具有適應(yīng)性好、柔性程度高、可靠性好、可實(shí)現(xiàn)生產(chǎn)和搬運(yùn)功能的集成化和自動(dòng)化等優(yōu)點(diǎn)。
當(dāng)前國(guó)內(nèi)AGV控制系統(tǒng)中大多采用基于單片機(jī)、可編程控制器(PLC)、嵌入式工控機(jī)等方案[1]。采用PLC的優(yōu)點(diǎn)是穩(wěn)定性較高、抗干擾性能好、對(duì)操作人員要求低;其缺點(diǎn)是在AGV控制上使用時(shí),功能上存在局限性,對(duì)實(shí)現(xiàn)上層的一些復(fù)雜的路徑規(guī)劃或調(diào)度算法難度較大[2-3]。采用工業(yè)計(jì)算機(jī)則控制方案成本過(guò)高,系統(tǒng)穩(wěn)定性不理想,而且由于AGV的不斷振動(dòng)等原因容易導(dǎo)致硬盤(pán)讀取數(shù)據(jù)不穩(wěn)定,造成整個(gè)AGV系統(tǒng)的宕機(jī)[4]。針對(duì)以上問(wèn)題,本文研究并設(shè)計(jì)了一種面向柔性制造系統(tǒng)的AGV控制系統(tǒng)。該系統(tǒng)具有工作性能穩(wěn)定、功能擴(kuò)展方便、配置靈活等特點(diǎn)。
系統(tǒng)的功能框圖如圖1所示。
圖1 自動(dòng)導(dǎo)引車(chē)功能框圖Fig.1 Functional block diagram of AGV
AGV是用在柔性制造系統(tǒng)中的自動(dòng)化設(shè)備。結(jié)合AGV的應(yīng)用來(lái)看,柔性制造系統(tǒng)的主要特點(diǎn)包括:工作重復(fù)性高、環(huán)境外部干擾大、場(chǎng)地比較復(fù)雜、系統(tǒng)運(yùn)行靈活等。
根據(jù)這些特點(diǎn),設(shè)計(jì)的AGV控制系統(tǒng)包括以下子模塊:電機(jī)驅(qū)動(dòng)模塊、電源管理模塊、路徑導(dǎo)航模塊、里程定位模塊、安全避障模塊、無(wú)線(xiàn)通信模塊和人機(jī)交互模塊等。
根據(jù)上述AGV控制系統(tǒng)的設(shè)計(jì)方案,將系統(tǒng)硬件分為三個(gè)部分進(jìn)行設(shè)計(jì):①包含控制器的核心控制板;②外設(shè)接口板,外設(shè)傳感器的信號(hào)連接到接口板上,經(jīng)過(guò)光耦隔離后,送入到控制器的控制芯片上;③設(shè)定面板部分,主要進(jìn)行一些控制指令的輸入及操作。
AGV車(chē)載控制器主要功能接口圖如圖2所示。
圖2 AGV車(chē)載控制器主要功能接口圖Fig.2 The major functional interfaces of AGV onboard controller
核心控制板是整個(gè)系統(tǒng)的核心部分。本系統(tǒng)采用基于Freescale的數(shù)字控制器(digital signal controller,DSC)芯片進(jìn)行車(chē)體算法設(shè)計(jì)和車(chē)體控制,芯片具體型號(hào)為MC56F8366[5];接著在此基礎(chǔ)上進(jìn)行外圍電路的設(shè)計(jì)。核心控制模塊包括了DSC的最小系統(tǒng)、I/O口擴(kuò)展部分、存儲(chǔ)器、CAN通信擴(kuò)展接口和串行通信擴(kuò)展接口等。
MC56F8366將DSP和MCU集成在一起,兼有DSP強(qiáng)大的運(yùn)算能力和微控制器豐富靈活的片上外設(shè)模塊,并且價(jià)格低廉、外設(shè)模塊配置靈活。MC56F8366內(nèi)置了多種模塊接口,可適用于不同應(yīng)用場(chǎng)合,如電源監(jiān)測(cè)、內(nèi)存擴(kuò)展、電機(jī)控制、汽車(chē)電子等。由于DSC芯片內(nèi)部的存儲(chǔ)空間有限,而AGV運(yùn)行所需的地圖信息數(shù)據(jù)量比較大,所以擴(kuò)展了1個(gè)存儲(chǔ)芯片MR2A16A[6],用來(lái)存儲(chǔ)地圖信息和記錄AGV運(yùn)行日志等。
通信模塊包括串口通信和CAN通信兩個(gè)部分。系統(tǒng)開(kāi)發(fā)時(shí),串口通信可以用于系統(tǒng)調(diào)試;而系統(tǒng)運(yùn)行時(shí),串口通信又可以用于有線(xiàn)或無(wú)線(xiàn)方式的功能擴(kuò)展。在本系統(tǒng)的配置中,串口與無(wú)線(xiàn)通信模塊ZigBee相連。CAN通信模塊采用 CTM8251AT將DSC芯片中的FlexCAN模塊輸出引腳的TTL邏輯電平轉(zhuǎn)換為CAN總線(xiàn)的差分電平,并且具有2500 VDC的隔離功能。本系統(tǒng)中CAN模塊與電機(jī)驅(qū)動(dòng)器相連并進(jìn)行通信。
DSC芯片MC56F8366雖然有144個(gè)引腳,但是去除存儲(chǔ)芯片用到的16根地址線(xiàn)、16根數(shù)據(jù)線(xiàn),以及DSC一些功能模塊的引腳定義(如PWM、脈沖捕捉等),所剩的GPIO口不足10個(gè)。因此,采用MAX7301對(duì)I/O口進(jìn)行擴(kuò)展,芯片與DSC之間采用SPI接口方式。
為了保證控制芯片的安全,需要對(duì)傳感器的輸出信號(hào)進(jìn)行隔離操作??紤]到本系統(tǒng)中傳感器輸出信號(hào)都是開(kāi)關(guān)量,故可用光電隔離芯片PS2801-4[7]實(shí)現(xiàn)輸入端與輸出端的電氣隔離?;赑S2801-4設(shè)計(jì)的8路信號(hào)隔離電路如圖3所示。
圖3 信號(hào)隔離電路原理圖Fig.3 Principle diagram of the signal isolation circuit
為便于在現(xiàn)場(chǎng)對(duì)AGV進(jìn)行一些簡(jiǎn)單的設(shè)定和AGV的狀態(tài)信息顯示,如輸入起點(diǎn)位置、輸入目標(biāo)站點(diǎn)信息等,設(shè)計(jì)了基于MAX6954[8]的人機(jī)交互設(shè)定面板。
設(shè)定面板包括狀態(tài)顯示和按鍵輸入兩個(gè)部分。其中顯示界面采用七段數(shù)碼管表征AGV當(dāng)前的狀態(tài)信息。數(shù)碼管的驅(qū)動(dòng)和按鍵的掃描統(tǒng)一由MAX6954完成。MAX6954與DSC通過(guò)SPI接口進(jìn)行數(shù)據(jù)通信?;贛AX6954的設(shè)定面板電路原理圖如圖4所示。
圖4 基于MAX6954的設(shè)定面板電路原理圖Fig.4 Principle diagram of the setting panel circuit based on MAX6954
AGV系統(tǒng)軟件分為底層功能模塊的驅(qū)動(dòng)算法和AGV調(diào)度規(guī)劃算法兩個(gè)部分。這兩部分的主要功能、結(jié)構(gòu)框圖和程序流程分別介紹如下。
底層功能模塊的主要功能有路徑識(shí)別及提取、電機(jī)伺服驅(qū)動(dòng)器的控制等。磁導(dǎo)航傳感器輸出的是16路數(shù)字信號(hào),其根據(jù)檢測(cè)到的磁條信息的有無(wú),分別返回0和1。假設(shè)第1個(gè)為0的信號(hào)為Dfirst,最后一個(gè)輸出為0的信號(hào)為Dlast,則導(dǎo)引磁條中線(xiàn)位置Dmid的表達(dá)式為:
計(jì)算得到磁條中線(xiàn)的位置后,將中線(xiàn)位置數(shù)據(jù)發(fā)送給電機(jī)控制模塊;電機(jī)控制模塊將中線(xiàn)位置值與基準(zhǔn)中點(diǎn)值進(jìn)行比較,得到的差值即為運(yùn)行偏差量ei,該值被用來(lái)進(jìn)行電機(jī)差速控制。
AGV的電機(jī)驅(qū)動(dòng)采用差速控制的方式,橫向速度采用增量式PID算法控制。控制算法框圖如圖5所示。
圖5 AGV橫向控制結(jié)構(gòu)框圖Fig.5 AGV lateral control structure
差速控制量Δui的計(jì)算公式為:
式中:Kp為比例系數(shù);Ki為積分常數(shù);Kd為微分常數(shù);ei為控制器的輸入,即運(yùn)行偏差量。
AGV在柔性制造系統(tǒng)中運(yùn)行,需要將現(xiàn)場(chǎng)的地圖數(shù)據(jù)存儲(chǔ)到內(nèi)存中。地圖數(shù)據(jù)以邊為單位存儲(chǔ)。地圖的邊結(jié)構(gòu)信息定義如下[9]。
邊結(jié)構(gòu)中的結(jié)構(gòu)成員type表示該條邊的類(lèi)型(有直道、左轉(zhuǎn)彎和右轉(zhuǎn)彎)。速度變量speed則是在該條邊上行駛設(shè)置的基準(zhǔn)速度,有三檔(低速、中速和高速)可以選擇。
整個(gè)AGV分布式控制的總流程說(shuō)明如下。
①通過(guò)設(shè)定面板或者上位機(jī)的監(jiān)控界面設(shè)定起點(diǎn)和終點(diǎn)。
②DSC芯片根據(jù)存儲(chǔ)在Flash中的地圖,搜索出一條起點(diǎn)到終點(diǎn)的最短路徑,并將最短路徑上的邊保存在邊集合中。
③按下啟動(dòng)鍵啟動(dòng)AGV后,AGV開(kāi)始運(yùn)行,且自動(dòng)加載最短路徑上第0條邊的參數(shù)。
④AGV在沿著磁條前進(jìn)的過(guò)程中,不斷掃描識(shí)別里程地標(biāo),地標(biāo)計(jì)數(shù)從1開(kāi)始計(jì)數(shù),每讀到一個(gè)新的地標(biāo),地標(biāo)計(jì)數(shù)加1。
⑤根據(jù)讀到的地標(biāo)個(gè)數(shù),加載對(duì)應(yīng)邊的參數(shù)信息。若讀到的地標(biāo)個(gè)數(shù)等于最短路徑上的節(jié)點(diǎn)總個(gè)數(shù),則表示AGV到達(dá)終點(diǎn),停止運(yùn)行。
⑥AGV到達(dá)終點(diǎn)后,需要將地標(biāo)計(jì)數(shù)清零,等待下一次的任務(wù)調(diào)度。
AGV控制程序流程如圖6所示。
圖6 AGV控制程序流程圖Fig.6 Flowchart of AGV control program
為了驗(yàn)證設(shè)計(jì)的硬件系統(tǒng)和軟件算法,進(jìn)行了相關(guān)試驗(yàn)。試驗(yàn)視頻可以參考文獻(xiàn)[10]給出的網(wǎng)址。在視頻地圖上,用戶(hù)要求AGV從A點(diǎn)行駛到E點(diǎn)。從A點(diǎn)到E點(diǎn)有兩條備選路徑,分別是:14(A)->15->16->1- >2(F)- >3- >17- >18(C)- >19- >9-10(E)和14(A)->15->16->1->2(F)->3->4->5->6(D)->7->8->9-10(E)。輸入起點(diǎn)和終點(diǎn)后,后臺(tái)程序計(jì)算出一條最短路徑。界面顯示的最短路徑為14(A)->15->16->1->2(F)->3->17->18(C)- >19- >9-10(E)。
按下啟動(dòng)鍵后,AGV開(kāi)始啟動(dòng),并且不斷將AGV的狀態(tài)信息發(fā)送到上位機(jī)和設(shè)定面板顯示。最終AGV的走線(xiàn)與程序加載的路徑一致,符合要求。
從視頻中可以看到設(shè)定面板上四位數(shù)碼管前兩位顯示的是本次行駛的目標(biāo)站點(diǎn)E,后兩位顯示的是最近經(jīng)過(guò)的節(jié)點(diǎn)號(hào);在設(shè)定面板中還可以看到整個(gè)過(guò)程顯示的節(jié)點(diǎn)號(hào)與最短路徑上的節(jié)點(diǎn)號(hào)一致。
通過(guò)試驗(yàn)可以得出,本文設(shè)計(jì)的AGV控制系統(tǒng)硬件部分能采集識(shí)別信號(hào),軟件系統(tǒng)能根據(jù)起點(diǎn)和終點(diǎn)的輸入計(jì)算最短路徑,整個(gè)系統(tǒng)能正常工作[10]。
本文設(shè)計(jì)的AGV控制系統(tǒng),采用MC56F8366作為主控芯片,實(shí)現(xiàn)了外設(shè)傳感器信息的讀取、導(dǎo)引線(xiàn)的位置計(jì)算,并根據(jù)用戶(hù)設(shè)定,實(shí)現(xiàn)了AGV的調(diào)度規(guī)劃;通過(guò)DSC芯片上的FlexCAN模塊與伺服電機(jī)驅(qū)動(dòng)器之間的CAN總線(xiàn)通信,實(shí)現(xiàn)了AGV的驅(qū)動(dòng)電機(jī)的控制;通過(guò)ZigBee無(wú)線(xiàn)通信,實(shí)現(xiàn)了上位機(jī)對(duì)AGV的狀態(tài)監(jiān)控。
此外,本文在軟件算法上設(shè)計(jì)了基于Dijkstra算法的調(diào)度規(guī)劃算法,實(shí)現(xiàn)了起點(diǎn)到終點(diǎn)最短路徑規(guī)劃。實(shí)際試驗(yàn)驗(yàn)證了本文設(shè)計(jì)的系統(tǒng)硬件的可靠性和軟件的可行性,系統(tǒng)能滿(mǎn)足物流工廠的一般應(yīng)用,對(duì)AGV的推廣應(yīng)用具有一定的價(jià)值。
[1]盧冬華.計(jì)算機(jī)控制自動(dòng)導(dǎo)向小車(chē)(AGV)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2006.
[2]張曉朋.AGV開(kāi)放式控制系統(tǒng)設(shè)計(jì)[D].西安:陜西科技大學(xué),2009.
[3]王冰,張惠僑.自動(dòng)導(dǎo)向車(chē)系統(tǒng)的規(guī)劃設(shè)計(jì)[J].上海交通大學(xué)學(xué)報(bào):自然科學(xué)報(bào),2001,35(12):1793-1797.
[4]王起.論P(yáng)LC、單片機(jī)、工控機(jī)在工業(yè)現(xiàn)場(chǎng)中的應(yīng)用及選用方法[J].廣西輕工業(yè),2011(1):60-61.
[5]Freescale semiconductor.56F8366/56F8166 Datasheet[EB/OL].[2009-11-08].http://cache.freescale.com/files/dsp/doc/data_sheet/MC56F8366.pdf.
[6]Freescale semiconductor.MR2A16A MRAM Datasheet[EB/OL].[2007 - 11 - 20]. http://www. freescale. com/files/microcontrollers/doc/data_sheet/MR2A16A.pdf.
[7]Renesas electronics corporation.Photocoupler PS2801C-1,PS2801C-4 High Isolation Voltage S Photocoupler[EB/OL].[2009-02-15 ]. http://documentation. renesas. com/doc/YOUSYS/document/PN 10610EJ03V0DS.pdf.
[8]MAXIM semiconductor.MAX6954 Data Sheet[EB/OL].[2009-03-18].http://datasheets.maxim-ic.com/en/ds/MAX6954.pdf.
[9]DIJKSTRA EW.A note on two problems in connection with graphs[J].Numerische Mathematik,1959(1):269-271.
[10]胡彬.AGV 調(diào)度控制演示視頻[EB/OL].[2012-02-01].http://v.youku.com/v_show/id_XMzQ4MjY3Mjky.html.