房立金,許繼謙,高 躍,趙乾坤,郭 鋮,錢奕安
(1.東北大學(xué)機器人科學(xué)與工程學(xué)院,沈陽 110819;2.東北大學(xué)機械工程與自動化學(xué)院,沈陽 110819)
一般的工業(yè)機械臂在進行裝配操作時,經(jīng)常會遇到精度不高的問題。目前針對這一問題的普遍解決方法是額外制作一套高精度的執(zhí)行機構(gòu)安裝在機械臂末端,進行位置的矯正并提高作業(yè)精度。
盡管采用諧波或RV 減速器極大地提高了機器人的精度,但機器人長時間運行時存在磨損,在機械臂高速運行狀態(tài)下,傳動間隙的影響依然存在,可能會引起系統(tǒng)震蕩從而導(dǎo)致系統(tǒng)無法工作,嚴(yán)重時可能會損壞設(shè)備結(jié)構(gòu)[1]。
此外,目前用于裝配的機械臂的電機、減速器等零件單價較高,且經(jīng)過長期使用磨損后精度降低,如果更換減速器,則會造成機器人使用成本的增加。
針對以上問題,本文提出一種多電機共軸驅(qū)動的七自由度機械臂,在機械臂的腰、肩、肘關(guān)節(jié)處布置了雙電機共軸驅(qū)動的關(guān)節(jié)結(jié)構(gòu)。一方面,可通過電機的消隙控制提高機械臂自身的運動精度;另一方面可以通過電機的同步控制提高機械臂的負(fù)載能力。文中提出一種機械臂的主要結(jié)構(gòu)以及針對多電機驅(qū)動的消隙和同步控制的方法,并基于ROS 和EtherCAT總線技術(shù),給出了機械臂控制系統(tǒng)的總體設(shè)計。
機械臂采用七自由度結(jié)構(gòu),利用冗余自由度的自運動特性,克服傳統(tǒng)六軸工業(yè)機器人在避障、運動靈活性等方面的缺點,提高機械臂運動的靈活性。
雙電機共軸驅(qū)動的目的主要有兩個方面:一方面是消除傳動間隙對機器人精度的影響;另一方面是在一定程度上提升機器人的負(fù)載能力。基于此,在機械臂的腰關(guān)節(jié)、肩關(guān)節(jié)、肘關(guān)節(jié)等大負(fù)載關(guān)節(jié),采用雙電機伺服驅(qū)動技術(shù)。其他關(guān)節(jié)采用帶有諧波減速器的關(guān)節(jié)結(jié)構(gòu),實現(xiàn)輕載關(guān)節(jié)的輕量、緊湊結(jié)構(gòu)設(shè)計,總體上兼顧了機械臂的負(fù)載能力、緊湊性及靈活性。機械臂樣機的總體結(jié)構(gòu)如圖1所示,結(jié)構(gòu)簡圖見圖2,D–H 參數(shù)見表1。
表1 機械臂的D–H 參數(shù)Table 1 D–H parameters of robotic arm
圖1 機械臂樣機Fig.1 Robotic arm
圖2 機械臂結(jié)構(gòu)圖Fig.2 Robotic arm structure diagram
雙電機共軸驅(qū)動通過兩臺驅(qū)動電機按照對稱結(jié)構(gòu)帶動兩個驅(qū)動輪共同驅(qū)動從動輪,在伺服系統(tǒng)啟動或換向的過程中,對兩臺驅(qū)動電機的輸出轉(zhuǎn)矩進行聯(lián)動控制,使得至少有一個驅(qū)動輪與從動輪相嚙合,保證系統(tǒng)無間隙傳動。
在結(jié)構(gòu)設(shè)計中,利用雙電機驅(qū)動漸開線齒輪傳動機構(gòu)來代替高精度的RV 減速器或諧波減速器來實現(xiàn)關(guān)節(jié)的高精度傳動。
如圖3所示,關(guān)節(jié)上包括兩組伺服電機和行星減速機構(gòu),驅(qū)動部件均安裝在支撐座內(nèi)部,兩組電機對稱布置在支撐座的左右兩端,并分別與共軸驅(qū)動齒輪組嚙合,輸出端添加了絕對位置編碼器。共軸驅(qū)動齒輪安裝有力矩傳感器,用以測量關(guān)節(jié)力矩,經(jīng)過連接法蘭與采用交叉滾子軸承支撐的輸出軸法蘭相連接。雙電機系統(tǒng)的傳動原理如圖4所示[2]。
圖3 雙電機共軸關(guān)節(jié)結(jié)構(gòu)示意圖Fig.3 Schematic diagram of dual-motor coaxial joint structure
圖4 雙電機伺服驅(qū)動關(guān)節(jié)原理[2]Fig.4 Principle of dual-motor servo drive joints[2]
所設(shè)計的雙電機關(guān)節(jié)均采用了較為常規(guī)的電機與減速器,相比單電機關(guān)節(jié)的高精度機械臂所采用的電機與減速器,更有利于降低機器人的使用成本。
雙電機消隙傳動方式的基本原理是控制雙電機的輸出力矩,既要保證跟蹤目標(biāo)軌跡,又要保證任意時刻至少有一個驅(qū)動齒輪與負(fù)載齒輪嚙合,在此基礎(chǔ)上最大限度地提高雙電機的能量利用率。根據(jù)雙電機原理劃分出相應(yīng)的狀態(tài)或模式進行控制。
為了更好地分析雙電機驅(qū)動系統(tǒng)的工作情況,本文依據(jù)消隙過程中的齒輪嚙合情況,將齒輪嚙合狀態(tài)劃分為異側(cè)齒面嚙合狀態(tài) (圖5(a),狀態(tài)DS)和同側(cè)齒面嚙合狀態(tài)(圖5(b),狀態(tài)SS)。同側(cè)齒面嚙合由正向齒面嚙合和反向齒面嚙合兩種不同的狀態(tài)組成。將正向同側(cè)齒面嚙合的狀態(tài)稱為正向狀態(tài)SS,將反向同側(cè)齒面嚙合的狀態(tài)稱為反向狀態(tài)SS。因此,可以將消隙過程用“狀態(tài)DS”、“正向狀態(tài)SS”、“反向狀態(tài)SS”來描述。圖5中,T1、T2為扭矩;ω為角速度;Tb為負(fù)載力矩;Td為擾動力矩。Tb、Td的方向和大小有多種不同的組合。
圖5 輪齒嚙合狀態(tài)Fig.5 Gear tooth meshing state
綜合考察系統(tǒng)從靜止、正向加速、勻速運動、減速、反向加速、勻速運動、減速再到靜止的整個作用過程,可以按照以下狀態(tài)對其進行描述。
(1)自由靜止?fàn)顟B(tài):系統(tǒng)未受到任何作用,系統(tǒng)靜止。
(2)狀態(tài)DS:主從電機輸出大小相等、方向相反的力矩消除間隙,系統(tǒng)靜止。
(3)狀態(tài)DS:主電機輸出正向驅(qū)動力,從電機輸出反向?qū)寡a償力矩,系統(tǒng)加速。
(4)正向狀態(tài)SS:主從電機共同輸出正向驅(qū)動力矩,系統(tǒng)加速。
(5)狀態(tài)DS:主從電機力矩達到平衡狀態(tài),系統(tǒng)勻速運動。
(6)狀態(tài)DS:從電機輸出反向制動力矩,主電機輸出正向?qū)寡a償力矩,系統(tǒng)減速以及反向加速。
(7)反向狀態(tài)SS:主從電機共同輸出反向力矩,系統(tǒng)反向加速。
(8)狀態(tài)DS:主從電機力矩再次達到平衡狀態(tài),系統(tǒng)反向勻速運動。
(9)狀態(tài)DS:主電機輸出正向制動力矩,從電機輸出反向?qū)寡a償力矩,系統(tǒng)減速。
(10)正向狀態(tài)SS:主從電機共同輸出減速制動力矩,系統(tǒng)減速。
(11)狀態(tài)DS:從電機輸出制動力矩,主電機輸出對抗力矩,處于力矩平衡狀態(tài),系統(tǒng)靜止。
上述雙電機消隙過程是動態(tài)的,需要實時動態(tài)地調(diào)整兩臺電機的輸出力矩,系統(tǒng)需要經(jīng)歷從狀態(tài)DS 和狀態(tài)SS 之間的多次切換過渡。
上述狀態(tài)之間的切換需要根據(jù)位置控制目標(biāo)、負(fù)載狀態(tài)以及電機當(dāng)前狀態(tài)等綜合情況來進行,控制過程比較復(fù)雜,采取簡單的控制手段難以完成兩臺電機輸出力矩的協(xié)調(diào)控制。
雙電機驅(qū)動消隙方法具有以下優(yōu)點[1]。
(1)能夠有效消除傳動間隙所導(dǎo)致的定位精度誤差,即使齒輪間隙由于系統(tǒng)長時間運行增大后,也不會影響系統(tǒng)的定位精度。
(2)采用普通精度的減速齒輪箱代替了具有機械消隙功能的高精度減速機構(gòu),減小了驅(qū)動系統(tǒng)的成本,不需要定期調(diào)整機械消隙機構(gòu),維護成本降低。
(3)應(yīng)用兩套伺服驅(qū)動系統(tǒng)共同承擔(dān)系統(tǒng)負(fù)載,每個伺服電機僅負(fù)擔(dān)最大功率的1/2,可以選擇較小的伺服電機和伺服驅(qū)動器。
(4)采用雙電機消隙方法可以有效解決伺服電機驅(qū)動負(fù)載頻繁換向,難以克服由間隙造成的瞬態(tài)誤差的問題。
雙電機系統(tǒng)的變偏置力矩控制原理如圖6所示(其中,nset為設(shè)定轉(zhuǎn)速;nact1為電機1 轉(zhuǎn)速;nact2為電機2轉(zhuǎn)速)。
主動軸與從動軸電機均采用速度控制方式,在電機速度控制的基礎(chǔ)上,建立位置控制環(huán)[3]。其中PI 控制器能夠均衡擾動負(fù)載,補償電壓控制器,同時控制主從軸之間的偏置力矩。主從軸電流調(diào)節(jié)器的輸入信號插值經(jīng)過PI 控制器運算輸出,作為附加的速度以相反符號分別反饋至主從軸的速度設(shè)定點,調(diào)節(jié)主從軸間的扭矩平衡分配形成力矩同步控制。
消隙偏置電壓Ubias經(jīng)過濾波器和PI 控制器后,作為設(shè)定的速度,分別以相反的符號作用于主軸和從軸,間接作用于電流調(diào)節(jié)器,使得主從軸之間形成偏置力矩來消除反向間隙。
圖6中虛線框內(nèi)即為雙電機偏置電壓的計算過程,將實時檢測的負(fù)載電流取絕對值后,選擇較大的電流值作為轉(zhuǎn)換函數(shù)的輸入值,輸入電流iabs為
圖6 雙電機變偏置力矩控制結(jié)構(gòu)框圖[3]Fig.6 Block diagram of dual-motor variable bias torque control structure[3]
式中,i1和i2分別為電機1 和2 的負(fù)載電流。
為了能夠?qū)崿F(xiàn)消隙控制與同步控制的切換,控制器中引入了一個轉(zhuǎn)換函數(shù)w,即
式中,iset1、iset2分別為轉(zhuǎn)換函數(shù)中電流設(shè)定值。
Uconst為設(shè)定的補償電壓;Uconst與w相乘后形成動態(tài)偏置電壓Ubias,Ubias∈[0,Uconst],偏置電壓值疊加作用在速度環(huán)給定處,在電機的輸出端形成偏置力矩Tbias∈[0,T0];T0為補償電壓Uconst對應(yīng)的偏置力矩值。根據(jù)偏置電壓的計算方法,可以計算出偏置力矩控制下,雙電機驅(qū)動系統(tǒng)正向運動時電機輸出力矩的大小。
電機1 和2 的輸出力矩分別為T1和T2,Tc為位置控制器算出的轉(zhuǎn)矩控制量,可根據(jù)對抗程度進行選擇。電機反向驅(qū)動時,電機的力矩與正向驅(qū)動同理,由以上分析得知,系統(tǒng)運動過程中,兩電機在任意時刻輸出的力矩均滿足響應(yīng)的力矩分配關(guān)系,滿足消隙控制階段、消隙控制與共同驅(qū)動相互轉(zhuǎn)換的過渡階段和共同驅(qū)動控制階段的力矩輸出要求。
雙電機系統(tǒng)中電機之間形成的偏置力矩是消除傳動間隙的關(guān)鍵,不同工作狀態(tài)下的消隙作用與偏置力矩的關(guān)系較為復(fù)雜,為了應(yīng)用方便并保證消隙效果,工程中常選擇較大的偏置力矩值,通常選擇電機額定扭矩的10%~30%作為消隙補償力矩[2]。
采用的同步控制方法可以使系統(tǒng)輸出較大的偏置力矩用于消隙,同時降低靜態(tài)偏置力矩減小能耗,并在無間隙表現(xiàn)時具備大力矩輸出能力,通過設(shè)置合理的電流設(shè)定值,即可得到相應(yīng)的轉(zhuǎn)換函數(shù)。
在雙永磁同步電機系統(tǒng)中,常會因為傳動鏈的扭轉(zhuǎn)剛度特性差異和電機所受的負(fù)載擾動的不同,電機之間存在一定概率的轉(zhuǎn)速差,剛性連接非常容易激發(fā)差速震蕩從而影響系統(tǒng)的穩(wěn)定性,嚴(yán)重時還可能會損壞設(shè)備結(jié)構(gòu)[4]。因此,需要提高控制系統(tǒng)的抗干擾性,從而減小驅(qū)動電機之間的速度同步誤差,減小差速震蕩的可能性。
目前,關(guān)于雙電機系統(tǒng)轉(zhuǎn)速同步控制主要集中在控制結(jié)構(gòu)與控制策略兩個部分。關(guān)于控制結(jié)構(gòu)的研究主要有并行控制方式[5]、主從控制方式[6]、交叉耦合控制方式[7],如圖7所示 (其中,ωref為給定角速度;ω1為電機1 角速度;ω2為電機2 角速度;K1、K2為兩臺電機角速度測量的系數(shù);TL1、TL2分別為兩臺電機的負(fù)載轉(zhuǎn)矩)。
圖7 雙電機系統(tǒng)轉(zhuǎn)速同步控制方式Fig.7 Synchronous control modes of dual-motor speed
控制策略方面,由于PI 控制具有結(jié)構(gòu)簡單、性能穩(wěn)定的特性,在工業(yè)中的各個領(lǐng)域得到了廣泛的應(yīng)用。隨著電子信息技術(shù)的逐漸發(fā)展,先進的控制算法逐步應(yīng)用于雙電機同步控制策略,如自適應(yīng)控制[8]、神經(jīng)網(wǎng)絡(luò)[9]、非線性高增益補償器[10]和模糊控制[11]等,但先進的控制算法往往依賴于控制對象模型的精度,在實際系統(tǒng)中存在很大的不穩(wěn)定性,影響了控制效果。
基于以上分析,為了實現(xiàn)消隙控制與雙電機同步控制之間的平衡轉(zhuǎn)換,采用主從控制結(jié)構(gòu)的同步控制策略,并應(yīng)用PI 控制方法,通過設(shè)計合理的轉(zhuǎn)換函數(shù),使消隙控制階段、消隙控制與共同驅(qū)動相互轉(zhuǎn)換的過渡階段和共同驅(qū)動控制3 個階段根據(jù)系統(tǒng)實際工作狀態(tài)以及相應(yīng)的轉(zhuǎn)換函數(shù)相互轉(zhuǎn)換。
為了提高整個機械臂工作時的實時性,在七自由度機械臂的控制系統(tǒng)設(shè)計中,采用了基于ROS 和EtherCAT總線的工業(yè)機器人控制系統(tǒng),應(yīng)用于Preempt_rt 實時框架下搭建的IgH EtherCAT 主站。
硬件系統(tǒng)通信采用了EtherCAT總線形式,其中腰關(guān)節(jié)、肩關(guān)節(jié)、肘關(guān)節(jié)采用的是前文中所設(shè)計的雙電機驅(qū)動關(guān)節(jié),末端的4 個關(guān)節(jié)采用了新松協(xié)作型機械臂的單電機驅(qū)動關(guān)節(jié)。
雙電機關(guān)節(jié)各采用了兩個EtherCAT 從站分別控制兩個電機;末端4 個關(guān)節(jié)采用了CAN 總線控制方式,通過所設(shè)計的EtherCAT 和CAN 總線轉(zhuǎn)換器,實現(xiàn)了末端4 個關(guān)節(jié)與整機的通信。工控機作為主站實現(xiàn)了整個機械臂的控制。硬件連接如圖8所示。
圖8 控制系統(tǒng)硬件整體架構(gòu)Fig.8 Overall hardware architecture of control system
控制系統(tǒng)軟件框架包括ROS和EtherCAT 兩個部分,其中ROS包括了人機界面、界面命令處理節(jié)點、MoveIt!、ros_control 4 個部分,EtherCAT 包括了IgH 主站和EtherCAT從站兩個部分[12]。
用戶程序在安裝了Preempt_rt實時內(nèi)核的Linux 系統(tǒng)下,完成了EtherCAT 主站控制的目標(biāo),并利用EtherCAT 總線實現(xiàn)了主站和從站的網(wǎng)絡(luò)通信,從站控制器ESC 的配置、PDI 接口程序和STM32 應(yīng)用程序等構(gòu)成EtherCAT 通訊程序和Cia402應(yīng)用程序組成了STM32 應(yīng)用程序。
軟件架構(gòu)如圖9所示,用戶通過人機交互界面對機器人發(fā)出控制指令,經(jīng)過界面命令處理節(jié)點后,MoveIt!對笛卡爾坐標(biāo)下的控制指令進行運動學(xué)的規(guī)劃、求解,再使用“Controller manager”對規(guī)劃好的軌跡進行插值計算,將關(guān)節(jié)坐標(biāo)系下的控制指令傳給控制器進行計算,然后將關(guān)節(jié)角度傳給機器人硬件抽象節(jié)點,將關(guān)節(jié)角度映射成電機轉(zhuǎn)角,利用線程通信傳給IgH 用戶程序,再由EtherCAT 總線傳送給ESC 芯片,ESC 芯片將命令傳送給STM32 芯片,最后經(jīng)過CoE 應(yīng)用程序計算處理后通過硬件輸出控制電機進而控制機器人。
圖9 控制系統(tǒng)軟件架構(gòu)Fig.9 Software architecture of control system
主站主要負(fù)擔(dān)整個EtherCAT 網(wǎng)絡(luò)中的控制任務(wù),在安裝了Preempt_rt實時內(nèi)核的Linux 系統(tǒng)上,進行IgH主站的設(shè)計。
用戶程序接口可以將總線配置應(yīng)用到主站,而總線和從站配置完成主站的配置??偩€配置包含domain配置和SM 配置;從站配置需要通過應(yīng)用程序告訴IgH 主站總線拓?fù)浣Y(jié)構(gòu),然后提供供應(yīng)商ID 和產(chǎn)品代碼。
ecrt_master_create_domain() 函數(shù)創(chuàng)建IgH 主站的數(shù)據(jù)域,其返回值為指向數(shù)據(jù)域首地址的指針。將機械臂的7 個軸共10 個伺服電機使用PDO 對象在應(yīng)用程序中通過結(jié)構(gòu)體的形式定義好,然后通過PDO 注冊函數(shù)ecrt_domain_reg_pdo_entry_list()將創(chuàng)建的domain 與上述創(chuàng)建的PDO結(jié)構(gòu)體關(guān)聯(lián)。這樣通過操作數(shù)據(jù)域指針,就可以極為方便地完成所有PDO 數(shù)據(jù)的交換。
SM 的配置包括配置PDO 與傳輸方向。機械臂的7 個軸采用一樣的對象字典,所以7 個軸的PDO 配置相同。
ecrt_master_slave_config() 函數(shù)實現(xiàn)從站在總線位置和ID 的配置。將驅(qū)動器配置為CSP 模式,采用rt_task_create()配置實時任務(wù)名稱和優(yōu)先級等。
用戶程序初始化與配置完成后,進行實時性周期任務(wù)程序的設(shè)計。IgH 主站在從站將數(shù)據(jù)報文返回給主站后,開始檢查數(shù)據(jù)域和主站狀態(tài),假如兩項均正常,則與從站配合實現(xiàn)Cia402 的切換,當(dāng)Cia402 達到OP 狀態(tài)后,主站讀取從站返回數(shù)據(jù)報文中的電機實際位置和數(shù)字輸入,并將ROS 規(guī)劃好的目標(biāo)位置映射到PDO,再通過LRW 邏輯尋址報文發(fā)送給從站,完成一個伺服控制周期,如圖10 所示。
圖10 IgH 主站用戶層軟件流程Fig.10 IgH master user layer software flow
根據(jù)功能類型,可以將從站設(shè)計分為數(shù)據(jù)通信和應(yīng)用程序兩個部分。
主站發(fā)送EtherCAT 報文給LAN 9252 中的ESC,ESC 對報文進行處理后,將得到的數(shù)據(jù)存放于DPRAM中,并經(jīng)過PDI 接口將數(shù)據(jù)傳送給STM32進行報文處理。若為郵箱數(shù)據(jù),則直接存入處理器的本地內(nèi)存;若為過程數(shù)據(jù),則將數(shù)據(jù)賦值給本地內(nèi)存。Cia402 應(yīng)用函數(shù)根據(jù)本地內(nèi)存的數(shù)據(jù)調(diào)用FOC 算法,從而控制伺服電機,如圖11 所示。
圖11 從站軟件總體結(jié)構(gòu)Fig.11 Overall structure of slave station software
機器人的重復(fù)定位精度是驗證機械臂的高精度性能標(biāo)準(zhǔn)之一,根據(jù)GB/T 12642—2013《工業(yè)機器人性能規(guī)范及其試驗方法》中規(guī)定,機械臂的重復(fù)定位精度為
式中,
式中,、和是對同一位姿重復(fù)響應(yīng)n次之后所得到的各點集群中心的坐標(biāo);xj、yj和zj是第j次實際到達位置的坐標(biāo)。
如圖12 所示,測量重復(fù)定位精度采用的是LTD 500 激光跟蹤測量系統(tǒng),應(yīng)用前文所述的消隙控制算法,在機械臂末端施加10 kg 負(fù)載,根據(jù)上述測試標(biāo)準(zhǔn)在機械臂的工作空間內(nèi)選取一個平面內(nèi)的5 個點測量其位置坐標(biāo),重復(fù)測量30 次。表2給出了各測試點的機械臂重復(fù)定位精度。根據(jù)式 (5),由表2可知,該機械臂最大重復(fù)定位精度誤差(±0.0591 mm)出現(xiàn)在測試點3,最小重復(fù)定位精度誤差 (±0.0230 mm)出現(xiàn)在測試點5。由于該機械臂構(gòu)型以及結(jié)構(gòu)強度設(shè)計均以七自由度協(xié)作機器人為模板,而典型七自由度協(xié)作機器人(Rethink Sawyer、Kuka iiwa)的重復(fù)定位精度為±0.1 mm。因此,本文提出的機械臂在重復(fù)定位精度指標(biāo)測試中表現(xiàn)更優(yōu),同時也驗證了本文所提出的雙電機共軸驅(qū)動消隙算法的有效性。
表2 不同測量點的機械臂重復(fù)定位精度Table 2 Repeated positioning accuracy of the robotic arm at different measuring points
圖12 重復(fù)定位精度測量試驗Fig.12 Repeat positioning accuracy measurement experiment
本文基于雙電機共軸驅(qū)動原理,提出并研制出一種新型多電機驅(qū)動的七自由度機械臂。機械臂的腰、肩、肘關(guān)節(jié)采用雙電機共軸驅(qū)動,在關(guān)節(jié)上采用消隙及同步控制,可從原理上提高機械臂的傳動精度和承載能力。機械臂整機的重復(fù)精度測量結(jié)果表明,本機械臂在精度上具有一定的優(yōu)勢。