劉斯特,何新霞
(中國石油大學(華東) 新能源學院,山東 青島 266580)
機械臂作為智能機器人的一個重要組成部分,可以根據(jù)上位機下達的指令,模仿人類手臂及手部動作,完成抓握、屈臂、旋轉(zhuǎn)等動作,從而達到控制人員預期的工作效果。一個多自由度機械臂控制系統(tǒng)由上位機、通訊系統(tǒng)、控制系統(tǒng)、電源模塊、機械結(jié)構(gòu)(支架、底座、舵機、機械手爪)等諸多模塊單元組成,其中上位機的作用是發(fā)送控制指令,并對機械臂進行狀態(tài)監(jiān)控,通訊系統(tǒng)連接上位機與控制系統(tǒng),控制系統(tǒng)則負責指令的處理和對機械臂的控制。
應急機器人是針對處理油氣場站有毒氣體泄漏事故的特種作業(yè)機器人,采用履帶式車體,具有一個六自由度機械臂,能夠通過無線通信模塊進行遠程控制,并且能夠通過傳感器和攝像頭將機器人周圍的環(huán)境參數(shù)和現(xiàn)場圖像傳輸給上位機控制端,方便操作人員了解機器人的工作環(huán)境,從而開展應急處理工作。
當油氣場站內(nèi)部發(fā)生氣體泄漏事故時,事故現(xiàn)場可能存在各種安全隱患,應急機器人可以代替工作人員進入事故現(xiàn)場,采集現(xiàn)場環(huán)境參數(shù)(氣體濃度、環(huán)境圖像),讓工作人員了解現(xiàn)場情況,并完成啟閉氣體閥門等應急處理工作,從而盡量避免二次災害以及人員傷亡[1]。而為了方便機器人進行應急處理工作,一個在工作過程中可以由操作人員遠程控制,用來完成快速清障、啟閉閥門等工作的機械臂,是應急機器人的一個不可或缺的組成部分。
本文設計一個機械臂無線控制系統(tǒng),以TI公司的TMS320F28335 DSP為數(shù)字信號處理器實現(xiàn)對舵機機械臂的控制,基于高通公司的AR9331 WiFi模塊建立無線通信網(wǎng)絡,從而搭建了一個DSP—WiFi模塊—上位機的線形實驗平臺[2]。以該實驗平臺為基礎開展機械臂的調(diào)試實驗,驗證機械臂的各項功能滿足設計要求。
該系統(tǒng)由5個部分組成:舵機機械臂、電源模塊、DSP、WiFi模塊、上位機。其中上位機為筆記本電腦,通過調(diào)試軟件可以向DSP發(fā)送控制指令。WiFi模塊的控制芯片選型為AR9331芯片,以該芯片為中心搭建的WiFi模塊可以通過DSP的串行通信(SCI,serial communication interface)模塊與DSP相連,通過無線網(wǎng)卡與上位機相連,從而建立通信網(wǎng)絡實現(xiàn)上位機與機械臂的實時通訊。DSP作為核心處理器則是負責接收上位機的控制指令以及依照指令發(fā)出脈沖寬度調(diào)制(PWM,pulse width modulation)信號控制舵機動作。而機械臂是由6個舵機和金屬支架組裝而成,是整個系統(tǒng)的動作主體,接收PWM信號后轉(zhuǎn)動相應的角度,使得機械臂能夠完成不同的動作。電源模塊則為機械臂的6個舵機提供5 V供電。機械臂無線控制系統(tǒng)的原理圖如圖1所示。
圖1 機械臂無線控制系統(tǒng)原理圖
TMS320F28335 DSP是TI公司研發(fā)的一款適用于數(shù)字信號處理運算的微處理器,擁有12路脈寬調(diào)制通道PWM,6組脈沖捕獲單元CAP,3個SCI串行通信通道,12個可配置外部中斷,88個通用數(shù)字量輸入/輸出接口(GPIO,general-purpose input/output),運算能力強大,滿足機械臂控制系統(tǒng)的需求,因此選擇F28335 DSP作為機械臂無線控制系統(tǒng)的主控制器[3]。
28335 DSP作為主控制器的作用包括2個部分:一是利用SCI模塊接收WiFi模塊傳輸過來的控制指令,并對其進行解析;二是通過增強型脈寬調(diào)制模塊(ePWM,enhanced PWM modules)發(fā)出6路獨立的PWM控制信號控制舵機動作。
1)SCI模塊:
SCI模塊的通信方式屬于異步串行通信。與并行通信相比,雖然串行通信傳輸速度較慢,但是串行通信可以同時傳輸數(shù)據(jù)信息和控制信息,因此串行通信占用的硬件空間更小,需要的數(shù)據(jù)線路更少,其傳輸成本更低,更適合遠距離通信;相較于同步通信來說,異步通信中收發(fā)雙方的設備可以擁有獨立的時鐘脈沖信號,由各自的時鐘實現(xiàn)數(shù)據(jù)的發(fā)送和接收,因此傳輸數(shù)據(jù)更加自由、靈活[4]。
SCI是一個雙線異步串口,由發(fā)送和接收兩根信號線組成。F28335內(nèi)部有3個SCI模塊,每個模塊各有一個發(fā)送器(TX)和接收器(RX),同時SCI模塊的發(fā)送器和接收器還各有一個16級深度的FIFO隊列緩沖[5]。SCI模塊框圖如圖2所示。SCI模塊通過接收引腳接收數(shù)據(jù),存放在接收移位寄存器中,當DSP準備讀取數(shù)據(jù)時,數(shù)據(jù)由移位寄存器存入接收數(shù)據(jù)緩沖寄存器;當DSP準備發(fā)送數(shù)據(jù)時,CPU將數(shù)據(jù)存入發(fā)送數(shù)據(jù)緩沖寄存器,再將數(shù)據(jù)轉(zhuǎn)入移位寄存器中,最后將數(shù)據(jù)移位到發(fā)送引腳上,通過發(fā)送引腳發(fā)送數(shù)據(jù)。
圖2 SCI模塊框圖
28335 DSP通過SCI模塊的串行接口RX可以接收從上位機發(fā)出、經(jīng)由WiFi模塊傳輸?shù)目刂浦噶睢?/p>
2)ePWM模塊:
PWM控制技術(shù)就是對脈沖寬度進行調(diào)制的技術(shù)。由采樣控制理論中的重要結(jié)論——面積等效原理(沖量相等而形狀不同的窄脈沖加載到具有慣性的環(huán)節(jié)上時,其效果基本相同,沖量即窄脈沖的面積)可得,將原始波形如正弦波,可以用沖量相等的一系列窄脈沖代替,這些窄脈沖幅值相等,寬度按正弦規(guī)律變化,這就是PWM波形。而要改變等效輸出信號的幅值時,只要按照統(tǒng)一比例系數(shù)改變各脈沖寬度即可[6]。
28335 DSP的ePWM模塊共有6個PWM單元,每個PWM單元相互獨立,互不干擾,但可以通過同步時鐘信號將所有單元聯(lián)系起來。每個PWM單元由兩路PWM輸出信號組成,分別為ePWMxA和ePWMxB,共12路PWM信號[7]。通過控制DSP輸出6路獨立的PWM信號就可以控制機械臂上的6個舵機的旋轉(zhuǎn)角度,從而操控機械臂做出各種動作。
舵機是由一個小型的直流電機、一個減速齒輪組、位置反饋電位器和控制電路板(包括一個電壓比較器、輸入信號和電源)組成的[8]。作為一種位置(角度)伺服驅(qū)動器,舵機具有輸出精度高,控制簡單等特點[9],它的三條輸入線分別是5 V電源線VCC、地線GND和控制信號線。
舵機的控制原理如下:控制信號(PWM信號)通過信號線輸入,由控制電路板接收該信號,產(chǎn)生一個直流偏置電壓,該偏置電壓與位置反饋電位器測得的反饋電壓比較之后,得到一個差分電壓輸出,該差分電壓經(jīng)過控制電路板處理后控制直流電機的轉(zhuǎn)動方向和速度,電機轉(zhuǎn)動帶動減速齒輪組運轉(zhuǎn),與齒輪組同軸的舵盤被帶動,轉(zhuǎn)動一定角度后停止。
本文中機械臂所采用的舵機是MG995舵機,旋轉(zhuǎn)力矩大(13 kg/cm),響應速度快(0.17 s/60°)。MG995舵機是一種180°舵機,通過信號線輸入周期為20 ms、脈寬0.5~2.5 ms的PWM信號,即可調(diào)節(jié)舵機的旋轉(zhuǎn)角度。其中脈寬1.5 ms的基準信號對應中間位置90°[10]。舵機旋轉(zhuǎn)角度與輸入PWM信號脈寬的關(guān)系見表1。
表1 舵機旋轉(zhuǎn)角度與PWM脈寬的關(guān)系
本文中應急機器人機械臂的主要作用是完成啟閉閥門、清理障礙物等工作,因此機械臂必須具有足夠的自由度,能夠靈活地進行操作。本文采用六自由度機械臂,該機械臂采用仿人手臂結(jié)構(gòu),大體可以分為大臂、小臂和手部3個部分,大臂通過肩關(guān)節(jié)與底座相連,通過肘關(guān)節(jié)與小臂相連,小臂通過腕關(guān)節(jié)與手部相連。機械臂的硬件組成部分包括機械手爪、金屬支架、MG995舵機、底座,由舵機模仿人手臂各個關(guān)節(jié),各個關(guān)節(jié)之間通過U型支架連接,而機械手爪作為手部由舵機控制開、合[11]。舵機通過主控制器DSP的ePWM模塊進行控制,調(diào)節(jié)PWM信號的脈沖寬度,即可調(diào)節(jié)舵機的旋轉(zhuǎn)角度,從而控制機械臂動作[12]。
機械臂實物圖如圖3所示,為六自由度機械臂,①~⑥為舵機編號。機械臂總長428 mm,可以抓起重達500 g的物品,其中舵機的反應速度可達0.17 s/60°,考慮到控制指令的無線傳輸及處理,機械臂可以在0.5 s以內(nèi)實現(xiàn)各種動作。
圖3 機械臂實物圖
WiFi技術(shù)是一種用來實現(xiàn)電子設備之間數(shù)據(jù)交換以及接入互聯(lián)網(wǎng)的無線通信技術(shù)。WiFi無線網(wǎng)絡包括2種類型的拓撲結(jié)構(gòu):基礎網(wǎng)和自組網(wǎng)?;A網(wǎng)的定義是以無線接入點(AP)為中心,各個站點(STA)之間通過AP進行數(shù)據(jù)的雙向傳輸;而自組網(wǎng)的定義則是各個STA之間直接通訊,不需要通過AP轉(zhuǎn)發(fā)[13]。兩種拓撲類型的主要區(qū)別在于各個站點之間能否直接進行通訊。
無線控制的優(yōu)勢在于組件網(wǎng)絡時免去布線工作,節(jié)省了安裝成本,簡化了網(wǎng)絡結(jié)構(gòu),而且無線控制控制范圍廣,傳輸速度快,可以滿足系統(tǒng)各個方面的需求。
由于設計需要,本文采用基礎網(wǎng)的拓撲結(jié)構(gòu),將WiFi模塊設置為AP無線接入點,將DSP控制器和上位機(電腦)設置為STA站點,從而構(gòu)建一個無線控制系統(tǒng)。
本文采用高通AR9331 WiFi模塊作為DSP與上位機之間的通信模塊。AR9331 WiFi模塊預置openwrt路由系統(tǒng),還擁有32 M內(nèi)存,4M Flash,以及多種外部接口(USB2.0、SCI串口、百兆網(wǎng)口、GPIO),串口頻率為9 600,同時該模塊符合國際標準的IEEE 802.11b/g/n協(xié)議,采用DSSS、OFDM、BPSK、QPSK、CCK和QAM基帶調(diào)制技術(shù),能自適應路由器等設備的無線熱點,最高連接速率可達150 Mbps,可以實現(xiàn)視頻傳輸和指令雙向傳輸功能[14]。因此AR9331 WiFi模塊十分適合該無線控制系統(tǒng),能夠建立一個穩(wěn)定的無線網(wǎng)絡,實現(xiàn)舵機機械臂的無線控制。
本文中舵機的電源模塊是一個12~3.3/5 V電源轉(zhuǎn)換模塊,電源是由3節(jié)18 650鋰電池組成的電池組,經(jīng)過電源轉(zhuǎn)換模塊進行電壓變換后得到舵機需要的5 V直流電壓。鋰離子電池具有重量輕、容量大、無記憶效應及不含有毒物質(zhì)等優(yōu)點,因而得到了普遍應用。鋰離子電池的能量密度很高,它的容量是同重量的鎳氫電池的1.5~2倍,而且具有很低的自放電率。由鋰電池作為供電電源可以為機械臂無線控制系統(tǒng)提供穩(wěn)定的直流供電電壓。
機械臂無線控制系統(tǒng)的軟件架構(gòu)基于TI公司為DSP開發(fā)人員提供的集成開發(fā)環(huán)境——CCS6.0程序開發(fā)平臺。CCS包含一整套用于開發(fā)和調(diào)試嵌入式應用的工具,它包含了用于優(yōu)化的C/C++編譯器、源碼編譯器、項目構(gòu)建環(huán)境、調(diào)試器、描述器以及多種其他功能[15]。CCS將集成軟件開發(fā)環(huán)境的框架優(yōu)點和TI先進的嵌入式調(diào)試功能相結(jié)合,為嵌入式開發(fā)人員提供了一個功能強大的開發(fā)環(huán)境[16]。
本文中控制系統(tǒng)程序的主要功能包括輸出PWM信號、SCI串行通信、對上位機指令進行解析。
1)PWM模塊:
首先要對DSP的ePWM模塊進行GPIO初始化,讓對應的6個GPIO引腳進入PWM模式,并且計數(shù)模式選為向上—下計數(shù)模式。中央處理器(CPU,central processing unit)的時鐘頻率默認為150 MHz,因此選擇通過設置時基控制寄存器對時鐘頻率進行48分頻,分頻后的時鐘頻率為3.125 MHz[17]。同時舵機PWM控制信號的周期為20 ms,即頻率為50 Hz,可以根據(jù)公式(1)計算得到時基周期寄存器的值PRD。
(1)
時基周期寄存器的值為31 250,對應PWM控制信號的周期20 ms。此時PWM占空比D可通過計數(shù)比較寄存器的值cmp和時基周期寄存器的值PRD計算得到,如公式(2)所示:
(2)
由此可以得到計數(shù)比較寄存器的值cmp與PWM信號脈寬的關(guān)系見表2。
表2 cmp與PWM脈寬的關(guān)系
ePWM模塊設置程序的部分程序如下所示:
void Init_ePWM(void)
{
InitEPwm4Gpio();
EPwm4Regs.CMPCTL.all=0;
EPwm4Regs.AQCTLA.all=0x0090;
EPwm4Regs.AQCTLB.all=0x0900;
……
EPwm4Regs.TBCTL.all=0x2B0E;
EPwm4Regs.TBPRD=31250;
EPwm4Regs.CMPA.half.CMPA =cmp;
}
2)SCI模塊:
首先初始化GPIO引腳,使其進入SCI模式,然后啟用SCI接收中斷,對SCI模塊進行參數(shù)的初始化設置[18]:
①復位SCI模塊,使能接收器和發(fā)送器以及對應的接收中斷和發(fā)送中斷。
②設置SCI串行通信的數(shù)據(jù)格式為1位停止位,無奇偶校驗位,8位數(shù)據(jù)位。
③設置串行通信的波特率為9 600。
當上位機發(fā)送的控制指令經(jīng)過WiFi模塊傳輸給DSP時,程序跳轉(zhuǎn)SCI接收中斷,通過SCI模塊的接收器接收每組控制指令,每組指令包括3個8位整型數(shù)據(jù),每次跳轉(zhuǎn)SCI中斷就會接收一個8位數(shù)據(jù)并將該數(shù)據(jù)賦值給一個數(shù)組,3次中斷之后該數(shù)組內(nèi)的數(shù)據(jù)就是完整的控制指令。接收完一組指令后DSP會開始執(zhí)行指令解析程序,將上位機的控制指令轉(zhuǎn)換為對應的舵機動作。
SCI模塊初始化程序如下所示:
void Init_scib(void)
{
ScibRegs.SCICTL1.bit.SWRESET =0;
ScibRegs.SCICCR.all =0x0007;
ScibRegs.SCICTL1.all =0x0003;
ScibRegs.SCICTL2.all =0x0003;
ScibRegs.SCICTL2.bit.TXINTENA = 1;
ScibRegs.SCICTL2.bit.RXBKINTENA =1;
#if (CPU_FRQ_150MHZ)
ScibRegs.SCIHBAUD =0x0001;
ScibRegs.SCILBAUD =0x00E7;
#endif
ScibRegs.SCICTL1.all =0x0023;
}
3)指令解析程序:
當DSP接收到來自上位機的控制指令之后,需要將該指令進行解析。在指令解析程序中,DSP需要根據(jù)接收到的指令判斷需要動作的舵機編號,并根據(jù)給定的旋轉(zhuǎn)角度計算計數(shù)比較寄存器的值cmp(對應PWM信號的脈寬),從而輸出正確的PWM控制信號驅(qū)動舵機[19]。假設給定的旋轉(zhuǎn)角度為x(0~180°),計算cmp的過程如公式(3)所示:
(3)
舵機的旋轉(zhuǎn)角度(0~180°)需要先由上位機轉(zhuǎn)換成十六進制的數(shù)據(jù)(0x00-0xB4)才能發(fā)送。上位機控制指令的格式見表3。
表3 上位機控制指令格式
指令解析程序如下所示(buffer[3]數(shù)組為指令數(shù)組,負責存放類型位、命令位和數(shù)據(jù)位指令):
void command(void)
{
if(buffer[0] 0x02)
{
switch(buffer[1])
{
case 0x01:angle[0]=buffer[2];
Servo1(angle[0]);
break;
……
}
}
}
void Servo1(Uint16 x)
{
cmp=(x/180.0)*3124+782;
cmp=(int)cmp;
EPwm1Regs.CMPA.half.CMPA = cmp;
}
TMS320F28335 DSP是機械臂無線控制系統(tǒng)軟件的運行主體,當系統(tǒng)啟動后,操作人員在上位機端發(fā)出控制指令,通過WiFi模塊將指令傳輸給DSP,DSP接收指令后對指令進行解析處理,并對舵機發(fā)出PWM控制指令[20]。DSP的程序流程圖如圖4所示。
圖4 程序流程圖
面向應急機器人的機械臂無線控制系統(tǒng)實驗平臺如圖5所示,本文基于該實驗平臺對機械臂進行性能測試。其中,車身為應急機器人本體(履帶式結(jié)構(gòu)),作為系統(tǒng)各個模塊的載體;電源模塊為舵機機械臂提供穩(wěn)定的5 V電壓支持;DSP與6個舵機和WiFi模塊相連,通過WiFi模塊與上位機溝通,接收控制指令后控制舵機旋轉(zhuǎn),從而完成不同的動作以進行應急操作。
圖5 系統(tǒng)實驗平臺
在實驗調(diào)試過程中,首先要設置WiFi網(wǎng)絡參數(shù):使用TCP Client模式,將遠程主機地址設為192.168.1.1,遠程主機端口設為2001,從而建立無線通信網(wǎng)絡,實現(xiàn)DSP與上位機的鏈接。系統(tǒng)上電后,通過上位機發(fā)出控制指令,控制機械臂完成清障實驗,該實驗過程如圖6所示。
圖6 清障實驗過程
實驗結(jié)果表明,當應急機器人前方出現(xiàn)障礙物時,操作人員可以通過控制機械臂將前方障礙移到側(cè)方,讓機器人能繼續(xù)前進[21],執(zhí)行下一步操作。在上位機發(fā)出控制指令后,機械臂能夠無延遲反應(機械臂響應時間在0.5 s以內(nèi)),做出相應的動作,包括抓握、關(guān)節(jié)旋轉(zhuǎn)等動作,完成清障任務,同時經(jīng)過測量,舵機旋轉(zhuǎn)角度的誤差在1°以內(nèi),滿足設計要求。
應急機器人是為了處理油氣場站突發(fā)有毒氣體泄漏事故的特種機器人,其機械臂模塊需要幫助機器人在復雜的事故現(xiàn)場環(huán)境中順利前進。本文以TMS320F28335 DSP和AR9331 WiFi模塊為核心搭建實驗平臺,設計了一個機械臂無線控制系統(tǒng),該系統(tǒng)具有靈敏度高、響應速度塊、動作精度高等優(yōu)點,機械臂可以完成清理障礙等操作,能夠滿足應急機器人的工作需求。