引言
AGV系統(tǒng)在當(dāng)前柔性制造系統(tǒng)(FMS)和自動(dòng)化倉儲(chǔ)系統(tǒng)中扮演著重要的角色。AGV具有適應(yīng)性好、柔性程度高、可靠性好、可實(shí)現(xiàn)生產(chǎn)和搬運(yùn)功能的集成化和自動(dòng)化等優(yōu)點(diǎn)[1]。
AGV的導(dǎo)航方式主要有激光導(dǎo)航、電磁導(dǎo)航、視覺導(dǎo)航、GPS(全球定位系統(tǒng))導(dǎo)航、磁導(dǎo)航等,本文主要針對磁導(dǎo)航方式的AGV進(jìn)行深入探討,磁導(dǎo)航AGV主要是基于磁導(dǎo)航傳感器感應(yīng)貼在路面上的磁條進(jìn)行路徑跟蹤并完成其自主行駛的功能。
磁導(dǎo)航傳感器通過檢測鋪設(shè)在地面上的磁條來判斷AGV與目標(biāo)路徑的偏差,然后輸出電壓模擬量[2]。對于磁導(dǎo)航AGV驅(qū)動(dòng)器的設(shè)計(jì),為更好地滿足通用性需求,需要對現(xiàn)有驅(qū)動(dòng)器的組成單元進(jìn)行總結(jié)和歸納,并且結(jié)合實(shí)際需求,找出共同點(diǎn)和不同點(diǎn),為磁導(dǎo)航AGV通用驅(qū)動(dòng)器的設(shè)計(jì)找到突破口。
通過查閱相關(guān)文獻(xiàn),對磁導(dǎo)航AGV驅(qū)動(dòng)器的組成有了一個(gè)總體認(rèn)識,主要包括單片機(jī)單元、供電單元、手動(dòng)控制單元、聲光報(bào)警單元、站點(diǎn)識別單元、工位檢測單元、電機(jī)驅(qū)動(dòng)單元、CAN總線單元、避障單元、磁導(dǎo)航單元、姿態(tài)反饋單元、通信單元、安全輔助單元等 [35]。
1 驅(qū)動(dòng)器硬件電路設(shè)計(jì)
在對磁導(dǎo)航AGV驅(qū)動(dòng)器的組成單元進(jìn)行分析之后,本文提出了一種基于STM32F103芯片為控制核心的通用驅(qū)動(dòng)器,它包含以下模塊:單片機(jī)模塊、電源模塊、DI/DO模塊、RFID讀寫模塊、DAC輸出模塊、ADC采集模塊、CAN總線通信模塊、高速編碼器,安全模塊以及串口通信模塊,這些模塊與磁導(dǎo)航AGV驅(qū)動(dòng)器的組成單元之間的對應(yīng)關(guān)系如表1所列。
由表1可以看出,提出的通用驅(qū)動(dòng)器設(shè)計(jì)方案可以滿足磁導(dǎo)航AGV對主要組成單元的需求。該驅(qū)動(dòng)器可同時(shí)控制兩個(gè)電機(jī)以及采集相應(yīng)的速度,還可同時(shí)采集兩路磁條傳感器輸出的模擬電壓,對于執(zhí)行復(fù)雜功能的AGV而言,可以增加驅(qū)動(dòng)器的數(shù)量以滿足要求,各驅(qū)動(dòng)器之間可以通過CAN總線保持動(dòng)作協(xié)調(diào)一致,共同完成指定的動(dòng)作。
各個(gè)模塊對應(yīng)不同的功能和作用,各司其職,互相配合,完成指定的功能。各模塊的主要作用如表2所列。
1.1 單片機(jī)模塊
本設(shè)計(jì)采用STM32作為控制芯片,此芯片基于ARM CortexM3內(nèi)核,具有高性能、低成本、低功耗的特點(diǎn)。另外,此芯片的可移植性很好,并有許多官方函數(shù)庫可以直接調(diào)用,大大縮短了開發(fā)周期。STM32F103系列有80個(gè)可以自由操控的芯片引腳,為通用驅(qū)動(dòng)器的設(shè)計(jì)提供了良好的條件。此驅(qū)動(dòng)器采用模塊化設(shè)計(jì),有利于驅(qū)動(dòng)器功能擴(kuò)展和升級。本驅(qū)動(dòng)器控制板是由STM32F103的最小系統(tǒng)、電源電路、實(shí)時(shí)時(shí)鐘系統(tǒng)、時(shí)鐘電路、JTAG接口電路、復(fù)位電路、用戶LED和按鍵電路、串口電路等組成。
1.2 電源模塊
AGV大多數(shù)通過鉛酸蓄電池供電,通過將小電壓大容量的鉛蓄電池串聯(lián)起來就可以構(gòu)成高電壓大容量的電池組,通常所用電池組為24 V,因此通過電壓轉(zhuǎn)換芯片將24 V轉(zhuǎn)換為5 V電壓,再將5 V轉(zhuǎn)換為3.3 V,為STM32芯片、MAX3232等供電。電路中需要加入多組電容,用于消除低頻和高頻的電源波動(dòng)。
1.3 DI/DO模塊
手動(dòng)操作器和必要的輸入/輸出信號需要多路DI/DO,因此本驅(qū)動(dòng)器引出了多達(dá)16路的數(shù)字量輸入和16路的數(shù)字量輸出,輸入和輸出電壓為24 V。為了消除外界對驅(qū)動(dòng)板的影響,在信號輸入部分采用光電耦合器進(jìn)行隔離,由于電信號傳輸具有單向性等特點(diǎn),可以達(dá)到良好的電絕緣能力和抗干擾能力;在信號輸出部分采用繼電器控制輸出24 V,并達(dá)到物理隔離的效果。根據(jù)光電耦合器的二極管允許壓降1.15 V和允許電流10 mA,可以計(jì)算出輸入端接入的電阻阻值,公式為:
依據(jù)標(biāo)稱電阻表選擇電阻的阻值為2.2 kΩ。
1.4 CAN總線模塊
由于高性能、高可靠性、及獨(dú)特的設(shè)計(jì),CAN總線(控制器局域網(wǎng)絡(luò))越來越受到人們的重視。它可以多主站方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從;通信方式靈活,可以添加多達(dá)255個(gè)節(jié)點(diǎn)。本驅(qū)動(dòng)器中STM32自帶有CAN控制器,只需要接入一個(gè)CAN收發(fā)器即可完成CAN模塊的設(shè)計(jì)。
1.5 DAC模塊
DAC模塊主要用于控制電機(jī)的轉(zhuǎn)速,這與電機(jī)驅(qū)動(dòng)器的選型有關(guān),電機(jī)的控制需要輸入0~10 V的模擬量來控制電機(jī)的速度,電機(jī)速度的可調(diào)節(jié)范圍是70~4 096 rpm,因此DAC輸出的電壓和電機(jī)速度存在一定的對應(yīng)關(guān)系,其對應(yīng)關(guān)系如下所示:
其中,n為電機(jī)的轉(zhuǎn)速大小(單位為r/min),U為DAC輸出的電壓大小(單位為 V)。
為了能夠更好地控制電機(jī),需要輸出的電壓穩(wěn)定且有一定的驅(qū)動(dòng)能力,由此在原理圖設(shè)計(jì)時(shí),首先通過電壓轉(zhuǎn)換芯片把24 V轉(zhuǎn)換為±12 V,再將產(chǎn)生的+12 V的電壓轉(zhuǎn)換為5 V模擬量,最后將5 V轉(zhuǎn)換為+1.25 V和+2.5 V的標(biāo)準(zhǔn)參考電壓,其中+2.5 V的參考電壓接入STM32的 VREF+引腳,作為DAC和ADC的參考電壓。
由于芯片輸出的DAC模擬量的帶負(fù)載能力較弱且電壓輸出范圍只有0~2.5 V,因此,加入運(yùn)算放大器以提高帶負(fù)載能力,在參考電壓+1.25 V的參考下,將0~2.5 V的輸出范圍變?yōu)?1.25~+1.25 V的輸出范圍,再放大8倍即可達(dá)到設(shè)計(jì)要求的0~+10 V的輸出范圍。
放大倍數(shù)可以通過調(diào)節(jié)運(yùn)算放大器外圍電路中的4個(gè)電阻的阻值來改變,另外在設(shè)計(jì)時(shí),考慮到電阻阻值的不精確,用可調(diào)電阻替換其中一個(gè)電阻,最后調(diào)試PCB板時(shí),通過調(diào)節(jié)這個(gè)可調(diào)電阻,使輸出電壓可以達(dá)到10 V。
1.6 ADC模塊
磁導(dǎo)航AG V中的磁條傳感器輸出來的偏差信號是通過電壓反映出來的,具體的比例關(guān)系如圖1所示。由圖1可以看出偏差與傳感器輸出的電壓在一定范圍內(nèi)成正比,GATE用于指示傳感器是否在磁條上。ADC的參考電壓為+2.5 V,傳感器輸出電壓范圍是0~+10 V,采用電阻分壓的方法將0~10 V變?yōu)?~2.5 V,將測量范圍擴(kuò)大4倍,如果想改變測量范圍,可以改變分壓電阻的阻值。
1.7 高速編碼器模塊
高速編碼器主要依靠STM32上的高速計(jì)時(shí)器來完成,采集電機(jī)輸出來的脈沖信號,將脈沖信號轉(zhuǎn)換為速度值,可以和DAC形成一個(gè)速度閉環(huán)控制。另外,對實(shí)時(shí)速度在時(shí)間上積分就可以得到行走的距離,對AGV的實(shí)時(shí)控制和顯示有用。脈沖信號和速度的具體對應(yīng)關(guān)系如下:
n為電機(jī)的轉(zhuǎn)速大小(單位為r/min),tp為高速編碼器采集到的信號高電平的時(shí)間(單位為μs)。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)采用C語言進(jìn)行編寫,編譯器采用IAR 5.3,底層驅(qū)動(dòng)器軟件控制流程如圖2所示,中斷流程如圖3所示。
程序采用模塊化編程,將各個(gè)模塊分別寫到不同的子函數(shù)中,這樣便于調(diào)試、移植和修改。本文采用中斷模式來協(xié)調(diào)實(shí)現(xiàn)AGV各項(xiàng)功能,中斷模式中的中斷優(yōu)先級根據(jù)任務(wù)的重要程度來確定,緊急信號中斷的優(yōu)先級最高,CAN總線和串口中斷次之,定時(shí)器4的中斷優(yōu)先級最低。定時(shí)器4每隔50 ms溢出一次,整個(gè)程序執(zhí)行一次,執(zhí)行的過程中讀取磁條傳感器狀態(tài)值,確定當(dāng)前的偏差,根據(jù)糾偏算法控制AGV車的運(yùn)行狀態(tài)。在糾偏算法中,根據(jù)不同的車型、不同的傳感器位置,建立不同的控制模型,進(jìn)而更好地控制AGV按照設(shè)定好的路線行進(jìn)。
對于不同功能的AGV,軟件控制也不相同,上文中的控制流程圖只針對一種車型,對其他車型,控制方式只需加入相應(yīng)功能的程序模塊即可。
3 試驗(yàn)測試
該通用驅(qū)動(dòng)器目前已在3種車型上進(jìn)行過試驗(yàn),這3種車型分別是:差速AGV、單舵輪AGV叉車和雙轉(zhuǎn)向架全向AGV,實(shí)物圖如圖4所示。前兩種AGV車只需一個(gè)驅(qū)動(dòng)器,雙轉(zhuǎn)向架全向AGV車則需要兩個(gè)驅(qū)動(dòng)器來控制,根據(jù)不同AVG建立不同的數(shù)學(xué)模型[6],完成試驗(yàn)。
為了測試硬件設(shè)計(jì)和軟件設(shè)計(jì)是否合理,鋪設(shè)了一段環(huán)形磁條測試三種AGV,測試的路徑示意圖如圖5所示。圖5中1、2、3、4處分別放置編號為1、2、3、4的RFID標(biāo)簽。
測試過程如下:
① 將AGV置為手動(dòng)模式,通過手操器控制AGV運(yùn)動(dòng),能夠快速地完成指定的動(dòng)作。
② 將AGV置為自動(dòng)模式,AGV沿著鋪設(shè)的軌跡行走,完成在指定點(diǎn)處執(zhí)行相應(yīng)的動(dòng)作。
③ 在自動(dòng)模式下,按下急停按鈕,保證車在緊急狀態(tài)下停止運(yùn)行。
④ 在自動(dòng)模式下,在軌跡上放上雜物,AGV在接觸到物品時(shí)會(huì)自動(dòng)停止運(yùn)行。
經(jīng)過測試,3種AGV車都可以沿著鋪設(shè)的磁條穩(wěn)定行進(jìn),并在指定的工位執(zhí)行相應(yīng)的動(dòng)作,實(shí)現(xiàn)基本功能。
結(jié)語
本文設(shè)計(jì)的磁導(dǎo)航AGV通用驅(qū)動(dòng)器采用STM32F103作為主控芯片實(shí)現(xiàn)AGV基本功能,在3種車型上能夠穩(wěn)定地工作,實(shí)現(xiàn)基本功能,并且模塊化設(shè)計(jì)給硬件調(diào)試和檢測提供了很大的方便,可擴(kuò)展性很高。后期可以根據(jù)功能的需求增加或刪減相應(yīng)的模塊,從而降低成本,增強(qiáng)產(chǎn)品的競爭力。
編輯:jq
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
52文章
8154瀏覽量
145998 -
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6665文章
2426瀏覽量
203300 -
導(dǎo)航
+關(guān)注
關(guān)注
7文章
522瀏覽量
42375 -
AGV
+關(guān)注
關(guān)注
27文章
1280瀏覽量
41008
發(fā)布評論請先 登錄
相關(guān)推薦
評論