马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛
您需要 登录 才可以下载或查看,没有账号?注册会员
×
1.引言0 t3 V4 y6 k1 x* X/ A
六自由度关节式坐标测量机是一种新型的非笛卡尔式坐标测量机。它仿照人体关节结构,以角度基准取代长度基准,将六个杆件和一个测头通过六个旋转关节串联连接,一端固定在机座上,另一端(测头)可在空间自由运动,构成一个六自由度的封闭球形测量空间。与传统的笛卡尔式三坐标测量机相比,它具有机械结构简单,体积小,测量范围大,灵活方便等优点,主要应用于CAD/CAM中三维模型表面数字化和大型零部件几何尺寸的现场检测等领域[1,2]。 六自由度关节式坐标测量机在装配过程中,由于角度光电编码器的零位与关节结构的理论零位不重合而产生的角度偏差,称为关节零位偏差。其特点是:各关节的零位偏差各不相同;由于装配工艺误差不可避免,关节零位偏差较大(约±3°);对于每台装配好的关节式坐标测量机,各关节零位偏差值固定不变,属于系统误差。由于杆长的放大作用,关节零位偏差在末端测头处产生很大的位姿误差。因此,为了补偿关节零位偏差,提高测量精度,对关节式坐标测量机进行标定是非常重要的。
* U! U$ G8 D, `1 W Y1 ~9 P& } 2.数学模型 ' ?. T& i5 ?" K0 E* _$ Z

" A# O- X* }" n! X4 U9 ?$ \图 六自由度关节式坐 6 a( ]$ p3 p' e
标测量机结构模型六自由度关节式坐标测量机从机械结构上可以看成是串联的开式运动链。其结构模型如图所示(各坐标系的Y轴由“右手法则”确定)。 参见图示,将测头局部坐标系O7-X7Y7X7相对于基座参考坐标系O0-X0Y0Z0的位姿记为T07,这是一个4×4的齐次矩阵,可描述为
% [2 I( f/ J/ a* q8 ^# ?6 ?T07=A01A12A23A34A45A56A67 (1)
7 V2 O: Q2 V3 a+ u5 w( o( n式中,Ai-1i(i=1,…,7)是杆件i相对于杆件i-1的齐次位姿变换矩阵。Denavit和Hartenberg在1995年提出了两个相互连接且相对运动的构件之间相互关系的分析方法,并给出了相应的齐次变换矩阵[3],即 & q. T. b% W3 Q
b" R1 ]7 J6 [1 P. i
(2)
8 n: H) \" c7 V2 }3 Y8 v& Z; A式中,θi是关节的转角,这里是变量,称为关节变量;φi是相邻关节旋转轴线的夹角,这里近似为直角;ai是相邻关节轴线沿空间公垂线的距离,这里近似为0;di是相邻杆件坐标原点沿Z轴之间的距离,这里称为杆长。 对于多关节坐标测量机,测头在空间的姿态并不重要,而测头的空间位置坐标则是需要得到的。将式(1)、(2)合并后,测头位置坐标方程为
! C( V7 u" W% g$ z0 @ P=(R1R2R3R4R5R6)q7+(R1R2R3R4R5)q6+R1R2R3R4)q5 +(R1R2R3)q4+(R1R2)q3+R1q2+q1 (3)
" n# F5 g# y! r5 f, F式中包括三个坐标分量方程,都是关节变量的函数,即 ! g, k& n! Y# }7 K
P=F(θ1,θ2,θ3,θ4,θ5,θ6) (4)
1 ] {1 m8 P' P1 p, W0 e 为了得到关节零位偏差与测头位置误差之间的关系,假设关节零位偏差足够小,对式(4)求全微分,近似得到测头位置误差方程为[4] (5)
E3 k" s& i# Z, G+ f/ L2 ?- \ q: A 将式(5)用矩阵方式简单描述,即 8 H. ?- z4 H& U' T
ΔP=JδΔδ (6) & k& \* v4 @- m& O9 Q
式中 ΔP=(ΔPx ΔPy ΔPz)T  Δδ=(Δθ1 Δθ2 Δθ3 Δθ4 Δθ5 Δθ6)T
! w) a+ _6 E4 S+ I/ C8 o 由式(4)和式(6)即可得到描述关节零位偏差与测头位置误差之间关系的线性方程。 3.标定算法 为测定各关节零位偏差值,需要一系列已知标准位置坐标,这些标准位置坐标可以通过高精度的三坐标测量机测得。设有m个标准位置坐标,关节式坐标测量机的测头分别触测这些标准位置,由光电编码器分别得到相应的关节转角,将这些关节转角分别代入方程式(4),计算出测头的理论位置坐标,然后与标准坐标比对,得到m个测头位置误差。把这些数据代入式(6),可得到3×m个位置误差方程,即 . N3 `) l1 T+ O" V, B. R
ΔQ=GΔδ (7) * @/ a( w" e# S, t5 c. |
其中 4 v( `( K. q7 f8 _; Q' z, R; Q$ C; j
 . Z" H$ r& N- l2 X- S* L
式(7)中有6个未知量,只要3×m>6,则可运用最小二乘法求解出关节零位偏差,即 / d) A% e" t5 K% K# [ l
Δδ=(GTG)-1GTΔQ (8) ' J$ P1 |/ V* r4 `$ e- m2 a- a
把计算出的关节零位偏差值作为零位偏差的修正量代入式(4),计算出新的测头位置坐标,然后将新的位置误差和新的系数矩阵代入式(7),再重复式(8)的计算。经过以上的反复迭代过程,直到测头位置误差小于设定值,最后获得最优解,即最接近实际的关节零位偏差值。
/ a3 Z. M: U* Y) k 4.仿真验算 3 p( K: K8 H7 X+ e- O
为了进行计算机仿真验算,首先设定六自由度关节式坐标测量机的结构参数(φi,ai,di),并假设关节零位偏差(Δθi),具体数值列于表1。 R/ Y/ H& {) L* K' t1 B
表1 六自由度关节式坐标测量机结构参数 3 h( _0 s( y0 f; {" A5 K
5 C" c$ p- P$ ?5 F! n
1 ?1 S: j# `! o P% k# U; ^3 f: W Q: c/ t! A. _+ o3 b# J: t9 l% i; F8 j6 P2 B' ?, r/ l( A7 |% U0 Y9 w; \/ ]8 I; n- i) w' J/ c$ a5 o; @. Z1 P6 W, C6 r/ d z3 q% P! i' M g1 r5 H$ K- q5 ^- _0 ^% c2 J& n* J! W2 e4 M5 m$ X+ m* J) l% z, g( K d4 W6 }% i8 w; A: _* B1 i0 d) a3 S) j M) v# W4 \& H* p3 f5 a$ H2 P2 Y; o3 l/ W* Q# `* Z$ ?5 M" d7 M6 y& }+ Y4 R3 A' D& K3 t5 }! H' ~. y; F, B: S: }6 N" P) i' X* m4 @) n0 v( e% _4 X% G, }. c9 ~7 `) [7 |3 _$ Y$ e% z3 r$ |# @0 v( U( o' t) ^) [7 ^% H* u: p* G$ ~7 F }& K. N0 Z2 ^- R O7 a3 ?; k3 r) J, V5 F9 U' a6 ~( g8 I) X/ M- T8 l3 T0 r: e# @1 M" z! U' C6 C( N1 ~/ [/ R6 p" W5 q b1 f. _- k! c7 b g! v+ N& Y) x# U; t; j# M2 n4 x, _1 y% J3 B& V0 y0 o% l$ q( B# s2 o5 {; D- T0 V5 ?5 b2 ?/ N, L8 k/ c0 s& ]5 m+ M" ]: m! ?# P2 N5 \( z) n* H2 M) [# k: G* }5 S. t R) J5 [4 R8 q8 E7 H2 M: o4 \) S: w% s4 }3 V) w, G* [, `0 z* G& ~3 v) l, F" e1 R6 Q4 ~7 I$ f6 \8 r9 J, n* _4 m1 w( @4 T1 X3 J: Y; U% w/ x; ~" k" m# Q0 r/ ^; K; r; T4 k( g) X( u) B1 W, I) [& j& r( y( z+ ]0 o7 e- Y- G! Z) X0 s8 @: {3 N* d% J# M7 u5 {5 C/ F% g G- v6 H' i3 g+ b' s P6 V# D7 s1 |2 t8 A l. g) m5 Z6 [ D4 m& e: Z5 S0 h! i B$ K* b e7 q( C# p6 e+ j% z+ x) z6 A" W- m2 ~/ x0 P `6 u' Z% m7 g6 J0 I/ |4 B* X
杆件 序号 |
φi(°) |
ai(mm) |
di(mm) |
零位偏差 Δθi(°) |
1 |
-90.1 |
0.01 |
99.85 |
2.4 |
2 |
90.05 |
0.02 |
151.38 |
-2.05 |
3 |
90 |
-0.01 |
448.6 |
-1.5 |
4 |
-89.9 |
-0.03 |
101.1 |
2.2 |
5 |
-90.05 |
0.01 |
352.2 |
1.2 |
6 |
89.35 |
0.005 |
99.75 |
-1.8 |
7 |
0 |
0 |
150.25 |
0 |
/ z/ g& Z& |; ^ B+ Q: l% G5 v5 C4 V: B1 \& S9 [
* S+ Z' p9 g- Y& ]0 G9 \* I# m& I2 B8 }# Z7 `$ `! n0 h
在验算中,对标定算法重复进行了三次仿真计算。每次随机选取3组关节转角组合,根据表1中的结构参数和关节零位偏差,按式(4)计算出3个标准(实际)的空间坐标矢量。同时,不考虑零位偏差,计算出3个理论坐标矢量,并得到相应的误差矢量。根据式(5)、(6)、(7),可得到9个误差方程。利用式(8)求解出6个关节零位偏差值。为了获得更准确的数据,采用迭代算法,将计算出的关节零位偏差值代入式(4)修正理论模型,重复以上过程,直到空间位置误差小于一设定值(这里设为0.3mm)。三次仿真计算的结果列于表2。
1 R4 D% o; B- v( t7 d8 |* \; E 表2 仿真验算结果 |
( W- }% _0 U4 c/ S' Z U/ N ], N5 E, t- Z9 N( E
9 Y" Z# K* B- A6 b3 t& _. ~# S: u2 w5 R% {; a5 l* N" Z% d% H- I) N) I# Z! L i7 s5 x- y8 H, T4 {0 _8 z6 G( g$ r2 K, e0 u; W2 F/ c- s- C* |9 B! X, t. F, C; S% K& X1 K, l8 S4 g/ G N- J' z' w" X3 l" I1 z& \" _% ]$ k/ _7 V; g5 L% Q6 k# a/ c1 _6 f1 y( l# D- n3 E8 i2 ` f7 a$ p* n, a' C: N6 m' k2 B4 L) {2 p* x- L$ Z; W+ j' [7 M3 ]4 U9 U0 A. c" Y6 y6 T7 |* y5 E! o9 n* R3 S) [1 U5 V9 L. e% j/ W" ~2 } Z% I" e1 u& w. W& ^7 ^0 |. O# z& ^2 T% o* n [: i: R! Z( c1 v4 j4 B8 _; }/ {) \2 j" n6 Z% _) A8 R' s. V! j) E# `0 w i; h+ ~3 _+ j% S5 t5 V* s* C# w8 h; ]& ^* c9 P5 H7 g* s5 s5 n U0 {) K0 ~* G! e: M' a/ t1 U8 Z Q& _3 d7 s( T4 u2 p, g6 y5 x6 [- u8 r+ K9 C: E6 e5 }5 d! {! b0 I# L8 D9 L; i/ q5 @, c N% d! {; V I: S6 e/ q8 {" g* X+ ?3 B9 ^8 O* y) n- h/ J+ n: h' ?/ c( O- m. H4 v+ s8 Z* L0 c, H, h$ t+ }7 @$ C6 s0 a8 F* F8 C% ]/ I$ q6 I- [1 A, H- U8 A- F' F. X6 D$ a4 F* C5 G8 s3 ^% I& ^) W. R! A( y, r$ e9 r9 W* N1 t& |) L B, S1 S# ^) b# T* C! ~- \* Y6 }' T( H% [; {9 P1 o% m. b+ @* l9 c$ d1 w I# a0 ?! T4 j0 ^( N4 \9 |; h' s& M3 w' Y; {8 s: D3 ]9 r9 V9 ^% s$ \: @ c8 ~2 ?- x" Z0 ?* ^4 E$ M# Z0 A8 i: b$ M2 g+ Q1 K3 b7 x/ T/ M" t8 B' Y9 H% @$ I6 F% N# C" w9 l- v! g2 X2 ^: m& p+ {& j- Y' O1 |4 M8 l1 ~6 |2 V1 T6 ` c" M% h# B% v# B3 j- f/ x9 O8 J1 Y g) p' Y0 y; J$ N0 T# V7 M3 \4 s; J. Z. G, i; l: u- d! d' W& l" ~6 V' L7 G1 }- Y, m2 L# Z$ [( h! z; `& D1 X8 e) F; v$ y2 h4 W1 K- ^; S4 ?+ S# ?3 r c/ Y" l! b* o x, h9 k- |% o, N; d% [( B! @4 ]' { {) Z) o; M2 k/ v: e4 W" ~! f0 ^3 C; A& E' W5 D7 F* {' v* ]9 ~8 L$ {/ D* ]9 O% C8 S1 s- {7 T8 Y- o K) Y0 _3 G3 Z. E$ O. C' O2 j; U% Y. b+ \$ C. V$ o( q! \) @& T9 n$ |% a: E6 q! v1 {5 g0 ^+ F+ m5 N4 W3 X, e' u4 W( E$ B6 |# ^2 _6 L$ m2 X6 e3 h n& Q( b" n: _' {. N$ ~2 d0 A, v- s% Z* a; x- D: m) Y) _2 g V& K; b/ O2 Z7 c& z* ~1 U% M; G3 X: P& ?" T3 A! |5 b$ O/ g8 T/ k! a" \0 k9 H! F* C" h1 V4 [7 w i- X: s3 G; ^. j* c5 ~; S) J7 {6 G0 f+ r: r2 h( j9 V5 @$ i% L- k1 O& ]% V( d( C( L0 ?8 C' X* R% j1 L {( c- O( W. b5 J" d, ]8 t/ z) C, `% t# \# k. G3 { R% c1 _7 b( S, c/ V- Z6 U0 m/ u$ o3 |2 b! ?" m; E! i9 b3 i) B8 S; _* q3 p2 G+ e0 Q1 ~( U5 |0 a! X- ^8 Z3 ]5 L/ n$ r) E' l1 `) o2 y% Y. L# N L. ]& j9 U' k. K; x6 m8 | g* P+ p3 V" t T V9 k" S( Y+ j$ _. W4 G6 {: T, W4 H, S3 V# S% J4 |5 b) Y( W) o; c4 ^" N9 Y) E4 g& x( W) W* m% m$ _; i0 o f5 k1 g/ z6 T$ D* C6 l- ~0 G# | m5 f$ o* b' b6 S$ {) B5 ~# Q ?, i# ~: Z+ z, U, |+ Y4 _* q( D% _* d, J; C: Z3 u- }# m. }* U, |& I! m1 f7 A. W& K% e3 K* L' K9 P2 {2 @: o: }. C9 N0 B: B8 z5 |& q1 o8 B/ \! W; |
仿真 次数 |
关节转角组合 (θ1,…,θ6) (°) |
标准坐 标矢量 (mm) |
位置 误差 (mm) |
迭代1次 |
迭代2次 |
迭代3次 |
迭代4次 |
零位 误差 (°) |
位置 误差 (mm) |
零位 误差 (°) |
位置 误差 (mm) |
零位 误差 (°) |
位置 误差 (mm) |
零位 误差 (°) |
位置 误差 (mm) |
1 |
(-90,-90,0,90, 0,90) |
138.558 575.782 -283.282 |
39.968 |
2.406 -2.063 -1.432 2.177 1.776 -1.375 |
1.717 |
2.406 -2.063 -1.490 2.177 1.719 -1.776 |
1.483 |
2.406 -2.063 -1.490 2.177 1.203 -1.776 |
0.148 |
2.406 -2.063 -1.492 2.182 1.203 -1.781 |
0.146 |
(120,90,120,-20, 70,50) |
-652.092 645.842 202.687 |
30.043 |
1.201 |
) {0 N7 m" h Q( @ | 0.955 |
( D# w1 I4 z8 n9 Q/ `: b | 0.206 |
* j& Z. c' @, R" d: ^
| 0.206 |
(-90,0,0,90, 0,0) |
142.57 522.883 503,83 |
49.592 |
0.732 |
0.801 |
0.244 |
0.232 |
2 |
(-90,10,10,90, 10,10) |
61.557 434.09 594.691 |
49.319 |
2.521 -1.948 -1.432 2.464 1.146 -1.261 |
1.479 |
2.406 -2.063 -1.490 2.181 1.203 -1.781 |
0.212 |
|
|
|
|
(0,90,0,-90, 0,90) |
320.85 157.437 -251.305 |
23.654 |
1.155 |
9 ?# a. }- w- y$ h; J | 0.230 |
<
2 X+ v3 u: m7 V; u0 o( f | < |
|
|
(-120,140,20,60, 10,150) |
-148.998 -518.998 -237.442 |
39.30 |
2.176 |
0.082 |
|
|
3 |
(50,-80,50,40, -60,40) |
-463.903 -760.076 176.659 |
73.57 |
2.349 -2.120 -1.432 2.292 1.146 -1.432 |
0.603 |
2.406 -2.063 -1.490 2.180 1.203 -1.781 |
0.068 |
|
|
|
|
(10,80,30,150, 30,140) |
186.165 160.292 290.97 |
26.475 |
0.894 |
* Z7 B) Y& Q! {' g7 v1 q | 0.069 |
< 1 p7 Y0 y! t& _
| < |
|
|
(40,30,60,150, 90,-90) |
179.32 102.388 101.179 |
17.161 |
0.898 |
0.122 |
|
|
$ b3 l( B" [# i q
% P# C J% p4 C1 i% X, d $ h M7 @) V8 g O: D2 Y, k/ h/ T. a7 [9 L$ G; r/ @/ I! e! P7 ], I' b2 g$ x
1 L+ u" W( F* N# @8 m 由仿真验算结果可得出以下结论: (1)较小的关节零位偏差会引起很大的测头位置误差,最大可达73.57mm; (2)本文给出的标定算法是正确的,经标定得出的关节零位偏差值与设定的真值近似,最大误差为0.02°; (3)迭代算法是收敛的,一般不超过4次迭代; (4)三次仿真计算所得结果相同,说明只要在测量空间任取三点,即可准确且唯一地标定出6个关节零位偏差。
+ [' c5 N6 s4 X3 H6 G0 K; J 5.结语
! F1 o; H2 p$ V- n" K U 本文在Denavit-Hartenberg方法基础上,建立了六自由度关节式坐标测量机的数学模型。从模型可以看出,测头末端位置坐标与六个关节角度之间的关系是非线性的,这对于由已知空间坐标值来推算关节零位偏差是相当困难的。因此,我们运用全微分方法,求得了关节零位偏差与测头末端位置误差之间的线性关系,从而大大简化了标定过程。在已知空间点坐标情况下,应用最小二乘法和有限次数的迭代运算,求出最优的关节零位偏差值。最后,通过计算机仿真验算,证明了该算法的正确性。该标定算法也完全适用于其它结构参数误差的标定。该标定算法对提高六自由度关节式坐标测量机的测量精度具有重要意义。 |
- E4 y6 K% @9 X9 D# ~ |