工業(yè)機器人標定
工業(yè)機器人標定,工業(yè),機器人,標定
六自由度工業(yè)機器人標定 蔣濤
揚州大學廣陵學院
本科生畢業(yè)設計
畢業(yè)設計題目 工業(yè)機器人標定
學 生 姓 名 蔣濤
專 業(yè)機械設計制造及其自動化
班 級 機械81001
指 導 教 師 李鷺揚
完 成 日 期 2014年05月30日
摘 要
運動學標定是提高機器人精度的關鍵技術,也是機器人學的重要內容,在機器人空前發(fā)展的今天有十分重要的理論和現實意義。機器人運動學標定以運動學建模為基礎,幾何誤差參數辨識為目的,為機器人的誤差補償提供依據。
現今機器人廠家生產的機器人其重復定位精度比較高,而絕對定位精度卻很低。伴隨著機器人越來越廣泛的運用,提高機器人絕對定位精度已成為其中一關鍵技術問題。本文采用一種運動學標定方法,應用先進的激光跟蹤測量系統(tǒng)和基于模型的參數辨識方法識別出一種 6R機器人模型的準確參數,提高了該機器人的絕對定位精度。
針對工業(yè)機器人標定問題,首先結合機器人的實際機構特點,運用 D-H 方法建立了機器人的連桿坐標系,在此基礎上進行了機器人運動學正逆解和雅可比矩陣的詳細推導及求解,并運用 Matlab 語言進行運動學模型的編程求解,通過與機器人控制器中位姿數據對比,驗證了所建立的連桿坐標系統(tǒng)的正確性。 針對工業(yè)機器人的機構特點,分析了影響機器人末端絕對定位精度的誤差來源,采用修正的運動學連桿參數模型,基于微分變換法推導了用于機器人標定的誤差模型,并基于 Matlab 軟件系統(tǒng)編制了機器人運動學誤差模型的最小二乘算法,通過對誤差模型進行模擬求解,驗證了機器人標定誤差模型的可行性。
關鍵詞:工業(yè)機器人; 運動學; 定位精度; 標定; 誤差模型 ;連桿參數。
Abstract
運動學標定是機器人離線編程技術實用化的關鍵技術之一,也是機器人學的重要內容,在機器人產業(yè)化的背景下有十分重要的理論和現實意義。機器人運動學標定以運動學建模為基礎,幾何誤差參數辨識為目的,為機器人的誤差補償提供依據。
Kinematic calibration is the key technology to improve the accuracy of robot, is also the important content of robotics, an unprecedented development in robot today have very important theoretical and practical significance. The robot kinematics calibration modeling based on kinematics, geometric error parameter identification for the purpose, to provide basis for error compensation of robot.
現今機器人廠家生產的機器人其重復定位精度比較高,而絕對定位精度卻很低。伴隨著機器人越來越廣泛的運用,提高機器人絕對定位精度已成為其中一關鍵技術問題。本文采用一種運動學標定方法,應用先進的激光跟蹤測量系統(tǒng)和基于模型的參數辨識方法識別出一種 6R機器人模型的準確參數,提高了該機器人的絕對定位精度。
The robot manufacturers robot its repetitive positioning precision is higher, but the absolute positioning accuracy is very low. With the use of robots are more and more widely, improving the robot absolute positioning accuracy has become a key technology problem which. This paper uses a kinematic calibration method, the application of advanced laser tracking measurement system based on parameter identification method and identification model of accurate parameters of a 6R robot model, improves the accuracy of the robot absolute positioning.
針對工業(yè)機器人標定問題,首先結合機器人的實際機構特點,運用 D-H 方法建立了機器人的連桿坐標系,在此基礎上進行了機器人運動學正逆解和雅可比矩陣的詳細推導及求解,并運用 Matlab 語言進行運動學模型的編程求解,通過與機器人控制器中位姿數據對比,驗證了所建立的連桿坐標系統(tǒng)的正確性。 針對工業(yè)機器人的機構特點,分析了影響機器人末端絕對定位精度的誤差來源,采用修正的運動學連桿參數模型,基于微分變換法推導了用于機器人標定的誤差模型,并基于 Matlab 軟件系統(tǒng)編制了機器人運動學誤差模型的最小二乘算法,通過對誤差模型進行模擬求解,驗證了機器人標定誤差模型的可行性。
Aiming at the industrial robot calibration, the actual mechanism firstly with the robot, the robot is established by D-H method of pole coordinates, based on the detailed derivation and solution of robot kinematics and Jacobi matrix, programming and kinematics model using Matlab language, with the attitude data comparison of robot controller, verified the correctness of the established link coordinate system. According to the mechanism of industrial robot, analyzes the impact of absolute location error precision of the robot, the kinematics model, based on differential transform method is derived for the error model calibration of robots, and based on the Matlab software system of least square algorithm for robot kinematics error model, through the simulation to solve the error model, validation the feasibility of robot calibration error model.
關鍵詞:工業(yè)機器人; 運動學; 定位精度; 標定; 誤差模型 ;連桿參數。
Keywords: industrial robot; kinematics; positioning accuracy; calibration; error model; link parameters.
目錄
摘 要 I
Abstract II
第一章 緒論 1
1.1引言 1
1.2工業(yè)機器人運動學標定技術的背景和意義 1
1.3機器人標定技術的研究現狀 2
第二章 機器人運動學 4
2.1 機器人運動學模型的建立 4
2.2正向運動學求解 7
2.3逆向運動學求解 8
2.4 微分運動學模型 11
2.5 本章小結 14
第三章 SR06 型機器人的標定技術 15
3.1 標定用運動學模型的建立 15
3.1.1 直線的無極點表示法 16
3.1.2 CPC 模型的建立 17
3.2 機器人的標定方法 20
3.2.1 幾何誤差的來源 20
3.2.2 連桿參數的線性求解方法 21
3.3 本章小結 25
第四章 標定實驗及結論 27
4.1 原始數據采集 27
4.2 數據處理 29
4.2.1 齊次坐標變換矩陣與繞任意軸的旋轉矩陣之間的關系 29
4.2.2 方程RA Rx= RxRb的求解 31
4.3 標定結果 33
4.4 本章小結 34
第五章 總結與展望 35
致謝 36
參考文獻 37
附錄 41
II
第一章 緒論
1.1引言
工業(yè)機器人是一種具有自動控制的操作和移動功能,能夠完成各種作業(yè)的可編程操作機器,工業(yè)機器人一般是由機械執(zhí)行機構、伺服驅動裝置、檢測傳感裝置和控制系統(tǒng)等部分組成。自從 1959 年美國發(fā)明家喬治·德沃爾和約瑟夫·英格伯格制造出世界上第一臺工業(yè)機器人以來,工業(yè)機器人作為機器人的一個主要分支,其五十多年來的發(fā)展歷程使得工業(yè)機器人技術及產品廣泛應用于各類工業(yè)生產中。工業(yè)機器人技術及其產品和相關配套技術發(fā)展迅速,已經成為自動化工廠(Factory Automation, FA)和柔性制造系統(tǒng)(Flexible Manufacturing System, FMS)實現自動化的重要工具。
工業(yè)機器人延伸了人的手足和大腦功能,可以代替人從事危險、有害、有毒、低溫和高熱等惡劣環(huán)境中的工作,代替人完成繁重、簡單重復的枯燥勞動,提高勞動生產率,保證產品的生產質量。與計算機技術、網絡技術對世界的生活生產方式產生巨大改變類似,工業(yè)機器人在自動化生產線上的廣泛應用正在逐漸對全世界的生產方式產生變革。
1.2工業(yè)機器人運動學標定技術的背景和意義
伴隨著工業(yè)自動化的需要和發(fā)展,工業(yè)機器人技術及產業(yè)規(guī)模都飛速發(fā)展起來。在工業(yè)生產中,弧焊機器人、點焊機器人、分配機器人、裝配機器人、噴漆機器人及搬運機器人等工業(yè)機器人都已被大量采用。預計至2015年,中國工業(yè)機器人年銷售將達到3.5萬臺,工業(yè)機器人被廣泛應用于汽車及汽車零部件制造業(yè)、機械加工行業(yè)、電子電氣行業(yè)、橡膠及塑料工業(yè)、食品工業(yè)、木材與家具制造業(yè)等領域中,尤其是汽車行業(yè)、機械制造業(yè)。 技術融合是機器人發(fā)展的主要趨勢。從近幾年世界機器人推出的產品來看,工業(yè)機器人技術正在向智能機器和智能系統(tǒng)的方向發(fā)展,其發(fā)展趨勢主要為結構的模塊化和可重構化,控制技術的開放化、PC化和網絡化,伺服驅動技術的數字化和分散化,多傳感器融合技術的實用化,工作環(huán)境設計的優(yōu)化和作業(yè)的柔性化,以及系統(tǒng)的網絡化和智能化等方面。機器人系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成,在硬件系統(tǒng)條件一定的情況下,機器人實用功能的靈活性和智能程度在很大程度上取決于機器人的編程能力。機器人編程有在線編程(On-Line Programming)和離線編程(Off-Line Programming)
兩種形式。在機器人所要完成的作業(yè)不很復雜,以及示教時間相對工作時間比較短的情況下,在線示教編程是切實可行的。隨著企業(yè)對柔性加工要求的提高和計算機的發(fā)展,出現了機器人離線編程技術。機器人離線編程系統(tǒng)是機器人編程語言的推廣,它利用計算機圖形學的成果,建立機器人及其工作環(huán)境的模型,再利用一些規(guī)劃算法,通過對圖形的控制和操作,在不使用實際機器人的情況下進行軌跡規(guī)劃,進而產生機器人程序。離線編程系統(tǒng)中的仿真模型(理想模型)和實際機器人模型存在有誤差,產生誤差的因素主要有機器人本體、工作環(huán)境以及離線編程系統(tǒng)等因素。因此如何有效地消除誤差,提高機器人的精度成為離線編程系統(tǒng)實用化的關鍵技術之一。一般地,影響機器人精度的因素可以歸結為以下4類:
(1) 參數因素:機器人運動學模型參數,包括桿件長度、相鄰軸線的傾斜、關節(jié)的零位偏差等,機器人基礎坐標系相對與參考坐標系的坐標轉換關系誤差等。
(2) 負載因素:機器人桿件彈性變形,齒輪傳動誤差,關節(jié)間隙等。
(3) 數字誤差:包括機器人關節(jié)碼盤讀數精度,機器人控制器的控制分辨能力,編程分辨能力,計算機舍入誤差等。
(4) 環(huán)境因索:溫度影響,濕度影響,電噪聲以及隨機誤差等。
對于不同結構、不同用途的機器人,以上各因素的影響不盡相同,一般來講,在參數因素中幾何結構參數偏差引起的誤差占機器人總誤差的80%左右。 結合機器人設計、加工、裝配、編程和控制,一般認為提高機器人精度主要有兩種方法:
(1)誤差預防法。即減少誤差源,這種方法是通過改進設計方法和制造工藝,最大限度地提高機器人零部件的設計、加工精度,以降低加工誤差;盡可能的提高裝配精度,以降低裝配過程造成的誤差;另外還有采用高性能控制器提高機器人的控制精度等。但是這種方法本身具有較大的局限性。該方法的實現需要高精度的加工技術與條件,價格昂貴,而且這種方法對于機器人機械磨損、元件性能降低以及構件自身動態(tài)特性等因素帶來的誤差無能為力。
(2)誤差補償法,即運動學標定,所謂標定就是應用先進的測量手段和基于模型的參數識別方法辨識出機器人模型的準確參數,通過采用附加控制算法或修改原控制算法來補償機器人誤差,從而提高機器人絕對精度的過程。該方法采用軟件方法提高機器人精度,由于誤差源與機器人誤差之間的函數規(guī)律復雜,該方法只能補償某些誤差源(主要是桿件幾何偏差和桿件靜態(tài)變形)引起的誤差。但是標定仍然是機器人誤差補償的良好途徑,并且具有成本低的優(yōu)點。
機器人標定在自動化制造、計算機集成制造裝配系統(tǒng)中起到非常重要的作用。機器人標定不僅可以提高精度,而且可以大幅降低制造成本。下面為機器人運動學標定的典型應用:
(1)離線編程和機器人任務仿真的基礎。機器人標定在計算機集成制造(CIM)系統(tǒng)中的必要性已經被廣泛接受。通過標定,機器人作業(yè)可以不通過示教來編程,而通過仿真進行離線編程,這樣可以大幅降低成本。為了使離線生成的程序能夠在機器人控制系統(tǒng)中有效執(zhí)行,真實模型和設計模型要良好匹配,否則,位姿誤差將會增大,使正常作業(yè)無法進行。通常運動學標定可以將絕對精度提高10倍。
(2)機器人制造的評價手段。許多物理參數在機器人制造及裝配后無法直接測量,而標定則是一種行之有效的間接測量方法。準確測量一定數目的機器人位姿,就可以較為準確地識別機器人的物理參數。
(3)機器人輔助手術中的應用。Goswami、Kinzle以及Tull等把機器人系統(tǒng)應用到手術中,以提高手術質量。手術通常對絕對精度要求嚴格,故研究有效的補償方法以保證絕對精度非常必要。
1.3機器人標定技術的研究現狀
在機器人應用范圍擴大、所完成任務的復雜程度提高的情況下,特別是在CAD/CAM/機器人/數控設備的一體化環(huán)境中,示教再現型機器人難以提供環(huán)境所要求的靈活性。機器人離線編程系統(tǒng)的迅速發(fā)展,成為解決實際生產問題的智能化手段。對于采用離線編程方式工作的機器人而言,機器人的絕對精度成為關鍵指標。而一般來說絕對精度只有厘米數量級,精度較低。于是需要進行機器人運動學標定的研究來提高機器人的絕對精度。機器人標定的結果是一系列被識別的機器人參數,這些參數可以提供給制造廠家作為產品質量檢驗指標,也可以提供給用戶來提高機器人的絕對精度,是離線編程和機器人任務仿真的基礎。
在很多應用場合,機器人負載較小,此時造成位姿誤差的主要原因在于機器人控制器中的機器人理論運動學模型與機器人的實際物理模型之間存在的微小偏差,這個偏差主要是在機器人的制造及安裝過程中產生的。
機器人運動學標定是離線編程技術實用化的關鍵技術之一,它是一個集運動學建模以及運動學參數辨識于一體的過程。機器人運動學標定根據標定方法的不同可以分成以下兩類:基于運動學模型的參數標定以及基于神經網絡的參數標定。本文主要討論基于運動學模型的參數標定方法,它一般包括四個步驟:
(1) 建立準確的運動學模型;
(2) 用已知精度的測量裝置測量出機器人末端操作器的位姿;
(3) 引入算法辨識幾何參數;
(4) 對原有機器人運動學模型進行修正。其中,選擇合適的運動學模型和測量方法是標定的基礎,辨識出幾何參數的真實值并校正是標定的目的。
第二章 機器人運動學
2.1 機器人運動學模型的建立
SR06型機器人是一臺串聯 6 自由度的旋轉機器人,其控制柜中內建的運動模型為 D-H 模型,該模型是由 Denavit 和 Hartenberg 兩人在 1956 年提出的一種方法,以列表的形式完成變換矩陣 A 的填寫,使用起來十分簡便,因此獲得了廣泛應用。
在建立機器人運動學模型之前先要對各個關節(jié)和連桿進行編號:基座為桿 0,從基座起依次向上為桿 1、桿 2……;關節(jié) i 連接桿 i-1 和 i,即桿 i 離基座近的一端(簡稱近端)有關節(jié) i,而離基座遠的一端(簡稱遠端)有關節(jié) i+1。
D-H 方法嚴格定義了桿件坐標系,遵循的基本原則如下:
第一步:確定各坐標系的z軸。
基本原則是:選取Zi軸沿關節(jié) i+1 的軸向(指向可以任選,但通常都將各平行的 z 軸均取為相同的指向)。這里需要說明的是:
1. 當關節(jié) i+1 是移動關節(jié)時,其軸線指向已知,但位置不確定,這時選取 Zi軸與 Zi+1軸相交(若還有移動關節(jié) i+2,則取 Zi軸和Zi+1軸都與Zi+2軸相交)。
2. 機器人桿 n 遠端沒有關節(jié) n+1,這時可選取 Zn軸與Zn-1軸重合。
第二步:確定各坐標系的原點。
基本原則是:選取原點 Oi在過Zi-1軸與Zi軸的公法線上(即 Oi為此公法線與Zi軸的交點)。這里需要說明的是:
1. 當Zi-1軸與Zi軸平行時,經過兩軸的公法線不唯一。確定方法是:若Zi-1軸與Zi軸重合,取 Oi=Oi-1,若Zi-1軸與Zi軸平行且不重合,過 Oi-1點作Zi-1軸和Zi軸的公法線,取此公法線與Zi軸的交點為 Oi。
2. 由于沒有Zi-1軸,故無法按上述基本原則選取 O0,這時確定 O0的方法是:若Z0與Z1相交時,取 O0= O1,若Z0與Z1不相交時,O0在Z0與Z1的公法線上。
第三步:確定坐標系的X軸。
基本原則是選取Xi軸沿過Zi-1軸和Zi軸的公法線,方向從Zi-1軸指向Zi軸。
這里要說明的是:
1.當Zi-1軸與Zi軸重合時,(這時 Oi=Oi-1)選取Xi軸滿足在初始條件位置時,Xi軸與Xi-1軸重合。
2.當Zi-1軸與Zi軸相交且不重合時,選擇Xi =±(Zi-1×Zi,通常使所有平行的X軸均有相同的指向。
3.當 i=0 時,由上所述知,這時 O0=0,或 O0在Z0軸與 Z1軸的公法線上,選取在初始位置時 X0軸與 X1軸重合。
第四步:確定各坐標系的 y 軸
基本原則是:使yi= zi×xi,即構成右手坐標系。
這樣,便能建立起如圖 2-1 所示的坐標系分布。
圖2-1 D-H模型坐標系分布示意圖
一旦對全部連桿規(guī)定坐標系之后,就能夠確定用于指示系 i-1 和系 i 間相對位置和方位的 4 個參數。
桿件長度 ai:定義為從 zi-1軸到 zi軸的距離。沿 xi軸指向為正。
桿件扭角αi :定義為從 zi-1軸到 zi軸的轉角。繞 xi軸正向轉動為正,且規(guī)定αi ∈[ ?π,π)。
關節(jié)距離 di: 定義為從 xi-1軸到 xi軸的距離。沿 zi-1軸指向為正。
關節(jié)轉角θi :定義為從 xi-1軸到 xi軸的轉角。繞 zi-1軸正向轉向為正,且規(guī)定θi ∈[ ?π,π)。
參數 ai,αi ,di和θi 的意義如圖 2-2。這些參數被稱為 D-H 參數,又常被稱為機器人運動參數或幾何參數。這里要說明的是:
1. 桿 i 的兩端分別有 zi-1軸和 zi軸,ai和αi 分別描述了從 zi-1軸到 zi軸的距離和轉角,關節(jié)轉角i的軸向 zi-1是xi-1 軸和xi 軸的公法線;di和θi 分別描述了從xi-1軸到xi 軸的距離和轉角。
2. ai和αi 由桿的結構確定,是常數。而 di和θi 與關節(jié)i的類型有關,其中一個是常數,另一個是變量。當關節(jié)i是轉動關節(jié)時,di是常數,θi 是變量;當關節(jié)i是移動關節(jié)時,di是變量,θi 是常數。
圖 2-2 D-H 模型參數示意圖
所以,機器人的每個桿件都有4個參數ai,αi ,di和θi 。它們決定了機器人手臂每一個桿件的運動學形態(tài)。由此可以確定聯系i-1坐標系和i坐標系之間的齊次變換矩陣,即從i-1坐標系變換到i坐標系,只需完成下述變換:
1. 沿zi-1 軸平移距離di,使xi-1 軸和xi 軸相交;
2. 將xi-1 軸繞zi-1 軸轉θi 角,使它同xi 軸對準;
3. 沿xi 軸移動距離ai,使i坐標系和i-1坐標系的原點及x軸重合;
4. 繞xi 軸轉αi 角,使i坐標系和i-1坐標系完全重合。
表 2-1 D-H 模型連桿參數名義值
序號
αi (°)
di(mm)
ai(mm)
θi (°)
1
0
0
0
0
2
-90
0
180
-90
3
0
54
635
0
4
-90
515.7
0
0
5
90
0
0
180
6
-90
0
0
0
將這四步過程用基本的齊次轉動和齊次平移矩陣表示并連乘,可得相鄰坐標系i-1和i之間的合成齊次變換矩陣Aii-1,即
Aii-1=Transz(di)Rotz(θi)Transz(ai)Rotz(αi)
=
= (2-1)
由上式,要充分表示相鄰連桿坐標系之間的位置關系,每個連桿至少由 4 個參數進行描述,其中連桿長度和扭角描述連桿本身,另外兩個描述連桿和相鄰連桿的連接關系。對于 6 自由度機器人,用 18 個參數可完全描述它的運動學的固定參數部分,而其它 6 個關節(jié)變量則是機器人運動方程中的變量部分。本文所研究的機器人各關節(jié)均為轉動關節(jié),故θ1 到θ6 為關節(jié)變量。
2.2正向運動學求解
當機器人的結構參數已確定,并給出各個關節(jié)角度,就可以計算機器人末端執(zhí)行器在基坐標系中所處的位置和姿態(tài),這就是求解機器人運動學的正問題。 對于 SR06 型機器人,在根據 D-H 原則建立起坐標系之后,就可以根據式(2-1)得到 6 個轉換矩陣:
A1= , A2=
A3=, A4=
A5=, A6=
令
T=A1A2A3A4A5A6 (2-2)
則 T 表示了機器人末端法蘭盤坐標系相對于機器人基坐標系的位置與姿態(tài),所以T 矩陣就是機器人正向運動學的解。
需要注意的是,為了增強機械強度,SR06 型機器人包含有一個四桿機構在內的閉環(huán)結構,這將導致z2 軸與z1 軸的聯動現象。一旦z1 軸相對零位發(fā)生旋轉,即使沒有令z2 軸單獨轉動,此時z2 軸也會發(fā)生旋轉,所以在計算時要考慮到這種影響,即從第三根軸的轉角中減去第二根軸的轉角。反過來的情況卻不同,z2 軸的轉動不會給z1 軸產生任何影響。
正向運動學求解:
圖 2-3 顯示了機器人正向運動學求解的計算結果。
2.3逆向運動學求解
當機器人末端執(zhí)行器的位置和姿態(tài)給定時,去求解相應的關節(jié)轉角是逆向運動學問題。由于求解逆問題的非線性方程組不一定總有封閉解、可能存在多個解、解與機器人實際結構相違背等可能,使得求解起來較為復雜。
根據機器人運動學理論,如果一臺 6 自由度機器人的 3 個連續(xù)關節(jié)的軸線相交于一點,那么該機器人就有逆向運動的封閉解。對于 SR06 型機器人,它的第 4、5、6 關節(jié)軸線相交于一點,因此就可以運用代數法得到封閉解。
在這里采用遞推逆變換法求解一組非線性超越方程組。將一組逆矩陣A-11,A-12,A-13 …連續(xù)左乘式(2-2)兩端,可得到若干矩陣方程,每個矩陣有 12 個方程式,在這些關系式中可選擇只包含一個或不多于兩個待求運動參數的關系式。然后遞推求解,一般遞推過程不一定全部作完,就可利用等式兩端矩陣中所包含對應元素相等的關系式,求得所需的全部待求運動參數。
設
T= (2-3)
則 T 中 12 個有效元素為:
nx=c1[s23(s4s6-c4c5c6)-c23s5c6]-s1(s4c5c6+c4s6)
ny=s1[s23(s4s6-c4c5c6)-c23s5c6]+c1(s4c5c6+c4s6)
nz=-c23(c4c5c6-s4s6)+s23s5c6
Ox=c1[s23(c4c5s6+s4c6)+c23s5s6]+s1(s4c5c6-c4c6)
Oy=s1[s23(c4c5s6+s4c6)+c23s5s6]-c1(s4c5s6-c4c6)
Oz=c23(c4c5s6+s4c6)-s23s5s6
ax=-c1(c4s23s5+c23c5)-s1s4s5
ay=-s1(c4s23s5-c23c5)+c1s4s5
az=-c4c23s5-s23c5
Px=-c1[d6(c4s23s5-c23c5)-d4c23-a3s23-a2s2-a1]-s1s4s5d6
Py=-s1[d6(c4s23s5-c23c5)-d4c23-a3s23-a2s2-a1]+c1s4s5d6
pz=d6(-c4c23s5-s23c5)-d4s23+a3c23+a2c2+d1
其中,
si = sinθi,ci = cosθi,s23= sin(θ2 +θ3),c23 = cos(θ2 +θ3)
將式(2-2)做簡單變換,得到
A -12A-11T61A-16=A3A4A5 (2-4)
令該式左右兩邊的(3,4)元素相等,化簡得到 s1(axd6-px)=c1(ayd6-py),當cos θ ≠0,即 θ ≠ kπ +π/2(k 為整數)時,有tanθ1=由此可求得θ1=arctan()。
令式(2-4)兩邊的(1,4)和(2,4)對應元素分別相等,得
-s3d4+a3c3=-d6[c2(c1ax+s1ay)-s2az]+c2(c1px+s1py-a1)-s2(pz-d1)-a2 (2-5)
C3d4+a3s3=-d6[-s2(c1ax+s1ay)-c2az]-s2(c1px+s1py-a1)-s2(pz-d1) (2-6)
先將式(2-5)中右邊的? a2項移到左邊,再將該方程組兩邊平方相加,得:
左邊=d24+a23+a22-2d4a2s3+2a3a2s3
右邊=-2d6[f1f2+f3az]+d26[f21+azz]+f22+f33
這里f1=c1ax+s1ay ,f2=c1px+s1py-a1 ,f3=pz-d1
左式=右式,那么
2d4a2s3-2a3a2c3=d24+a23+a22+2d6[f1f2+f3az]-d26[f21+a2z]-f22-f23 ,
再令p1 = 2 d4a2,p2 = ?2 a3a2,
P3=d24+a23+a22+2d6[f1f2+f3az]-d26[f21+a2z]-f22-f23
經過三角變換可以的得到
θ3=arctan()-arctan(),上姿態(tài)時取正號,下姿態(tài)時取負號。
令g1=d6( c1ax+s1ay)-c1px-s1py+a1 ,g2=d6az-pz+d1 ,g3 = c3d4+a3s3 ,那么式(2-6)可以寫成s2g1+c2g2=g3,經過三角變換,得到
θ2=arctan()-arctan(),上姿態(tài)時取正號,下姿態(tài)時取負號。 令式(2-4)兩邊(1,3)和(2,3)元素分別對應相等,有
C3c4s5+s3c5=c2(c1ax+s1ay)-s2az (2-7)
S3c4s5-c3c5=-s2(c1ax+s1ay)-c2az (2-8)
式(2-7)x s3-式(2-8)x c3 ,整理后得:
C5=s32(c1ax+s1ay)+c32az ,代入θ1 、θ2 、θ3 ,即可求得θ5 。
令式(2-4)兩邊的(3,3)元素相等,得-s4s5=-s1ax+c1ay ,代入θ5 即可求得θ4 。令式(2-4)兩邊的(3,2)元素相等,得C4 = s6[?s1nx+c1ny]+c6[?s1ox+c1oy],做三角變換,并代入θ1 、θ4 ,可以求得θ6 。
按照上述方法求解關節(jié)變量時,都存在多解的問題,這時可根據 robtarget 數據類型的 robconf 來確定到底取哪個解。另外,當末端執(zhí)行器由前一個點位向后一個點位運動時,達到后一點位的位姿有多解時,可選擇最“接近”前一點位的解,即選擇關節(jié)變量解最靠近前一點的關節(jié)變量值。
需要指出的是,SR06型機器人的姿態(tài)并不是用 3×3 的旋轉矩陣表示的,而是用一個四維向量q來表示的,它們之間的關系為:
q1= ,
q2= , signq2=sign(oz-ay),
q3= , signq3=sign(ax-nz),
q4= ,signq4=sign(ny-ox).
所以在求逆向解時要先將此四維向量轉換成旋轉矩陣。
運動學逆解:
圖2-4 顯示了機器人逆向運動學求解的計算結果。
2.4 微分運動學模型
機器人的微分運動是指當關節(jié)坐標變量(包括關節(jié)變量和連桿參數)產生微小變化而引起臂端(手部)位姿的某一微小變化。
設機器人運動鏈中某一桿件對于固定坐標系的位姿為 T,經過微運動后該桿件對固定系的位姿變?yōu)?T+dT,若這個微運動是相對于固定系進行的,總可以用微小的平移和旋轉來表示,即
T + dT=Trans( dx,dy,dz)Rot(k,dθ)T
dT = Trans(dx,dy,dz)Rot(k,dθ)T?T= [Trans(dx,dy,dz)Rot(k ,dθ)?I]T (2-9) 根據齊次變換的相對性,求微分運動是對于某個桿系 i 進行的,則 T+dT 可以表示為:
T + dT=TTrans( dx,dy,dz)Rot(k,dθ)
dT=TTrans(dx,dy,dz)Rot(k,dθ)?T= T[Trans (dx,dy,dz)Rot(k,dθ)?I] (2-10) 其中 Δ=Trans ( dx,dy,dz)Rot(k ,dθ)?I稱為微分變換矩陣。
于是,式(2-9)變?yōu)閐T =Δ0T,式(2-10)變?yōu)閐T = TΔi,此處 Δ 的下標不同是相對不同的坐標系,若變換 T 是若干變量qi (i=1,2,…,n)的函數,則
dT= (2-11) 微分平移與一般平移變換一樣,其變換矩陣為:
Trans(dx ,dy ,dz )= (2-12)
從幾何意義上講,旋轉矩陣可以表示為遵循右手法則繞軸K=做θ角的旋轉,展開后如式(2-13)所示:
Rot(k,θ)= (2-13)
這里 versθ=1?cosθ,常稱為正矢。那么微分旋轉可以由一般旋轉變換式求出:當θ→0時,sinθ→dθ,cosθ→1,versθ→0,因此可求得:
Rot(k,dθ)= (2-14)
因此
Δ=Trans(dx,dy,dz)Rot(k,dθ)-I= (2-15)
Δ中的微分旋轉子矩陣是繞一般轉軸 k 轉動一個微量角dθ,可以用繞 x、y、z 軸轉動微量角 δx、δy、δz 來代替 Rot( k ,dθ)。在齊次變換中,矩陣左乘與右乘不同,但在微分旋轉中,繞三個軸作微分旋轉的變換結果與旋轉順序是無關的,而且,任意兩個微分旋轉的結果為繞每個軸轉動的元素的代數和,即微分旋轉可相加.
令 δx =kxdθ, δy= kydθ, δz= kzdθ則等效微分矩陣為
Δ= (2-16)
因此Δ可看成由δ和d兩個矢量組成,δ叫微分旋轉矢量,d叫微分平移矢量,分別表示為:δ =δxi +δyj+δzk, d = dxi +dyj+dzk,δ 和 d 合稱為微分運動矢量,可表示為D =[ dx ,dy,dz,δx,δy,δz]T。
實際應用中往往需要求兩個坐標系 i 和 j 之間的微分運動關系,即Δi與Δj之間的關系。假設 j 系就是固定系即 0 系,由式和可得Δ0T=TΔi,由此可得
Δi=T-1Δ0T (2-17)
亦即
= (2-18)
將對應元素相等可得
dxi=n[(δx p)+d]
dyi=o[(δx p)+d]
dzi=a[(δx p)+d] ,此式的矩陣表示形式為
δxi=nδ
δyi=oδ
δzi=aδ
= (2-19)
這個公式表示了相對于固定坐標系的微分旋轉與平移矢量δ和d與相對于i坐標系的δi和di的關系,由此可由一個系的微分運動求出另一系的微分運動。 假設只有第一個變換矩陣的連桿參數存在偏差,而其它的參數全為名義值,當 θ =[144.5,13.5,25.9,79.8,-59.0,126.8 ]時,觀察此時機器人的定位誤差。由于
=, =,
=, =,
根據式(2-11)可以得到
dA1= (2-20)
又因為
dA=AδA (2-21)
所以
δA1=dA1=(2-22)
對照式(2-16),得到微分運動矢量el為:
el=== (2-23)
這樣便建立了在第一個連桿坐標系下的微分運動與機器人幾何參數偏差之間的數學模型。為了將微分運動與末端法蘭盤坐標系聯系起來,還要用到式(2-19),這時用到的變換矩陣為T=A2A3A4A5A6 。隨機抽取一組偏差向量Δx =[-0.9,0.004,0.8,0.01 ]T,經過計算,發(fā)現此時在末端坐標系產生的定位誤差為Δp =[0.221,0.7621,0.0941]T。
由此可見,連桿參數的微小偏差會給機器人絕對定位精度帶來不容忽視的影響。
2.5 本章小結
為了研究機器人的運動學問題,本章首先建立了廣泛應用的 D-H 模型,這也正是 SR06型機器人使用的模型。在此基礎之上,編寫了正向運動學求解的函數,即當各根軸的轉角已知時就能確定末端法蘭盤坐標系相對于機器人基坐標系的位置和姿態(tài)。接著,還比較詳細地推導了逆向問題的求解過程,編寫了逆向運動學求解的函數,即當末端法蘭盤坐標系相對于機器人基坐標系的位姿已知時,就能確定各根軸的轉動角度。以上兩個部分都以界面的形式給出了程序運算的結果。在對機器人控制、誤差分析、動力分析和保證工作精度時,微分運動研究起著十分重要的作用,因此在本章最后還簡要介紹了機器人微分運動的數學模型,并隨機抽取了一組關節(jié)變量,考察單一變換矩陣參數偏差對機器人定位精度的影響。
第三章 SR06 型機器人的標定技術
機器人標定過程是通過修正機器人軟件配置來提高定位精度的,也就是確定從關節(jié)變量到末端執(zhí)行器在工作空間內真實位置的更為精確的函數關系,并利用這種已確定的變換關系更新機器人的定位軟件,而不是試圖去改變機器人的結構設計或是控制系統(tǒng)。
從誤差源與機器人誤差之間的固有函數規(guī)律出發(fā),采用精密測試儀器測得機器人的多點位置誤差,進而應用最小二乘等方法,辨識出各誤差源大小,最后通過采用附加控制算法或修改原控制算法來補償機器人的誤差,即為傳統(tǒng)意義上的標定技術。
標定是建模、測量、參數識別和誤差補償幾個步驟的集成過程,通常意義的標定過程包括如下幾個步驟:
1. 建立一個準確代表實際參數的機器人運動學模型;
2. 用較高精度的測量裝置測量出機器人的位姿;
3. 引入參數識別的算法;
4. 對原有的機器人運動學模型進行修正。
標定過程如圖 3-1 所示:
圖3-1 標定過程示意圖
對于整個標定過程來講,選擇合適的運動學模型和標定測量方法是機器人標定的前提,在此基礎上對標定數據進行處理實現誤差參數識別與校正是機器人標定的最終目的。
3.1 標定用運動學模型的建立
機器人標定用的運動學模型應當具有完整性和參數連續(xù)性的特點。一個完整的模型擁有足夠多的參數去表示機器人實際結構與名義設計之間的所有偏差。為了滿足這一點,模型必須包含一定數目的獨立參數,這個數目為 4N-2P+6,N 為自由度,P 為移動關節(jié)數,對于關節(jié)型串聯 6 自由度的SR06機器人來說,至少需要 30 個獨立參數。參數連續(xù)性意味著模型應該沒有極點。通常,如果任意機器人關節(jié)軸線位姿的連續(xù)變化會導致模型連桿參數連續(xù)變化的話,該模型就是參數連續(xù)的。如果模型不具備參數連續(xù)特性的話可能造成誤差模型不準確,還有可能造成運動學參數識別過程中的數值不穩(wěn)定性。
經典的 D-H 模型既不是完整的,也不是參數連續(xù)的。如果相鄰的兩根軸線名義上絕對平行而實際上近乎平行時,參數會發(fā)生跳變。一個同樣嚴重的問題就是模型建立世界坐標系和工具坐標系規(guī)則的限制。如果世界坐標系和工具坐標系不能任意放置的話,它們的位置會隨著機器人幾何結構的變化而變化。因此,在進行機器人標定工作時,拋棄 D-H 模型,而采用一種稱為 CPC(Complete and Parametrically Continuous)的機器人運動學模型。
3.1.1 直線的無極點表示法
如圖 3-2 所示,設三維空間中有一條直線 L,它的方向可以由其在參考坐標系{x,y,z}中的兩個方向余弦(bx ,by)來表示,平面IB過{x,y,z}的原點且與L垂直,那么IB與L的交點P可以用來確定L在空間中的位置。在平面IB上建立一個平面直角坐標系,原點與參考坐標系的原點重合,點 P 在該系中的坐標為lx 和ly ,那么直線 L 就可以由四個參數{ bx ,by ,lx ,ly }表示。記 b為單位方向矢量,bx ,by ,bz 分別為 x,y,z 方向的分量,且有bz = (1?b?b)1/2。定義 b 指向參考坐標系的 z 軸正向,參考坐標系 x 軸在平面 IB 上的投影作為平面直角坐標系的 x 軸。令 z 為參考坐標系 z 軸方向的單位矢量,使參考坐標系繞軸 k 旋轉 α 角,在這里
K== (3-1)
α=arccos(z.b)arccos(bz) (3-2)
k為沿公法線的單位向量,繞 z 軸轉動的旋轉矩陣
R=Rot(k,α) (3-3)
將式(3-1)和(3-2)代入到式(3-3)中,化簡后可以得到
R= (3-4)
如果 b=z 的話,[bx,by,bz]T=[0,0,1]T,R 則變成單位矩陣。
圖 3-2 空間直線的表示方法
3.1.2 CPC 模型的建立
由于 SR06 型機器人的所有關節(jié)都是轉動關節(jié),因此,下面采用 CPC 方
法建模時都只針對轉動關節(jié)的情況,建立連桿坐標系要遵從以下原則:
1.zi 軸必須與第 i+1 個關節(jié)的軸線重合。
2.坐標系{xi ,yi,zi }符合右手法則。
為了能夠任意地分配連桿坐標系,除bx ,by ,lx ,ly 之外,CPC 方法還定義了另外兩個參數:βi 和Li,z。Rot (z,βi)使得第 i 個坐標系能繞 z 軸做任意轉動, Trans(0,0,li,z)使得第 i 個坐標系能沿 z 軸方向做任意平動。變換矩陣是 7個連桿參數{ bi,x ,bi,y ,bi,z ,li,x ,li,y ,li,z ,βi}以及關節(jié)變量θi 的函數。令li=[li,x,li,y,li,z ]T ,bi== [bi,x,bi,y,bi,z],那么連桿參數和關節(jié)變量的指定如下(見圖 3-3):
圖 3-3 CPC 模型連桿參數的定義
1.bi 是在第 i-1 坐標系下表示的第 i+1 關節(jié)軸線的單位方向矢量。
2.βi 是xi 軸繞zi 軸旋轉的方向。
3.li是在第 i-1 坐標系下表示的第 i 連桿坐標系的原點的位置。
4.關節(jié)變量θi (i=1,2,3,4,5,6)的零位與第 i 個關節(jié)角度傳感器的零讀數一致。
同時需要注意的是,若某關節(jié)軸線的序號為 i+1,那么其所在的坐標系的序號為 i,所以,第 i+1 根軸線是在第 i-1 坐標系中被表示成bi 的。
定義一個 4×4 的旋轉矩陣Ri ,它是在第 i-1 坐標系下表示的第 i+1 根軸線的單位方向余弦bi,x ,bi,y ,bi,z ,的函數。且
Ri= (i=1,2,3,4,5,6)
這里 ki=e3 ×bi/||e3 ×bi||,αi =arccos(e3 ?bi),e3 =[0,0,1]T,即e3 為當前坐標 z軸的單位方向矢量。由式(3-4)可得
Ri=,且 bi,z≥0 (3-5)
假設機器人處于零位位姿,平面 IBi與第 i+1 根軸線垂直并經過第 i-1 坐標系的原點,變換矩陣 Bi以平面 IBi 為基準進行如下變換:
1. 按照式(3-5)定義的Ri作旋轉。變換后的中間坐標系記為{,y,z },與平行,另外兩個坐標軸落在平面 IBi內。
2. 作繞zi的旋轉的Rot(z,βi )。變換后的中間坐標系記為{x,y,z},z=z,且此坐標系與第 i 坐標系的姿態(tài)相同,即各個坐標軸的指向相同。
3.作 Trans(li,x,li,y,li,z)的平移運動。變換后的坐標系將于第 i 坐標系合。
因此,連桿變換矩陣Bi=QiVi ,Qi 是由于關節(jié)的轉動所做的變換,Qi =Rot( zθi);Vi 是由連桿參數確定的變換,Vi=RiRot (z, βi)Trans (li,x, li,y, li,z).這里,i=1,2,3,4,5,6。
圖 3-4 CPC 模型連桿參數分布示意圖
另外,為了能夠簡化變換矩陣,在建系的過程中可以采取以下兩條措施:
1)如果平面 IBi與第 i-1 連桿坐標系的 xy 平面或 xz 平面平行,使xi 與xi-1 的方向相同。
2)如果平面IBi與第 i-1 連桿坐標系的yz 平面平行,使yi 與yi-1 的方向相同。
按照上述約定可以建立起各個連桿坐標系,如圖 3-4 所示。圖中系 6 為末端法蘭盤坐標系,它的原點位于法蘭盤端面的中心處。這樣得到從末端法蘭盤坐標系到機器人基坐標系的變換矩陣T = B1B2B3B4B5B6。連桿參數的名義值見表3-1 所示。經驗證,在進行正向運動學求解時,CPC 模型與 D-H 模型有相同的計算結果。
表3-1 CPC模型連桿參數名義值
I
bi,x
bi,y
bi,z
li,x(mm)
Li,y(mm)
li,z(mm)
1
0
1
0
180
0
0
0
2
0
0
1
500
0
0
0
3
1
0
0
0
-101
0
0
4
-1
0
0
135
0
0
0
5
1
0
0
0
0
0
0
6
0
0
1
0
0
0
90
3.2 機器人的標定方法
3.2.1 幾何誤差的來源
圖 3-5 關節(jié)錯位引起的誤差
幾何誤差的來源有兩個,一個是關節(jié)互相位置與名義值不符,另一個是關節(jié)的實際零位與編碼盤的零位不重合。
如圖 3-5 所示,如果關節(jié) i 的位置與名義位置不一致,假設原點的位置不變,但是發(fā)生了繞 x 軸的微小轉動,即bi=[0,, ]T.舍去高次項可得到旋轉矩陣 R 的線性近似表達,即Ri=,相應地,li =[0,pi,y+εy, ?εy]T。
圖 3-6 關節(jié)偏置引起的誤差
如果將關節(jié)變量設置成零,但是此時實際的關節(jié)角度并不是處在零位位置上,這種零位角誤差叫做“關節(jié)偏置”。在 CPC 模型中,關節(jié)變量的名義值用來描述機器人的運動,如果第 i 個連桿的幾何誤差完全是由關節(jié)偏置引起的,那么可以通過dli 計算關節(jié)偏置。如圖 3-6 所示,此處的關節(jié)偏置可以用dli,x,和dli,y ,來表示。圖中上角標“0”表示的是名義位置。如果存在軸線錯位的情況,關節(jié)偏置還與其它的參數誤差有關,但是在 CPC 模型中,關節(jié)偏置屬于多余的參數,從最小二乘的角度上講,識別出來的獨立的 CPC 誤差參數足夠計算標定前的姿態(tài)誤差,同時,在標定的過程中,這組獨立參數也足以減小姿態(tài)誤差。
3.2.2 連桿參數的線性求解方法
目前,機器人連桿參數的標定方法有很多,例如利用雅克比矩陣求解、運動約束求解、微分運動學求解等等。但是這
收藏