吳 樺
(江西軟件職業(yè)技術(shù)大學(xué) 江西 南昌 330041)
隨著工業(yè)4.0時代來臨,在智能算法、虛擬仿真、深度學(xué)習(xí)等技術(shù)加持下,智能機器人的應(yīng)用領(lǐng)域和服務(wù)場景愈加多元化,作用優(yōu)勢更加明顯。在抗震救災(zāi)、地質(zhì)探測、航天事業(yè)、運輸搬運機器、快遞分揀等領(lǐng)域都取得了較好的效果,有效地提高了社會生產(chǎn)效率。智能機器人應(yīng)用場景的多元化及復(fù)雜程度導(dǎo)致用戶對智能機器人的控制要求更加嚴(yán)格,只有借助更為完善、精細(xì)化的控制體系,才能將智能機器人的功能優(yōu)勢充分挖掘出來,文章依據(jù)智能機器人的作業(yè)需要,探索了基于ATmega單機片的智能機器人控制系統(tǒng)設(shè)計,并借助仿真環(huán)境來驗證控制效果。
本系統(tǒng)設(shè)計旨在實現(xiàn)智能機器人的自主化、智能化作業(yè),讓其能在復(fù)雜的地面環(huán)境中高效完成作業(yè)需求。在功能種類方面:一是需要具備自動移動功能,可以自動識別路徑障礙,完成對應(yīng)的路徑規(guī)劃。二是人機交互功能,通過人機交互來實現(xiàn)信息數(shù)據(jù)的高效傳輸;同時系統(tǒng)軟件也能實時獲取到智能機器人的運行狀態(tài)和可觀測數(shù)據(jù),便于控制系統(tǒng)更好的調(diào)整智能機器人作業(yè)狀態(tài)和相關(guān)任務(wù)發(fā)布。三是環(huán)境探測功能,智能機器人需要借助傳感器對周圍環(huán)境進(jìn)行動態(tài)探測,并根據(jù)任務(wù)要求實時匹配,并借助智能檢測算法生成決策信息。在系統(tǒng)結(jié)構(gòu)上[1],分為機械結(jié)構(gòu)、驅(qū)動系統(tǒng)、探測系統(tǒng)、控制系統(tǒng);整體系統(tǒng)組成機構(gòu)如圖1。
圖1 系統(tǒng)組成結(jié)構(gòu)圖
系統(tǒng)硬件設(shè)計是智能機器人控制系統(tǒng)設(shè)計的關(guān)鍵部分,關(guān)乎控制系統(tǒng)的控制力度和有效性。在智能機器人控制系統(tǒng)硬件設(shè)計中,包含了微處理器設(shè)計、舵機、傳感器模塊電路設(shè)計、PCB設(shè)計等。
1.2.1 微處理器模塊設(shè)計
微處理器作為智能機器人控制系統(tǒng)的核心零部件,決定著機器人的控制精準(zhǔn)性和相關(guān)控制功能實現(xiàn)。因此在智能機器人控制系統(tǒng)硬件設(shè)計中,首先要針對功能需求選擇合適的控制器類型。并考慮到智能機器人的最大電路設(shè)計、接口電路設(shè)計等功能需要,本系統(tǒng)選用ATmega128單機片作為控制核心;如在接口電路設(shè)計中,該單機片可以實現(xiàn)JTAG和ISP兩種形式的在線編程。
1.2.2 舵機、傳感器模塊電路設(shè)計
傳感器模塊是智能機器人的眼睛;驅(qū)動電路設(shè)計就是為了更好地控制智能機器人的傳感器和舵機,從而實現(xiàn)智能機器人的有效控制。在設(shè)計中采用的是同步通信方式來實現(xiàn)信息通信效率提高;指的是在信息通信過程中,控制系統(tǒng)發(fā)送信息后只有得到智能機器人回應(yīng)后,才能進(jìn)行二次信息通信;這樣有效避免了通信堵塞、行為指令控制精準(zhǔn)度不夠等問題。在舵機和傳感器連接方式上,采用的多通道串聯(lián),即只有一方供電,另外一方面也能繼續(xù)工作。
1.2.3 PCB設(shè)計
(1)PCB設(shè)計要求
PCB設(shè)計及制作影響著智能機器人控制系統(tǒng)的穩(wěn)定性和可靠性,也對后期的硬件系統(tǒng)調(diào)試、維護(hù)等起著重要作用。在PCB設(shè)計中,需從智能機器人控制系統(tǒng)整體功能出發(fā),充分考慮到各項功能的兼容性,設(shè)計出準(zhǔn)確性、合理、經(jīng)濟的印刷電路版。在準(zhǔn)確性方面:準(zhǔn)確性是PCB設(shè)計的核心內(nèi)容,PCB需要精準(zhǔn)的實現(xiàn)系統(tǒng)原理圖的電路關(guān)系,確保電氣連接的有效性和精準(zhǔn)性,避免出現(xiàn)短路現(xiàn)象。在可靠性方面:PCB設(shè)計影響著智能機器人的運行性能,在PCB設(shè)計中需要從板材選擇、路線設(shè)計、元器件布局等多維度入手來確保PCB的可靠性,增強硬件性能;如在抗干擾問題中,可以從接地線布置、元器件布置來降低干擾源。在經(jīng)濟性方面:經(jīng)濟性的合理規(guī)劃能夠提高智能機器人控制系統(tǒng)的應(yīng)用程度,控制功能發(fā)揮和經(jīng)濟優(yōu)勢才能凸顯控制系統(tǒng)軟件的價值。因此在PCB設(shè)計中,在滿足功能需求的同時可以從尺寸、板材等方面入手降低經(jīng)濟成本。
(2)PCB設(shè)計
一是在設(shè)計中需要利用好原理圖,生成對應(yīng)的網(wǎng)絡(luò)表,為PCB設(shè)計打好基礎(chǔ)。
二是采用PCB編輯器來進(jìn)行電路板規(guī)劃和定義,得到明確的尺寸和輪廓后根據(jù)元器件數(shù)量來合理布線;如在布線寬度不宜太窄、走線盡量垂直等。同時也需確定好雙面板結(jié)構(gòu)的跨線規(guī)劃。
三是在元器件布局設(shè)置中,可以采用自動布局的方式借助網(wǎng)絡(luò)表將原理圖加載到PCB中,再進(jìn)行元器件的自動布局。這樣不僅能提高元器件布局的美觀程度,也能避免元器件之間的電磁干擾,實現(xiàn)PCB布局均勻、大小合適。
四是在PCB元器件布局完成后需進(jìn)行合理布線,在布線前要進(jìn)行布線規(guī)則的詳細(xì)制定,可采用手動布線配合自動布線的方式來提高布線效率和精確性。在具體布線過程中,先是要對敏感信號線、時鐘線等重要線進(jìn)行布置,其次再進(jìn)行信號線布置;最后要進(jìn)行屏蔽導(dǎo)線放置、淚滴放置等相關(guān)處理來提高電路板的可靠性。
五是設(shè)計PXB電路板信號規(guī)則,并進(jìn)行電路檢測和邏輯檢測,最后得到PCB圖。
系統(tǒng)軟件設(shè)計是實現(xiàn)智能機器人控制的關(guān)鍵,高質(zhì)量的軟件系統(tǒng)開發(fā)能夠進(jìn)一步發(fā)揮硬件電路設(shè)計的作用。在軟件系統(tǒng)設(shè)計中需要考慮到實時性、可靠性、易維護(hù)性、可移植性等特點,而軟件架構(gòu)是實現(xiàn)系統(tǒng)設(shè)計的基礎(chǔ),根據(jù)系統(tǒng)軟件的功能定位需設(shè)計為多個模塊,最后將各功能模塊進(jìn)行規(guī)劃架構(gòu)從而形成系統(tǒng)軟件。在本系統(tǒng)軟件架構(gòu)上主要分為初始化模塊、人機交互模塊、障礙檢測及避障模塊、通信模塊、電機控制模塊[2]。如圖2所示。
圖2 智能機器人軟件架構(gòu)圖
初始化模塊設(shè)計旨在執(zhí)行系統(tǒng)硬件的狀態(tài)初始化工作,在智能機器人通電運行時執(zhí)行。其中主要包含端口初始化、串口初始化、舵機控制初始化等。在端口初始化上,采用數(shù)據(jù)寄存器、方向寄存器等設(shè)置某一pin腳為輸入并使能內(nèi)部上拉電阻;在串口初始化上,通過串口0和1的設(shè)置來實現(xiàn)相關(guān)控制[3]。在舵機初始化上選用無限旋轉(zhuǎn)模式、普通模式兩種;無限旋轉(zhuǎn)模式適用于車輪舵機,普通模式適用于轉(zhuǎn)向、機械作業(yè)方面。在動作初始化上,在通電后完成一次初步的作業(yè)動作并恢復(fù)作業(yè)初始狀態(tài)[4]。
人機交互模塊設(shè)計包括智能機器人數(shù)據(jù)采集、場景分析、功能服務(wù)匹配等內(nèi)容,同時也能實現(xiàn)控制系統(tǒng)指令高效傳輸;如控制系統(tǒng)通過智能機器人傳感器收集場景數(shù)據(jù)并傳達(dá)對應(yīng)指令來提高智能機器人作業(yè)效率。在模塊系統(tǒng)框架上,為控制系統(tǒng)終端—TSP平臺—大數(shù)據(jù)平臺—機器人傳感器[5]。在交互指令執(zhí)行上,智能機器人傳感器將數(shù)據(jù)信息上傳至大數(shù)據(jù)平臺,大數(shù)據(jù)平臺通過智能檢測算法模型基于功能服務(wù)進(jìn)行分析,將處理結(jié)果回傳至TSP平臺,TSP平臺根據(jù)數(shù)據(jù)結(jié)果判斷指令推送條件從而形成特定的編碼傳至智能機器人控制系統(tǒng)終端[6]。
障礙檢測及避障模塊設(shè)計主要是為了幫助智能機器人更好的檢測障礙,通過障礙物大小、種類等特征識別形成對應(yīng)的避障路線,提高智能機器人的行駛安全性[7]。本系統(tǒng)為了提高避障模塊的方向性,采用的是紅外線避障檢測方式通過特定數(shù)量的脈沖發(fā)射和接收量來判斷障礙物情況。具體流程如圖3所示:
圖3 避障模塊流程圖
轉(zhuǎn)向避障程序代碼:
#Direction control and Package into a function
# left
def robot_turn_left():
GPIO.output(frontMotorEnableGPIO.HIGH)
GPIO.output(11GPIO.HIGH) GPIO.output(7,GPIO.LOW)
backMotorPwm.ChangeDutyCycle(66)
time.sleep(1)
# RIGHT
def robot turn right():
GPIO.output(frontMotorEnableGPIO.HIGH)
GPIO.output(11GPIO.LOW GPIO.output(7GPIO.HIGH)
backMotorPwmChangeDutyCycle(66) time.sleep(1)
本系統(tǒng)采用的是同步通信方式的形式:在通信流程上,首先控制系統(tǒng)向智能機器人舵機發(fā)送指令包;其次接收智能機器人傳感器及舵機信息反饋;最后進(jìn)行下一步指令發(fā)送和數(shù)據(jù)儲存。在整個通信過程中只有第一次通信得到反饋后才能下達(dá)第二次指令[8]。
電機控制模塊主要是為了實現(xiàn)智能機器人的速度測速和控制,以此來提高智能機器人的穩(wěn)定性,首先在調(diào)速功能實現(xiàn)上,采用的是PWM信號來調(diào)節(jié),工作原理是借助輸出波形占比空間來獲取電機電驅(qū)端電壓,其次對輸出電壓大小調(diào)節(jié)來實現(xiàn)電機速度的變化,從而做到智能機器人速度有效控制[9]。最后在電機測速方面本系統(tǒng)主要通過反射式光學(xué)編碼器進(jìn)行測試,對電機單元時間內(nèi)產(chǎn)生的脈沖數(shù)量來輸出波形,形成碼盤條紋、依據(jù)公式s=2πr×cnt/(N×T),T為單元周期,N為條紋數(shù),r為智能機器人車輪半徑,s為行進(jìn)距離,根據(jù)距離s和時間周期T從而得出電機速度。
硬件電路調(diào)試是電路設(shè)計的重點內(nèi)容。只有通過連續(xù)性設(shè)計才能更好地發(fā)現(xiàn)問題,從而找到系統(tǒng)缺陷并進(jìn)一步完善相關(guān)功能,設(shè)計出符合目標(biāo)要求的軟件系統(tǒng)。為了提高開發(fā)效率,本次測試采用的是邊安裝邊測試的方式。
(1)電路圖檢測:對PCB板的電路焊接、元器件通電情況、短路等情況,如采用萬用表檢測。
(2)電壓測試:在PCB焊接前需要進(jìn)行靜態(tài)測試,對各芯片、元器件的電源引腳電壓進(jìn)行檢測,避免出現(xiàn)燒壞。
(3)總體調(diào)試:通過仿真器連接來判斷系統(tǒng)工作情況,如果能進(jìn)入到仿真環(huán)境就說明系統(tǒng)軟件正常[10]。
在軟件調(diào)試上,利用仿真測試來進(jìn)行軟件系統(tǒng)調(diào)試,通過驗證相關(guān)功能模塊的運行狀態(tài)來提高功能模塊開發(fā)效率。軟件調(diào)試方式常用軟件級仿真和芯片級仿真,由于ATmega128設(shè)計有JTAG仿真調(diào)試接口如圖4,故本次軟件調(diào)試采用芯片級仿真?;驹硎窃谠骷?nèi)部定義一個TAP(Test Access Port:測試訪問口),通過專用的JTAG測試工具對內(nèi)部節(jié)點進(jìn)行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,實現(xiàn)對各個器件分別測試。目前JTAG接口還常用于對FLASH等器件進(jìn)行編程[11]。
圖4 仿真調(diào)試JTAG接口電路圖
綜上所述,工業(yè)4.0時代智能機器人勢必會替代人工從事高頻性、危險性、復(fù)雜性等工作領(lǐng)域。其控制系統(tǒng)的設(shè)計逐漸受到重視,智能機器人控制系統(tǒng)開發(fā)與設(shè)計是一項持續(xù)性工程,需要隨著智能機器人的應(yīng)用場景、功能需求進(jìn)行轉(zhuǎn)變,要綜合考慮各方面的因素,同時掌握各個子系統(tǒng)的基礎(chǔ)功能和設(shè)計要求。本設(shè)計實現(xiàn)了基于ATmega系列AVR單片機的智能機器人控制系統(tǒng)開發(fā),并通過障礙檢測及避障功能、速度控制功能、轉(zhuǎn)向功能、人機交互等模塊來確保智能機器人控制的有效性和準(zhǔn)確性。