吳 碩,吳 桐,趙繼忠
(1.遼寧裝備制造職業(yè)技術(shù)學(xué)院,沈陽 110161;2.北京機械工業(yè)自動化研究所,北京 100120)
根據(jù)教學(xué)實訓(xùn)的需要,設(shè)計了一個五自由度的機械臂,該機械臂運動控制系統(tǒng)采用兩級控制方式。首先設(shè)計了機械臂硬件電路,其次給出了軟件設(shè)計的思路和流程,最后,通過MATLAB和ADAMS軟件對機械臂單關(guān)節(jié)進行了運動控制仿真,得到較理想的結(jié)果。
機械手臂整個結(jié)構(gòu)為空間關(guān)節(jié)型的,其裝配示意圖如圖1所示。該機械臂具有五個自由度,分別為:腰關(guān)節(jié)、肩關(guān)節(jié)、臂關(guān)節(jié)、肘關(guān)節(jié)、腕關(guān)節(jié),均為轉(zhuǎn)動關(guān)節(jié)。其中底盤(腰關(guān)節(jié))實現(xiàn)機械臂本體機構(gòu)的轉(zhuǎn)動;底盤與大臂、小臂三個關(guān)節(jié)實現(xiàn)空間位置的定位;腕關(guān)節(jié)兩個自由度實現(xiàn)俯仰和擺動,通過改變手爪的位姿,方便負載的抓取。
圖1 機械手裝配圖
目前工業(yè)機器人運動控制系統(tǒng)中常用的電機有:直流伺服電機、交流伺服電機、步進電機等。考慮到機械臂系統(tǒng)應(yīng)用于教學(xué),我們采用簡單且利于控制的小型直流伺服電機。在選用電機型號的同時,還要考慮電機的尺寸及對應(yīng)的機械臂關(guān)節(jié)所能承受的最大轉(zhuǎn)矩。在本系統(tǒng)中大臂的仰視所承受的力矩最大,通過靜力學(xué)估算[1],得知所受力矩為13.6N·m。我們選擇MAXON公司的RE-max24系列的直流電直流伺服電機作為驅(qū)動電機與減速器。
控制系統(tǒng)采用PC上位機和DSP下位機兩級分布式控制結(jié)構(gòu),其系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 運動控制系統(tǒng)總體設(shè)計
我們采用TI公司的TMS320LF2407型DSP作為控制單元。它具有獨立的程序存儲空間和數(shù)據(jù)存儲空間,運算速度極快,時鐘頻率可達40MHz,由于其內(nèi)置事件管理器模塊(EVA, EVB),所以該型號的DSP在電機控制領(lǐng)域具有非常廣泛的應(yīng)用。
由于機械臂各關(guān)節(jié)直流驅(qū)動電機采用的是12V電壓,所以在控制電路系統(tǒng)中,設(shè)計12V的直流電源供電。因為大多數(shù)的電路板芯片采用的是5V電壓,且DSP的內(nèi)核電源、I/O電源、鎖相環(huán)電源要求的是3.3V電壓,所以需要設(shè)計兩種獨立的電源模塊。首先使用L7805芯片將12V電源轉(zhuǎn)變成5V,然后使用LM1117芯片將5V電源轉(zhuǎn)變成3.3V,如圖3所示。
圖3 電源電路設(shè)計
TMS320LF2407的時鐘源可以使用晶體,利用內(nèi)部振蕩器產(chǎn)生時鐘,也可使用自外部晶振源。使用外部時鐘時,時鐘的精度高、信號比較穩(wěn)定,因此我們選用外部時鐘作為時鐘源。同時,TMS320LF2407采用了鎖相環(huán)技術(shù),可以對外部時鐘源進行倍頻,控制器的晶振頻率為l0MHz,經(jīng)鎖相環(huán)電路4倍頻后,系統(tǒng)的時鐘為40MHz,可以滿足大量計算以及實時控制的要求。外部時鐘和鎖相環(huán)電路如圖4所示。
圖4 時鐘電路設(shè)計
在編碼器的設(shè)計環(huán)節(jié)中,把編碼器輸出的3個通道的差分信號轉(zhuǎn)換成TTL電平的A,B,Z三個脈沖信號。A,B相經(jīng)過光耦隔離后接DSP內(nèi)部的正交編碼器電路單元(QEP),用以測量電機的轉(zhuǎn)速和位置。在軟件中設(shè)置QEP為雙向加/減計數(shù)模式,QEP電路使能時,A,B信號的上升沿和下降沿均被QEP計數(shù),經(jīng)鎖相環(huán)后送到計數(shù)器中的信號頻率是A,B信號脈沖頻率的4倍;QEP的邏輯檢測能夠確定A,B哪個脈沖信號領(lǐng)先,產(chǎn)生一個方向信號DIR用來控制計數(shù)器的計數(shù)方向。編碼器處理電路如圖5所示。
對電機轉(zhuǎn)速和關(guān)節(jié)絕對位置的測量,首先需要確定關(guān)節(jié)的零位。然后,通過外部傳感器檢測信號和光電增量編碼器的z脈沖信號相結(jié)合的方式,便可確定關(guān)節(jié)的絕對位置。我們選用常開型霍爾接近開關(guān),其接法如圖6所示。其中HALL1,HALL2用以測定關(guān)節(jié)控制器運動的極限位置,HALL3用于絕對零位檢測。
圖6 霍爾接近開關(guān)的接法
TMS320LF2407內(nèi)置串行通信SCI模塊,支持其他外設(shè)與DSP的異步串行的通信,因為 DSP芯片引腳電平與RS-232邏輯電平不同,因此需要通過MAX232芯片進行電平轉(zhuǎn)換,如圖7所示。值得注意的是,從MAX232引出來的信號不能直接與DSP連接,需要電阻分壓。
圖7 串行通訊電路的設(shè)計
我們采用ADAMS和MATLAB軟件對單關(guān)節(jié)機械臂運動控制進行仿真。其中ADAMS用以建立機械系統(tǒng),MATLAB軟件用以建立運動控制系統(tǒng)。用MATLAB控制輸出ADAMS機械部分。
通過在ADAMS軟件中添加5個關(guān)節(jié)、電機驅(qū)動轉(zhuǎn)矩、角速度參數(shù),經(jīng)過變量的賦值、函數(shù)的創(chuàng)建等方式后轉(zhuǎn)換成MATLAB文件,在MATLAB文件中生成機械臂機械子系統(tǒng),如圖8所示。
圖8 MATLAB環(huán)境下機械臂子系統(tǒng)
對于機械臂的5個關(guān)節(jié)的位置控制,采用基于分解控制律的PID對末端的位姿控制,從而實現(xiàn)期望位置或期望軌跡[2]。在Simulink模塊中建立仿真的控制部分,在適當(dāng)位置嵌入機械部分模塊,從而建立ADAMS和Simulink的聯(lián)合仿真系統(tǒng)[3],如圖9所示。
選擇腰關(guān)節(jié)進行仿真實驗,設(shè)置仿真時間為10s。在MATLAB中輸入相應(yīng)命令,運動90°后測試系統(tǒng)的角位移曲線,得到如圖10所示的角位移曲線圖。圖10中實際試驗曲線與仿真曲線不完全一致。當(dāng)0.8s左右,關(guān)節(jié)才開始動作,這是由傳動機構(gòu)的間隙造成的,也有傳感器的檢測時間的原因。同時,控制系統(tǒng)存在一定的穩(wěn)態(tài)誤差,主要是由機械摩擦和傳感器的精度誤差所造成[4]。
因為仿真系統(tǒng)采用的是一個理想化,線性化模型,實際試驗存在各種非線性因素,兩者必然會存在誤差。總體來說,控制算法和參數(shù)選取比較合理。機械臂的其余四個轉(zhuǎn)動關(guān)節(jié)和腰關(guān)節(jié)一樣,具有類似的階躍響應(yīng)特性。
圖9 機械臂PID控制系統(tǒng)
圖10 控制系統(tǒng)的階躍相應(yīng)曲線
[1]Abdel-Malek K, Yeh H J.Analytical Boundary of the Workspace for General 3-DOF Mechanisms [J].International Journal of Robotics Research.1997,16 (2):198-213.
[2]John J C.Introduction to Robotics: Mechanics and Control[M].北京:機械工業(yè)出版社,2010.
[3]李軍,邢俊文,覃文杰.ADAMS實例教程[M].北京:北京理工大學(xué)出版社,2002.
[4]任崇軒.五自由度機械臂運動和控制仿真分析[D].廣東:華南理工大學(xué),2012.