葉程洋,夏繼強(qiáng)
(北京航空航天大學(xué)機(jī)械工程及自動(dòng)化學(xué)院,北京 100191)
?
雙轉(zhuǎn)向架驅(qū)動(dòng)AGV的分布式控制系統(tǒng)設(shè)計(jì)
葉程洋,夏繼強(qiáng)
(北京航空航天大學(xué)機(jī)械工程及自動(dòng)化學(xué)院,北京 100191)
研制了一種基于Windows CE操作系統(tǒng)和STM32單片機(jī)的嵌入式AGV(Automated Guided Vehicle,自動(dòng)導(dǎo)引車)車載控制系統(tǒng),提出了基于分布式控制系統(tǒng)的雙轉(zhuǎn)向架驅(qū)動(dòng)AGV磁線導(dǎo)引尋線控制策略。該系統(tǒng)由主控板和2塊擴(kuò)展板組成,主控板運(yùn)行Windows CE操作系統(tǒng),集中獲取系統(tǒng)數(shù)據(jù)并執(zhí)行任務(wù)調(diào)度;擴(kuò)展板以STM32為核心,分別獲取傳感器信號(hào)并控制前后轉(zhuǎn)向架?,F(xiàn)場(chǎng)調(diào)試結(jié)果表明,所設(shè)計(jì)的系統(tǒng)能夠?qū)崿F(xiàn)雙轉(zhuǎn)向架驅(qū)動(dòng)AGV的尋線行駛和狀態(tài)監(jiān)控,滿足一般工程要求。
AGV;雙轉(zhuǎn)向架驅(qū)動(dòng);分布式控制系統(tǒng);Windows CE;STM32單片機(jī);尋線控制
自動(dòng)導(dǎo)引車(AGV)是一種無(wú)人操縱的自動(dòng)化運(yùn)輸設(shè)備,它能承載一定的質(zhì)量在出發(fā)地和目的地之間自主駕駛和自動(dòng)運(yùn)行,是自動(dòng)化物流運(yùn)輸系統(tǒng)、柔性生產(chǎn)組織系統(tǒng)的核心關(guān)鍵設(shè)備[1]。雙轉(zhuǎn)向架驅(qū)動(dòng)是一種使AGV可以實(shí)現(xiàn)全方位行走的驅(qū)動(dòng)方式,這種AGV具備車身高度低、載重大、控制精度高等優(yōu)點(diǎn)[2]。車載控制系統(tǒng)是AGV系統(tǒng)的核心組成部分之一,直接影響到生產(chǎn)效率和車間的自動(dòng)化管理[3]。早期圍繞工控機(jī)和PLC為核心,通過(guò)擴(kuò)展各種接口搭建了系統(tǒng)硬件平臺(tái)。如果使用工控機(jī)為核心,不僅體積大,而且功耗高,降低了自身攜帶電源AGV的搬運(yùn)效率;如果使用PLC為核心,則成本較高,并且數(shù)據(jù)處理相對(duì)比較集中而影響執(zhí)行效率[3-4]。針對(duì)以上問(wèn)題,本文以嵌入式微處理器為核心,設(shè)計(jì)了雙轉(zhuǎn)向架驅(qū)動(dòng)AGV分布式控制系統(tǒng)解決方案。
所試驗(yàn)的雙轉(zhuǎn)向架驅(qū)動(dòng)AGV主要由車體、行走轉(zhuǎn)向系統(tǒng)、車載控制系統(tǒng)、傳感器系統(tǒng)、充電電源等組成。其機(jī)械結(jié)構(gòu)示意圖如圖1所示。
圖1 AGV機(jī)械結(jié)構(gòu)示意圖
AGV的行走轉(zhuǎn)向系統(tǒng)主要由轉(zhuǎn)向架、軸承、驅(qū)動(dòng)輪以及直流電機(jī)組成。每一個(gè)驅(qū)動(dòng)輪均由一個(gè)直流電機(jī)控制,轉(zhuǎn)向架的前進(jìn)和轉(zhuǎn)動(dòng)可通過(guò)控制直流電機(jī)使兩輪差速得以實(shí)現(xiàn)。由于其前后轉(zhuǎn)向架均為獨(dú)立的差速機(jī)構(gòu),因此可以實(shí)現(xiàn)不同方位的行走。傳感器系統(tǒng)主要包括安裝在前后轉(zhuǎn)向架中心位置處的磁導(dǎo)航傳感器、測(cè)量轉(zhuǎn)向架轉(zhuǎn)動(dòng)角度的絕對(duì)值CAN編碼器以及用于識(shí)別路徑變化的RFID設(shè)備。車載控制系統(tǒng)通過(guò)采集傳感器系統(tǒng)反饋的信息對(duì)前后轉(zhuǎn)向架進(jìn)行控制,以實(shí)現(xiàn)AGV沿預(yù)定的路徑行駛。本設(shè)計(jì)利用CAN總線實(shí)時(shí)性高、抗干擾能力強(qiáng)、各節(jié)點(diǎn)之間可共享數(shù)據(jù)等優(yōu)點(diǎn)[5]組建了分布式控制系統(tǒng)。主節(jié)點(diǎn)負(fù)責(zé)向從節(jié)點(diǎn)發(fā)送控制指令,并集中顯示AGV的運(yùn)行狀態(tài);從節(jié)點(diǎn)負(fù)責(zé)采集傳感器信息,并分散控制前后轉(zhuǎn)向架,不斷糾正磁條偏差,使AGV不脫離磁線尋跡行駛。
2.1 傳感器選擇
磁線導(dǎo)引AGV在自動(dòng)尋線行駛過(guò)程中需要獲取自身的位置偏差量,并及時(shí)糾正偏差。系統(tǒng)選用了磁性導(dǎo)航傳感器,其輸出包括偏差輸出信號(hào)和門位輸出信號(hào)兩部分。偏差輸出為模擬電壓,中心電壓為5 V,輸出電壓范圍為2~8 V,大小隨傳感器和導(dǎo)航磁條之間的相對(duì)位置成比例的發(fā)生變化。門位輸出主要用于確定傳感器處于導(dǎo)航磁條的可控制范圍內(nèi),其信號(hào)可用于判斷傳感器是否離開磁條,從而限定AGV的最大位置偏差量。
運(yùn)行狀態(tài)改變對(duì)于行駛中的AGV來(lái)說(shuō),是必不可少的環(huán)節(jié),不僅包括速度的改變,還包括特殊情形下控制參數(shù)的調(diào)整等。射頻識(shí)別(RFID)系統(tǒng)能夠?qū)崿F(xiàn)非接觸式讀寫,識(shí)別速度非常快,適合使用在骯臟、油脂、潮濕等比較惡劣的工控環(huán)境,這些優(yōu)點(diǎn)對(duì)于磁線導(dǎo)航非常重要。系統(tǒng)選用的RFID讀寫設(shè)備具有RS232和RS485通信接口,當(dāng)檢測(cè)到載體接近時(shí),讀寫頭會(huì)發(fā)送相應(yīng)載體的編號(hào),控制器解析載體的編號(hào)即可改變AGV的運(yùn)行狀態(tài)。
2.2 硬件架構(gòu)設(shè)計(jì)
本設(shè)計(jì)在硬件上通過(guò)CAN總線將主控板、絕對(duì)值CAN編碼器和控制前后轉(zhuǎn)向架的2塊擴(kuò)展板互聯(lián)成控制網(wǎng)絡(luò)。各節(jié)點(diǎn)數(shù)據(jù)共享、控制分散,由此構(gòu)建成分布式控制系統(tǒng)。主控板以S3C6410為核心,它是基于ARM11架構(gòu)的芯片,能夠運(yùn)行Windows CE6.0嵌入式操作系統(tǒng),可以并行執(zhí)行網(wǎng)絡(luò)通信、CAN總線通信以及AGV狀態(tài)顯示等多任務(wù)。擴(kuò)展板主芯片為STM32F系列,主要負(fù)責(zé)采集磁導(dǎo)航傳感器的偏差量和獲取轉(zhuǎn)向架的當(dāng)前角度位置信息,通過(guò)控制直流電機(jī)以實(shí)現(xiàn)AGV尋線行駛。硬件架構(gòu)總體框圖如圖2所示。
圖2 系統(tǒng)硬件架構(gòu)圖
2.3 主要模塊硬件設(shè)計(jì)
2.3.1 CAN模塊接口電路
STM32單片機(jī)內(nèi)部集成了CAN控制器,其外部擴(kuò)展CTM8251通用CAN收發(fā)器便可組成CAN接口電路。而S3C6410內(nèi)部沒(méi)有集成CAN控制器,因此需要擴(kuò)展CAN控制器和收發(fā)器組建CAN模塊接口電路。MCP2510是一款帶有SPI接口的獨(dú)立CAN控制器,可以利用S3C6410的SPI總線讀寫MCP2510,實(shí)現(xiàn)CAN總線數(shù)據(jù)的發(fā)送與接收。主控板CAN模塊接口電路如圖3所示。
圖3 主控板CAN模塊接口電路
2.3.2 磁導(dǎo)航傳感器接口電路
STM32單片機(jī)內(nèi)部集成了ADC功能,能夠進(jìn)行多通道數(shù)據(jù)采集。磁導(dǎo)航傳感器的偏差輸出模擬電壓最大值為10V,經(jīng)電阻分壓后進(jìn)入STM32的ADC通道,通過(guò)DMA可將通道采集的數(shù)據(jù)保存起來(lái),從而減輕CPU的負(fù)擔(dān),提高了效率。傳感器的門位輸出類似開關(guān)作用,如果傳感器在磁條上,光耦輸入端回路閉合,芯片采集到輸出端為高電平,反之則為低電平,根據(jù)電平的高低可判斷出磁條是否脫離磁線。傳感器接口電路如圖4所示。
圖4 磁導(dǎo)航傳感器接口電路
2.3.3 直流電機(jī)接口電路
STM32單片機(jī)內(nèi)部集成有12位的DAC功能,可輸出電壓范圍為0V至參考電壓2.5 V。DAC輸出模擬電壓經(jīng)過(guò)高輸入電阻的差分比例運(yùn)算電路放大后可輸出范圍為-10~10 V的模擬電壓以驅(qū)動(dòng)直流電機(jī)。直流電機(jī)接口電路如圖5所示。
該電路前級(jí)為電壓跟隨器,后級(jí)有2個(gè)輸入,且參數(shù)對(duì)稱,輸出電壓UO與輸入電壓U1、U2之間的關(guān)系為:
圖5 直流電機(jī)接口電路
3.1 主控板軟件設(shè)計(jì)
3.1.1 Windows CE設(shè)備驅(qū)動(dòng)程序開發(fā)
設(shè)備驅(qū)動(dòng)程序開發(fā)是嵌入式操作系統(tǒng)移植過(guò)程中的一個(gè)必備環(huán)節(jié),針對(duì)實(shí)際需求,通過(guò)對(duì)板級(jí)支持包(Board Support Package,BSP)的修改,可實(shí)現(xiàn)相應(yīng)的硬件驅(qū)動(dòng)程序設(shè)計(jì)[6]。本文將介紹在Visual Studio 2005平臺(tái)下GPIO驅(qū)動(dòng)添加進(jìn)內(nèi)核的過(guò)程。
(1)Windows CE設(shè)備流驅(qū)動(dòng)實(shí)現(xiàn)框架是相同的,根據(jù)實(shí)際情況需要把相關(guān)的流接口函數(shù)如GPIO_Open()、GPIO_IOControl()、GPIO_Read()等功能實(shí)現(xiàn)。
(2)流接口函數(shù)實(shí)現(xiàn)以后,用記事本打開注冊(cè)表文件platform.reg,添加注冊(cè)信息如下:
IF BSP_NOGPIO!
[HKEY_LOCAL_MACHINEDriversBuiltIngpio_driver]
“ DLL” =“GPIO.dll”
“ Prefix ” =“GPIO”
“ Index ”= dword: 1
“ Order ”=dword: 30
END IF BSP_NOGPIO!
(3)再將GPIO驅(qū)動(dòng)編譯到Windows CE的鏡像文件中。打開platform.bib文件,添加以下信息:
IF BSP_NOGPIO!
GPIO.dll $ (_FLATRELEASEDIR)s3c6410_gpio.dll NK SHK
END IF BSP_NOGPIO!
(4)打開SMDK6410.bat文件,添加信息set BSP_NOGPIO,表示會(huì)編譯所添加的驅(qū)動(dòng)。
完成以上步驟后重新編譯,驅(qū)動(dòng)就會(huì)被添加到內(nèi)核的鏡像文件中,再次移植操作系統(tǒng)后便可以加載GPIO的驅(qū)動(dòng)程序。
3.1.2 主控板應(yīng)用程序設(shè)計(jì)
為使主控板的應(yīng)用程序能夠模塊化,提高開發(fā)效率,本設(shè)計(jì)對(duì)系統(tǒng)的軟件結(jié)構(gòu)進(jìn)行了分層設(shè)計(jì),將應(yīng)用程序中與底層硬件交互的部分全部封裝成了dll文件。以CAN設(shè)備驅(qū)動(dòng)程序?yàn)槔赿ll文件中通過(guò)調(diào)用CreateFile()、WriteFile()等操作系統(tǒng)的文件API實(shí)現(xiàn)CAN設(shè)備的打開,初始化以及讀寫操作等,然后再將訪問(wèn)硬件所需的接口函數(shù)導(dǎo)出,應(yīng)用程序動(dòng)態(tài)加載dll文件并調(diào)用相應(yīng)的接口函數(shù)實(shí)現(xiàn)對(duì)硬件的操作。
主控板作為分布式控制系統(tǒng)中的上層工作站,是實(shí)現(xiàn)數(shù)據(jù)共享與顯示集中的核心部分。從AGV車載控制系統(tǒng)的架構(gòu)設(shè)計(jì)來(lái)看,主控板一方面通過(guò)WIFI與遠(yuǎn)程PC端軟件進(jìn)行數(shù)據(jù)交流,另一方面通過(guò)CAN總線與底層工作站通信,同時(shí)還需要對(duì)接收的數(shù)據(jù)進(jìn)行解析以實(shí)現(xiàn)AGV狀態(tài)顯示,因此應(yīng)用程序需要?jiǎng)?chuàng)建多個(gè)線程分別執(zhí)行相應(yīng)的功能。主控板程序流程圖如圖6所示。
圖6 主控板程序流程圖
3.2 擴(kuò)展板軟件設(shè)計(jì)
3.2.1 AGV尋線控制策略
根據(jù)磁導(dǎo)航傳感器輸入的偏差值以及絕對(duì)值CAN編碼器反饋的轉(zhuǎn)向架位置信息可組成閉環(huán)控制系統(tǒng)。經(jīng)PID調(diào)節(jié)后的偏差控制量轉(zhuǎn)化為兩驅(qū)動(dòng)輪的速度控制量后驅(qū)動(dòng)左右電機(jī),利用差速使轉(zhuǎn)向架轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)偏差的糾正。
以前轉(zhuǎn)向架糾偏尋線過(guò)程為例,假設(shè)AGV初始運(yùn)行時(shí)兩輪的速度相等,均為v0,系統(tǒng)產(chǎn)生的偏差經(jīng)過(guò)PID模塊調(diào)節(jié)后的偏差控制量為U(t),那么使輸入到兩輪的速度控制量v1(t)和v2(t)分別為:
v1(t)=v0+U(t)
v2(t)=v0-U(t)
當(dāng)U(t)≠0時(shí),則有v1(t)≠v2(t),轉(zhuǎn)向架在兩輪差速作用下轉(zhuǎn)動(dòng),偏差值減小。由于轉(zhuǎn)向架質(zhì)心的速度:
因此糾偏過(guò)程中轉(zhuǎn)向架質(zhì)心速度大小只取決于人為設(shè)定值,與偏差值的大小無(wú)關(guān)。
實(shí)際過(guò)程中還需要考慮控制系統(tǒng)中被控對(duì)象的滯后特性,為此以轉(zhuǎn)向架水平位置為基準(zhǔn),限定其最大轉(zhuǎn)動(dòng)角度為左右各偏轉(zhuǎn)20°。如果轉(zhuǎn)向編碼器反饋的轉(zhuǎn)向架角度達(dá)到了最大限定角度,則使v1(t)=v2(t)=v0,這樣轉(zhuǎn)向架將保持最大限定角度位置糾偏直到U(t)的符號(hào)改變?yōu)橹埂?/p>
3.2.2 擴(kuò)展板應(yīng)用程序設(shè)計(jì)
擴(kuò)展板作為分布式控制系統(tǒng)中的底層工作站,是實(shí)現(xiàn)控制分散的關(guān)鍵部分。在雙轉(zhuǎn)向架驅(qū)動(dòng)AGV的尋線控制中,每塊擴(kuò)展板分別獲取磁導(dǎo)航傳感器反饋的偏差信息和編碼器反饋的轉(zhuǎn)向架位置信息,通過(guò)獨(dú)立控制固定在轉(zhuǎn)向架上的2臺(tái)直流電機(jī)及時(shí)調(diào)整AGV的位姿。當(dāng)AGV尋線轉(zhuǎn)彎時(shí),需要在彎道開始的地方預(yù)先放置RFID載體,主控板會(huì)在AGV靠近載體時(shí)發(fā)生串口中斷,并將識(shí)別的載體編號(hào)通過(guò)CAN總線發(fā)送給各擴(kuò)展板。擴(kuò)展板接收到報(bào)文后分別減小轉(zhuǎn)向架的當(dāng)前質(zhì)心速度,同時(shí)改變PID調(diào)整參數(shù),以適應(yīng)導(dǎo)航磁線路徑的變化。AGV尋線過(guò)程中要求安裝在前后轉(zhuǎn)向架上方的磁導(dǎo)航傳感器時(shí)刻都在磁線的可控范圍內(nèi),否則就必須急停。
本設(shè)計(jì)以50 ms為一個(gè)控制周期,2塊擴(kuò)展板在一個(gè)控制周期內(nèi)將各自所控制的轉(zhuǎn)向架的狀態(tài)發(fā)送至CAN總線上,在AGV尋線控制前每塊擴(kuò)展板都要判斷前后轉(zhuǎn)向架上磁導(dǎo)航傳感器的狀態(tài),如果均在磁線上,則分散控制轉(zhuǎn)向架,否則就使前后轉(zhuǎn)向架急停。因此,應(yīng)用程序在實(shí)現(xiàn)雙轉(zhuǎn)向架之間控制分散的同時(shí)也要實(shí)現(xiàn)二者的數(shù)據(jù)共享,只有分布式控制系統(tǒng)中各工作站之間相互協(xié)調(diào)和統(tǒng)一,才能保證AGV高效而又穩(wěn)定的運(yùn)行。擴(kuò)展板主要控制流程如圖8所示。
圖8 擴(kuò)展板主要控制流程圖
文中設(shè)計(jì)了一種以嵌入式微處理器為核心的AGV車載控制器,以此構(gòu)建了雙轉(zhuǎn)向架驅(qū)動(dòng)AGV的分布式控制系統(tǒng),并給出了其磁線導(dǎo)引尋線控制算法。實(shí)際上,以嵌入式技術(shù)為核心,利用分布式控制系統(tǒng)控制分散、數(shù)據(jù)共享等優(yōu)點(diǎn)可方便的組建多種適用于不同種類AGV車型的控制器,這種控制系統(tǒng)在成本、功耗、體積、效率和通用性等方面具有明顯優(yōu)勢(shì),在某些場(chǎng)合下可逐步取代工控機(jī)和PLC系統(tǒng),具有重要的研究意義。目前,所設(shè)計(jì)的分布式控制系統(tǒng)已經(jīng)在差速車、叉車以及雙轉(zhuǎn)向架驅(qū)動(dòng)車等不同種類AGV上通過(guò)了現(xiàn)場(chǎng)調(diào)試驗(yàn)證,并取得了較好的控制效果。
[1] 王榮本,儲(chǔ)江偉,馮炎,等.一種視覺(jué)導(dǎo)航的實(shí)用型AGV設(shè)計(jì).機(jī)械工程學(xué)報(bào),2002(11): 135-138.
[2] 孟琦,金亞萍,耿牛牛,等.基于磁線導(dǎo)引的雙轉(zhuǎn)向架驅(qū)動(dòng)AGV應(yīng)用研究.制造業(yè)自動(dòng)化,2014(15):139-141.
[3] 張辰貝西,黃志球.自動(dòng)導(dǎo)航車(AGV)發(fā)展綜述.中國(guó)制造業(yè)信息化,2010(1):53-59.
[4] 武啟平,金亞萍,任平,等.自動(dòng)導(dǎo)引車(AGV)關(guān)鍵技術(shù)現(xiàn)狀及其發(fā)展趨勢(shì).制造業(yè)自動(dòng)化,2013(10):106-109.
[5] 夏繼強(qiáng),邢春香.現(xiàn)場(chǎng)總線工業(yè)控制網(wǎng)絡(luò)技術(shù).北京:北京航空航天大學(xué)出版社,2005:117-120.
[6] 周建設(shè).Windows CE設(shè)備驅(qū)動(dòng)及BSP開發(fā)指南.北京:中國(guó)電力出版社,2009.
Design of Distributed Control System on Double Bogie Drive AGV
YE Cheng-yang,XIA Ji-qiang
(School of Mechanical Engineering & Automation, BUAA, Beijing 100191,China)
An embedded Automated Guided Vehicle (AGV) control system based on Windows CE operating system and STM32 microprocessor was developed in this paper, and magnetic guidance line-tracking control strategy of double bogie drive AGV based on distributed control system was presented. The system was composed of a main control board and two extension control boards. The main control board which runs Windows CE operating system was responsible for system data acquisition and task scheduling. With the core of STM32, the two extension control boards respectively get the sensor signals and control the bogies. The result of field debugging shows that the system can realize line-tracking control and status monitor of double bogie drive AGV which satisfies the requirement in engineering.
AGV; double bogie drive; distributed control system; Windows CE; STM32; line-tracking control
2014-12-10 收修改稿日期:2015-06-25
TP273
A
1002-1841(2015)09-0067-03
葉程洋(1990—),碩士,主要研究領(lǐng)域:工業(yè)測(cè)控網(wǎng)絡(luò)技術(shù)與嵌入式系統(tǒng)應(yīng)用。E-mail:chengyangye1990@126.com 夏繼強(qiáng)(1970—),碩士生導(dǎo)師,副教授,主要研究領(lǐng)域:工業(yè)測(cè)控網(wǎng)絡(luò)技術(shù)與嵌入式系統(tǒng)應(yīng)用,智能儀表執(zhí)行器技術(shù)。 E-mail:xiajiqiang@buaa.edu.cn