湯海洋 ,紀 柱 ,李 論
(1.上海飛機制造有限公司,上海 200436;2.中國科學院網絡化控制系統重點實驗室,沈陽 110016;3.中國科學院沈陽自動化研究所,沈陽 110016;4.中國科學院機器人與智能制造創新研究院,沈陽 110169)
在飛機總裝過程中,由于空間限制和設備多樣性,目前的裝配作業大量依賴人工操作,并輔以吊具、升降車、架梯等簡易工裝進行產品的裝配工作[1,2],這種裝配模式對操作人員的技能水平和勞動力依存度較高,存在以下幾個方面的局限性:1)大縱深、大質量設備安裝困難;2)裝配過程中對設備的長時間托舉易造成工作人員疲勞;3)狹小空間操作困難[3],而且容易損壞線纜等其他已安裝設備;4)人工裝配難以保證裝配精度,而且裝配效率低[4]。工業機器人具有載重量大、定位精度高、裝配一致性好、響應速度快等特點[5],可以很好地解決人工裝配存在的問題,能夠滿足大重量、高精度的飛機裝配需求,且在國外產品裝配領域中已有相關應用先例[6~8]。采用工業機器人對產品進行輔助裝配,可以提升產品裝配質量和可靠性,是產品總裝的發展趨勢之一。
針對飛機裝配過程中提出的單件小批量,裝配工況不固定,變化多樣等應用需求,本文提出了一種基于力反饋牽引力導引的機器人輔助裝配技術,通過在工業機器人上安裝六維力傳感器獲取施加在工件上的外力,并根據外力為機器人各個軸設置修正量,實現人對機器人的導引,從而實現設備柔順安裝。實驗結果表明,使用該技術的工業機器人能夠很好地按照人的意圖進行移動,達到了將操作人員的經驗和工業機器臂的負載優勢結合在一起的目的,對實現飛機總裝過程中大重量設備高精度、高效率地裝配具有重要意義。
在機器人輔助裝配系統中,機器人是跟隨施加在工件上的外力和外力矩進行移動的,而通過機器人末端的六維力傳感器測得的力還包括工件自身的重力,不能直接測得外力和外力矩,另外傳感器自身也存在零點誤差[9],所以為了能夠準確獲取施加在工件上的外力和外力矩,系統需要具有獲取負載質心位置、負載重力和六維力傳感器零點誤差的重力補償算法。
張立建[10]等通過變換機器人末端姿態(至少3個姿態)獲取N組六維力傳感器數據以及各個姿態下機器人末端法蘭坐標系相對足部坐標系的角度,再利用六維力傳感器數據與工件重心在傳感器坐標系中的坐標之間存在的關系,如式(1)所示,求解出了工件重心在傳感器坐標系中的坐標,如式(2)所示。然后又通過機器人世界坐標系、機器人足部坐標系、機器人法蘭坐標系和機器人末端坐標系之間的變換,將重力變換到傳感器坐標系中,求出了機器人的底座傾角以及六維力傳感器自身的零點誤差,從而計算出了施加在工件上的外部力和外部力矩。

式(1)和式(2)中,(FxN,FyN,FzN,MxN,MyN,MzN)為第N組六維力傳感器數據,p=[x,y,z,k1,k2,k3]T,其中(x,y,z)為工件重心在傳感器坐標系中的坐標,(k1,k2,k3)為常數。
機器人輔助裝配算法的目的是根據外力和外力矩為機器人各軸設置合適的修正量,算法包括平移和旋轉兩種模式,分別實現機器人在X、Y、Z方向的平移和在A、B、C方向的轉動,平移模式和旋轉模式又分別包括多軸聯合運動和單軸運動兩種模式,其中平移模式是由外部力Fex、Fey、Fez引導的,旋轉模式是由外部力矩Mex、Mey、Mez引導的,接下來分別對這兩種模式的算法進行介紹。
在平移模式下,操作人員施加在工件上的合外力為:

式中,Fex、Fey、Fez分別為外力在機器人末端坐標系X、Y、Z三個方向的分力,Fall為合外力。
設施加在機器人末端的最小外力閾值和最大外力閾值分別為Fmin和Fmax,機器人末端的單次最大修正量為Vmax。
當合力Fall小于外力的最小閾值Fmin時,操作人員施加的力過小,機器人末端不能夠進行移動。當Fmin≤Fall≤Fmax時,機器人可以移動,其末端的合修正量為:

式中,Vall為機器人末端合修正量。
然后根據X、Y、Z方向的外力大小,為各軸分配修正量:

式中,VX、VY、VZ分別為機器人末端在X、Y、Z方向的修正量。
當外力大于最大閾值Fmax時,為了防止機器人速度過快對操作人員造成危險,機器人末端合修正量將保持在最大,即:

這種情況下,機器人末端X、Y、Z三個方向的修正量同樣可以通過式(5)進行計算。
在平移模式的單軸移動模式下,同樣通過式(4)計算機器人合修正量,式(5)計算各個軸的修正量,但是在對機器人的修正量的進行設置時,只是針對指定軸進行設置,而不是對三個軸X、Y、Z都進行設置。
旋轉模式與平移模式類似,首先對三個外力矩進行合成,可得:

式中,Mall為合成外力矩。
同樣,設施加在機器人末端的最小外力矩閾值和最大外力矩閾值分別為Mmin和Mmax,機器人末端的單次最大轉動修正量為ωmax。
當合力矩Mall小于外力矩的最小閾值時,機器人末端不能夠進行轉動。當Mmin≤Mall≤Mmax時,機器人末端的合轉動修正量為:

式中,ωall為合轉動修正量。
然后根據各個軸的外力矩大小,為各個軸分配轉動修正量,可得:

式中,ωA、ωB、ωC分別為機器人末端三個旋轉軸A、B、C的修正量。
當外力矩大于最大閾值時Mmax,同樣為了防止機器人速度過快對操作人員造成危險,機器人末端合修正量將保持在最大修正量,即:

在旋轉模式的單軸模式下,同樣通過式(8)計算機器人的旋轉合修正量,式(9)計算各個軸的轉動修正量,但是在對機器人的修正量的進行設置時,只是針對指定軸進行設置,而不是對三個旋轉軸都進行設置。
機器人輔助裝配控制系統的開發環境選用基于Windows平臺的Microsoft Visual Studio 2013,具體語言采用C++。選用Qt 5.8.0設計上位機軟件界面,設計的界面如圖1所示,機器人輔助裝配控制系統的上位機的設計采用模塊化設計方案,整個界面分為5個模塊,分別是機器人模塊、力傳感器模塊、控制參數設置模塊、狀態信息顯示模塊和總控模塊。
機器人模塊可以顯示機器人末端的實時坐標、機器人當前坐標相對于原始坐標的修正量、重力補償獲取的各個參數的數值,如圖2所示。
力傳感器模塊通過折線圖可以實時地顯示傳感器受到的力、工件受到的外部力和外部力矩,如圖3所示。

圖1 上位機軟件界面

圖2 軟件界面的機器人模塊

圖3 軟件界面的力傳感器模塊
狀態信息顯示模塊和控制參數設置模塊如圖4所示。前者可以顯示當前系統的一些狀態,后者可以對工件的移動模式進行選擇,移動模式包括平移模式和旋轉模式兩種,此外,后者還可以對軸方向、步長(單次最大修正量)、力或力矩的最大閾值和最小閾值進行設置。
機器人輔助裝配系統的具體控制方式由機器人通過機器人程序指定,若點擊軟件界面下方的“開始”按鈕,同時執行“機器人重力補償程序”,系統將進入重力補償階段,若點擊“開始”之后,執行的是“機器人輔助裝配程序”,系統將進入機器人輔助裝配階段。

圖4 控制參數設置模塊和狀態信息顯示模塊
圖5為機器人輔助裝配實驗平臺,由KUKA機器人、連接法蘭、框架、ATI六維力傳感器組成,ATI六維力傳感器固定在機器人上,框架與力傳感器之間通過法蘭連接。

圖5 機器人輔助裝配實驗平臺
對工件進行重力補償時,需要獲取機器人在多個(大于3個)姿態時的數據,實驗時選擇5種姿態,如圖6所示,機器人處于不同姿態時各軸的角度如表1所示。

圖6 重力補償時機器人的5種姿態

表1 重力補償時機器人各軸角度
對工件進行50次重力補償,將每次實驗獲取的工件重力繪成折線圖,如圖7所示,平均重力為112.680N,工件的實際重力為108.486N,誤差為3.87%,誤差較小,表明重力補償算法可以對工件重力進行有效補償。

圖7 重力補償實驗數據
圖8為機器人輔助裝配的平移過程,其中第一張圖為機器人初始位置,其余各圖為操作人員對工件施力之后機器人姿態的變化,實驗結果顯示機器人末端可以很好地按照操作人員的意圖進行平移,實現對工件位置的調整。

圖8 機器人輔助裝配平移過程示意圖
圖9為機器人輔助裝配的旋轉過程,其中第一張圖為機器人初始位置,其余各圖為操作人員對工件施力之后機器人姿態的變化,實驗結果顯示機器人末端可以很好地按照操作人員的意圖進行旋轉,實現對工件姿態的調整。

圖9 機器人輔助裝配旋轉過程
本文提出了一種基于力反饋牽引力導引的機器人輔助裝配技術,通過重力補償算法獲取操作人員施加在工件上的外力和外力矩,通過機器人輔助裝配算法根據外力和外力矩為機器人末端設置合適的修正量,從而達到操作人員對機器人進行導引的目的。實驗結果顯示:該技術重力補償的誤差為3.87%,能夠準確獲取施加在工件上的外力和外力矩;當操作人員對工件施加外力時,工業機器人能夠快速地響應人的意圖,并按照人的意圖平穩地平移和旋轉。