基于ARM核處理器的機(jī)器人手臂控制系統(tǒng)
近年來,隨著MEMS及相關(guān)技術(shù)的發(fā)展,微機(jī)器人領(lǐng)域已越來越來受人關(guān)注。但由于零件的尺寸很小,微機(jī)器人組件的裝配需要很高的精確度,一般的裝配方法無法滿足要求。本文介紹了一個可進(jìn)行微零件裝配工作的機(jī)器人手臂控制系統(tǒng)的控制方法。
1 系統(tǒng)結(jié)構(gòu)
考慮到多機(jī)器人手臂的使用,整個機(jī)器人控制系統(tǒng)由上位機(jī)與多個下位機(jī)組成。下位機(jī)即是手臂控制器,每個下位機(jī)控制一個機(jī)械手臂的伸縮運(yùn)動。上位機(jī)即為控制終端,通過不同配件組裝方式生成每個手臂的位置數(shù)據(jù),并通過數(shù)據(jù)線傳輸給各個下位機(jī),由下位機(jī)控制手臂到達(dá)目標(biāo)位置并進(jìn)行目標(biāo)操作。整個系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
1.1 機(jī)械結(jié)構(gòu)
如圖2所示,手臂控制器的機(jī)械結(jié)構(gòu)由直流減速電機(jī)、手臂、螺桿、減速齒輪、角度傳感器組成。機(jī)器人手臂與機(jī)械螺桿相連,螺桿與直流減速電機(jī)通過減速齒輪耦合,各個手臂控制器通過控制電機(jī)轉(zhuǎn)動來達(dá)到控制手臂位置的目的。同時,手臂控制器具有手動調(diào)節(jié)旋柄與螺桿相連,需要時可通過手動調(diào)節(jié),改變手臂位置。
1.2 電路結(jié)構(gòu)
手臂控制器由使用ARM內(nèi)核的PHLIPS LPC2138系列微處理器控制,電路結(jié)構(gòu)主要分為主控制模塊、測量反饋模塊和通信模塊,如圖3所示。通過主控制模塊控制電機(jī)狀態(tài),通過測量反饋模塊得到螺桿移動距離和位置,在達(dá)到規(guī)定位置后停止電機(jī)。而通信模塊則完成與上位機(jī)之間的數(shù)據(jù)交換。
2 電機(jī)控制
電機(jī)控制由主控制模塊和測量反饋模塊共同完成。
2.1 主控制模塊
LPC2138引腳分配如表1所示。
主控制器使用PHLIPS LPC2138微處理器,其具有64個引腳,31個雙向I/O口,2個8路10們A/D轉(zhuǎn)換器,能夠進(jìn)行電壓測量的工作,符合設(shè)計要求,其引腳分配如表1所示。電機(jī)使用RA-20GM-SD3 型直流減速電機(jī),其減速箱的減速比達(dá)到了1/1000,在減速后,電機(jī)轉(zhuǎn)速為4.5+/-0.9 rpm,在與1/2減速齒輪組進(jìn)一步耦合后,螺桿轉(zhuǎn)速為2.25 rpm,在所用螺桿齒距為1mm時,手臂移動述牢為3.75×10-2mm/s。
由于本設(shè)計中電機(jī)需要正反轉(zhuǎn)動,故選用了橋路驅(qū)動芯片TA8409,其具有兩個輸入口,兩個輸出口。微處理器通過控制輸入電平組合即可控制電機(jī)的不同狀態(tài),包括正轉(zhuǎn)、反轉(zhuǎn)、剎車減速和停止?fàn)顟B(tài)。
它的輸出電壓與電機(jī)工作電壓相符,即可直接驅(qū)動電機(jī),不用增加放大電路。
電機(jī)驅(qū)動電路圖如圖4所示。
2.2 測量反饋模塊
角度傳感器采用了Midori的CP-2FC,它的機(jī)械角度范圍為360度無限,傳感器把角度變化量轉(zhuǎn)化為電壓量并通過電壓測量電路反饋回微處理器A/D轉(zhuǎn)換口,通過電壓的變化量可計算得到螺桿的移動距離,這樣就可以得知手臂位置,并以這個為標(biāo)準(zhǔn)對電機(jī)驅(qū)動器發(fā)送命令。
電壓測量電路包含由運(yùn)算放人器構(gòu)成的電壓跟隨電路,如圖5所示,它既可隔離電路,又可以完成電壓跟隨。
3 通信模塊
3.1 RS-422通信標(biāo)準(zhǔn)
RS-422標(biāo)準(zhǔn)的數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,其全稱是“平衡電壓數(shù)字接口電路的電氣特性”。
其接收器采用高輸入阻抗,發(fā)送驅(qū)動器有比RS232更強(qiáng)的驅(qū)動能力,故允許在相同傳輸線上連接多個接收節(jié)點(diǎn),最多可接10個節(jié)點(diǎn)。即一個主設(shè)備(Master),其余為從設(shè)備(Salve),從發(fā)備之間不能通信,所以RS-422支持點(diǎn)對多的雙向通信。
RS-422的最大傳輸距離為4000英尺(約1219m),最大傳輸速率為10Mbit/s。
3.2 數(shù)據(jù)交換功能實(shí)現(xiàn)
本系統(tǒng)通信模塊采用RS-422標(biāo)準(zhǔn),線路長度約為200m,故通信的可靠性可得到保證。差分線路驅(qū)動器使用AM26LS31芯片,差分接受器使用AM26LS32芯片,微處理器的串行輸出口和輸入口分別與驅(qū)動器輸入和接收器輸出相連,并使用差分開路自動故障保險終端連接配置。
差分開路自動故障保險終端連接配置圖如圖6所示。
從而在發(fā)送器輸出端為高阻狀態(tài)時保證接受器輸入有至少200mV的電壓信號,使輸出不會出現(xiàn)未知的狀態(tài),提高可靠性,完成與上位機(jī)間的數(shù)據(jù)交換工作。另外,考慮到多機(jī)器人手臂的應(yīng)用情況,在手臂控制器中設(shè)有撥碼開關(guān)來設(shè)定編號,與上位機(jī)的數(shù)據(jù)交換必須包含該編號,并由此來判斷通信時目標(biāo)控制器的具體位置。
4 軟件設(shè)計
在設(shè)計了手臂控制器硬件的基礎(chǔ)上,我們設(shè)計了運(yùn)行在微處理器上的軟件應(yīng)用程序。主程序流程圖如圖7所示。
在控制器上電后,首先讀入撥碼開關(guān)的控制器編號,然后進(jìn)入等待模式。程序設(shè)定了UART中斷,當(dāng)上位機(jī)有數(shù)據(jù)傳送過來時,中斷發(fā)生。此時核對數(shù)據(jù)包中的控制器編號,若傳送編號與小控制器編號相符,則把數(shù)據(jù)讀入,并計算得到電機(jī)運(yùn)行方向和手臂移動距離。在電機(jī)運(yùn)行時,不斷讀取傳感器反饋電壓,并進(jìn)行計算,判斷手臂是否接近目標(biāo)位置和是否進(jìn)行剎車停車操作。電機(jī)停止后,即手臂到達(dá)目標(biāo)位置,此時控制器對上位機(jī)回復(fù)工作完成(通信時始終附帶控制器編號),并再次進(jìn)入等待狀態(tài)。
本系統(tǒng)中,可使用兩種算法來決定電機(jī)的減速停止命令的發(fā)送時機(jī)。
第一種是剛好是在測量得到手臂到達(dá)目標(biāo)位置之時發(fā)送減速停止命令,此算法執(zhí)行較為簡單,但不可避免會存在電機(jī)停止時螺桿位置偏離了目標(biāo)位置的情況。不過工作時手臂移動速度很低,已經(jīng)可以保證控制精度。第二種算法,即在接近目標(biāo)位置時進(jìn)行預(yù)測算法,在手臂到達(dá)目標(biāo)位置前發(fā)送剎車減速命令,使得螺桿停止位置與目標(biāo)位置差距更小,此算法雖較為復(fù)雜,但精度較第一種更高,在本設(shè)計中,我們使用第二種算法從而保證更高的控制精度。
手臂控制器程序是通過不斷讀取傳感器反饋值得到手臂位置的,雖然經(jīng)過預(yù)測算法提高算法精度,但由于傳感器本身也有一定的誤差,手臂停止位置不免會有偏差,但由于高精度的硬件設(shè)計,此誤差不會影響機(jī)械手臂大多數(shù)的工作。
5 結(jié)束語
本章設(shè)計了一個基于ARM核微處理器的機(jī)器人手臂控制系統(tǒng),對控制器的硬件設(shè)計進(jìn)行了詳細(xì)的敘述,并給出了系統(tǒng)結(jié)構(gòu)圖和部分電路的原理圖;介紹了控制軟件的設(shè)計并給出了程序的流程圖。由于使用了高減速比的減速箱來調(diào)整電機(jī)速度并配合了改良的算法,本手臂控制器的定位精度是比較高的。若在此基礎(chǔ)上加裝可控夾鉗,即可完成簡單可靠的裝配工作。