工业机器人机构误差分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工业机器人机构误差分析
一.机器人误差分析
在示教工作条件下,机器人的主要性能指标为其重复精度,机器人只要准确地以一定姿态重复到达示教的位置,即可以完成任务。

但在大量的环境下,无法预先指定工作位姿,只能根据其在绝对坐标系中的位姿进行工作。

这些工作对机器人的绝对精度提出了很高的要求。

此时绝对精度成为主要的性能指标。

1.机器人重复精度
重复精度是在到达同一组关节角的重复指令控制下,末端执行器以一定的姿态到达一定位置的准确度。

按ISO 标准描述,在对每个目标点的多次测量时,存在一个实际测定点的系列分布,通过对其分布的标准偏差计算(多次,累积刀),就可以定义这一分布。

一个土3次标准偏差(记做土3c――亦即共6c)可以覆盖无限个实际点中
99.74%的位置分布情形。

这个发散度即称作重复精度,它是指某一指定目标点处的重复精度。

通常,现代工业机器人的重复精度都是很高的,如IRB140 机器人达到0.03毫米(ISO试验平均值)。

2.机器人绝对精度
机器人的绝对精度表示其实际位姿与其控制器预期位姿的接近程度。

绝对精度的高低是以机器人末端操作器的位姿误差来衡量的。

机器人位姿误差即按某种操作规程指令所产生的末端实际位姿与该操作规程所预期产生的末端位姿之间的差异,可通过按正向运动变化矩阵计算出的空间位姿(X ,Y ,Z ,O ,A, T)与实际测量位姿(X ',丫’,Z
' ,O ' ,A ' ,T')相减计算得到。

3.机器人误差分类
按照误差的来源和特性,可将它们分为不同的类型。

从误差的来源来看,主要是指机械零件、部件的制造误差、整机装配误差、机器人安装误差,还包括温度、负载等的作用使得机器人杆件产生的变形,传动机构的误差,控制系统的误差(如插补误差、伺服系统误差、检测元器件)等。

我们将与机器人几何结构有关的机械零件、部件的制造误差、整机装配误差、机器人安装误差、关节编码器的电气零点通常和关节的机械零点不相一致等因素引起的误差称为几何误差。

根据误差特性来分,又可将误差分为确定性误差、时变误差和随机性误差三种。

确定性误差不随时间变化,可以事先进行测量,如之前提到的几何误差就属于这一类。

时变误差又可分为缓变和瞬变两类,如因为温度产生的热变形随时间变化很慢,属于缓变误差;而运动轴相对于数控指令间存在的跟踪误差取决于运动轴的动态特性,并随时间变化,属于瞬变误差。

随机性误差事先无法精确测量,只能利用统计学的方法进行估计,如外部环境振动就是一种十分典型的随机性误差。

按影响类型可分为静态误差和动态误差。

前者主要包括连杆尺寸变化、齿轮磨损、关节柔
性以及连杆的弹性弯曲等引起的误差;后者主要为振动引起的误差。

在诸多影响机器人精度的因素中,几何误差要占据80%左右的比例,因此机器人运动学标定主要研究制造误差、安装误差、编码器零位误差等造成的几何误差。

本文主要研究机构的各个参数的误差,对位姿和位置误差的影响。

.机器人运动学方程
1.坐标系的建立
机器人是一个非常复杂的系统,为了准确、清楚地描述机器人位姿,通常采用参考坐标系和关节坐标系。

参考坐标系的位置和方向不随机器人各关节的运动而变化,对机器人其他坐标系起参考定位的作用,通常采用三维空间中的固定坐标系OXYZ 来表述。

参考坐标用来定义机器人相对于其他物体的运动以及机器人运动路径等;关节坐标系用来描述机器人每一个独立关节的运动。

为了确定机器人各连杆之间的相对运动关系,在各连杆上分别固接一个坐标
系,通常情况下我们用D-H方法建立坐标系。

假设一个机器人由任意多的连杆和关节以任意形式构成,为了用D-H方法表示法机器人,因此对于每个关节,都必须指定一个参考坐标系,所要做的第一件事是为每一个关节指定一个本地的参考坐标系,即需要给每个关节定一个X轴和Z轴,通常并不需要指定Y轴,因为Y轴总是垂至于X轴和Z轴的。

以下是给每个关节指定参考坐标系的步骤:
(1)所有关节,无一例外地用Z轴表示。

如果关节是旋转的,Z轴位于按右
手规则旋转的方向。

如果关节是滑动的,Z轴为直线滑动的方向。

在每一种情况下,关节n处的Z轴(以及该关节的本地参考坐标系)的下标为n-1。

对于旋转关节,绕Z轴的旋转角是关节变量。

对于滑动关节,沿Z轴滑动的长度d是关节变量。

(2)通常关节不一定平行或相交。

因此,通常Z轴是斜线,但是总有一条距离最短的公垂线,它正交于任意两相邻的Z轴。

因此可以在公垂线方向上定义本地参考坐标系的X轴。

(3)如果两个关节的Z轴平行,那么它们之间就有无数条公垂线。

这时可以挑选与前一关节的公垂线共线的一条公垂线,这样做可以简化模型。

(4)如果两个相邻关节的Z轴是相交的,那么它们之间就没有公垂线(或者说公垂线的距离为零)。

这时可以将垂至于两条轴线构成的平面的直线定义为X 轴。

六自由度工业机器人机构示意图如下:
ABB 6自由度型机器人本体结构由回转的机体、大臂、小臂和腕部等部分组成,共有6个自由度,属于关节型机器人,每个关节均有角度零位与正负方向限位开关。

机器人的回转机体实现机器人机体绕轴的回转(角B 1),它由固定底座和回转工作台组成。

安装在轴中心的驱动电机经传动装置,可实现工作台回转。

大臂、小臂的平衡由机器人中的平衡装置控制,在机器人的回转工作台上安装有大臂台座,将大臂下端关节支承在台座上,大臂的上端关节用于支承小臂。

大臂臂体的下端安有直流伺服电机,可控制大臂上下摆动(角B 2)。

小臂支承于大臂臂体的上关节处,其驱动电机可带动小臂做上下俯仰(角B 3),以及小臂的回转(角B 4)。

机器人的腕部位于小臂臂体前端,通过伺服电动机传动,可实现腕部摆动(角9 5)和转动(角9 6)。

各关节处均安装有传感器,可输出关节的位置信号,并反馈给控制系统,实现各部分协同工作。

从而使用D-H法建立运动方程,如下图1所示。

主要有以下几个参数:
1. 连杆长度记为a
2. 连杆扭转角记为a
3. 连杆偏移量记为d
4. 关节角记为9
(图1)
为了运动分析的方便,建立如图2所示的坐标系。

其中所有坐标系均遵守右手定则。

ABB 6R型机器人各杆件的结构参数和运动参数如表1所示
(图2)
根据资料所得的该机器人结构参数和运动参数如表
1所示
其中 i , 2, 3, 4 。

2■运动学方程的建立
连杆坐标系{i }相对于{i-1}的齐次变换称为连杆变换,可以把它分解为坐标系{i } 的四个基本子变换问题,每个子变换只依赖于一个连杆参数,这四个子变换是: ⑴绕X i 」转动:i □
⑵沿X i 1移动a i 」
(3) 绕乙转动弓 (4) 沿乙移动d i
在D-H 法中相邻坐标间的矩阵即
D-H 矩阵如下式:
从而求得A I -A 6分别为:
0 0
cos^ 0 0
0 1 0
0 0 1
COS^j sin ] cos i _1 sin^ sin : i _1
-sin^
COS] cos i _1 cos 片

-sin : i_i
cos : R
3i-1 P sin : J d i cos.
4= A
COS
®] sin 仇 0
其中a,o,n 三个矢量描述机器人空间的姿态;p 为手部位置在基准参考系中的坐 标。

利用MATLAB 软件编程求得A 为(xi= 9 i ):
>> syms x1 x2 x3 x4 x5 x6 al a2 a3 d4
A1=[cos(x1) -si n(x1) 0 0;si n(x1) cos(xl) 0 0;0 0 1 0;0 0 0 1] A2=[cos(x2) -si n(x2) 0 a1;0 0 1 0;-si n(x2) -cos(x2) 0 0;0 0 0 1]
A3=[cos(x3) -sin(x3) 0 a2;sin(x3) cos(x3) 0 0;0 0 1 0;0 0 0 1] A4=[cos(x4) -sin(x4) 0 a3;0 0 1 d4;-sin(x4) -cos(x4) 0 0;0 0 0 1] A5=[cos(x5) -sin(x5) 0 0;0 0 -1 0;sin(x5) cos(x5) 0 0;0 0 0 1] A6=[cos(x6) -sin(x6) 0
cos ft
0 一 sin 02 0 0
I

0 Ay= \r =
-sin^?
-cos^ 0 0
0 1
cos^ - -sin $
j r =
sin 6^ co 迢 0 0
0 0 1 0
0 0
1
COS £?
4
一 sin $ 0 a
0 1 rf 4 二 4^ = -shii94
0 0
1
COS05 -siii6?5
0 ■ 0
0 -
-1 0
SIH 仪 cos^
0 0
0 0 1

'cosd 6
-sin Q 0 01 ■1 £■
0 0 1 0 - sill %
-cos 6^ 0 0
0 r
由此可得 A 1-A 6 ,从而得到运动学方程为:
仇P1
P: 1
=A A 2A }A 4A ^
0;0 0 1 0;-sin(x6) -cos(x6) 0 0;0 0 0 1] A=A1*A2*A3*A4*A5*A6
disp(A);
A1 =
[ cos(x1), -sin(x1), 0, 0]
[ sin(x1), cos(x1), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
A2 =
[ cos(x2), -sin(x2), 0, a1]
[ 0, 0, 1, 0]
[ -sin(x2), -cos(x2), 0, 0]
[ 0, 0, 0, 1]
A3 =
[ cos(x3), -sin(x3), 0, a2]
[ sin(x3), cos(x3), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
A4 =
[ cos(x4), -sin(x4), 0, a3]
[ 0, 0, 1, d4]
[ -sin(x4), -cos(x4), 0, 0]
[ 0, 0, 0, 1]
A5 = [ cos(x5), -sin(x5), 0, 0]
[ 0, 0, -1, 0]
[ sin(x5), cos(x5), 0, 0]
[ 0, 0, 0, 1]
A6 =
[ cos(x6), -sin(x6), 0, 0]
[ 0, 0, 1, 0]
[ -sin(x6), -cos(x6), 0, 0]
[ 0, 0, 0, 1]
[ (((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1
)*sin(x4))*cos(x5)+(-cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3)) *sin(x5))*cos(x6)-
((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))* sin(x4)-sin(x1)*cos(x4))*sin(x6),
-(((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1)* sin(x4))*cos(x5)+(-
cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*s in(x5))*sin(x6)-((cos(x1)*cos(x2)*cos(x3)-
cos(x1)*sin(x2)*sin(x3))*si n(x4)-sin(x1)*cos(x4))*cos(x6),
-((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1)*s in(x4))*sin(x5)+(-
cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*co s(x5),
(cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*a3+(-cos(x1)*cos(x2 )*sin(x3)-
cos(x1)*sin(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1] [ (((sin(x1)*cos(x2)*cos(x3)-
sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1 )*sin(x4))*cos(x5)+(-sin(x1)*cos(x2)*sin(x3)-
sin(x1)*sin(x2)*cos(x3)) *sin(x5))*cos(x6)-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*
sin(x4)+cos(x1)*cos(x4))*sin(x6),
-(((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1)*
sin(x4))*cos(x5)+(-sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*s
in(x5))*sin(x6)-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*si n(x4)+cos(x1)*cos(x4))*cos(x6),
-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1)*s in(x4))*sin(x5)+(-
sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*co s(x5),
(sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*a3+(-sin(x1)*cos(x2 )*sin(x3)-
sin(x1)*sin(x2)*cos(x3))*d4+sin(x1)*cos(x2)*a2+sin(x1)*a1] [
((-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*cos(x5)+(sin(x2)*sin(x3)- cos(x2)*cos(x3))*sin(x5))*cos(x6)-(-sin(x2)*cos(x3)-cos(x2)*sin(x3))* sin(x4)*sin(x6),
-((-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*cos(x5)+(sin(x2)*sin(x3)
-cos(x2)*cos(x3))*sin(x5))*sin(x6)-(-sin(x2)*cos(x3)-cos(x2)*sin(x3)) *sin(x4)*cos(x6),
-(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*sin(x5)+(sin(x2)*sin(x3)- cos(x2)*cos(x3))*cos(x5),
(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*a3+(sin(x2)*sin(x3)-cos(x2)*cos(x3
))*d4-sin(x2)*a2]
[
0,
0,
0,
[ (((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1
)*sin(x4))*cos(x5)+(-cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))
*sin(x5))*cos(x6)-((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))* sin(x4)-sin(x1)*cos(x4))*sin(x6),
-(((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1)* sin(x4))*cos(x5)+(-
cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*s in(x5))*sin(x6)-((cos(x1)*cos(x2)*cos(x3)-
cos(x1)*sin(x2)*sin(x3))*si n(x4)-sin(x1)*cos(x4))*cos(x6),
-((cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*cos(x4)+sin(x1)*s in(x4))*sin(x5)+(-
cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*co s(x5),
(cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*a3+(-cos(x1)*cos(x2 )*sin(x3)-
cos(x1)*sin(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1] [ (((sin(x1)*cos(x2)*cos(x3)-
1]
sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1 )*sin(x4))*cos(x5)+(-sin(x1)*cos(x2)*sin(x3)-
sin(x1)*sin(x2)*cos(x3)) *sin(x5))*cos(x6)-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*
sin(x4)+cos(x1)*cos(x4))*sin(x6),
-(((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1)*
sin(x4))*cos(x5)+(-sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*s
in(x5))*sin(x6)-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*si n(x4)+cos(x1)*cos(x4))*cos(x6),
-((sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*cos(x4)-cos(x1)*s in(x4))*sin(x5)+(-
sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*co s(x5),
(sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*a3+(-sin(x1)*cos(x2 )*sin(x3)-
sin(x1)*sin(x2)*cos(x3))*d4+sin(x1)*cos(x2)*a2+sin(x1)*a1] [
((-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*cos(x5)+(sin(x2)*sin(x3)- cos(x2)*cos(x3))*sin(x5))*cos(x6)-(-sin(x2)*cos(x3)-cos(x2)*sin(x3))* sin(x4)*sin(x6),
-((-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*cos(x5)+(sin(x2)*sin(x3)
-cos(x2)*cos(x3))*sin(x5))*sin(x6)-(-sin(x2)*cos(x3)-cos(x2)*sin(x3)) *sin(x4)*cos(x6),
-(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*cos(x4)*sin(x5)+(sin(x2)*sin(x3)- cos(x2)*cos(x3))*cos(x5),
(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*a3+(sin(x2)*sin(x3)-cos(x2)*cos(x3
))*d4-sin(x2)*a2]
[
0,
0,
0,
1]
将表1的数据带入A中,可得初始的A=
0.0000 1.0000 0.0000 0.0000
0.0000 -0.0000 1.0000 450.0000
1.0000 0 -0.0000 360.0000
0 0 0
三•机器人误差计算
1 .机器人的位姿描述
1.0000

Hl hi
To = flA 2 】=f22/:4
F1hl h2
L o001
-
末端相对于固定坐标系的位置广义坐标为:
r = [% r Vl匕F = [/14, /34 ]T
用欧拉角描述姿态广义坐标,可根据下式求得机器人末端相对于固定坐标系的广义坐标:
—I
广叭=arctg―-、甲三=叭+180&
f22
J & = arctg _-~~ ------------ -
| 右3
(-f n sini/-f… sinu/)
卩=arctg ——-_-———
k(f!L cosv/+/21sin^/)
用框架角描述姿态广义坐标,可根据下式求得机器人末端相对于固定坐标系的广义坐标:
—/
广- arctg—s a2-4-180°
7 0 二arctg------- ——一---
(-© sinor-G cos er)
(Li sin a + sin a)
/ = arctg — ---------- --------
l (t n cos of + sin a)
其中从A的结果得: t14=(cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))*a3+(-cos(x1)*co
s(x2)*si n(x3)-cos(x1)*si n(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)* al
s(x2)*si n(x3)-si n(x1)*si n(x2)*cos(x3))*d4+si n(x1)*cos(x2)*a2+si n(x1)*
al
t34=(-si n(x2)*cos(x3)-cos(x2)*si n(x3))*a3+(si n(x2)*si n(x3)-cos(x2)*co
s(x3))*d4-s in( x2)*a2
即r =
[(cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))*a3+(-cos(x1)*cos(
x2)*si n(x3)-cos(x1)*si n(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1,
(si n(x1)*cos(x2)*cos(x3)-si n(x1)*si n(x2)*si n(x3))*a3+(-s in (x1)*cos(x2
)*si n(x3)-si n(x1)*si n(x2)*cos(x3))*d4+si n(x1)*cos(x2)*a2+si n(x1)*a1,
(-si n(x2)*cos(x3)-cos(x2)*si n(x3))*a3+(si n(x2)*si n(x3)-cos(x2)*cos(x3
))*d4-si n(x2)*a2]
2 •位姿误差分析
机器人连杆的加工误差、温度变化以及机械传动误差等诸多因素会导致机器人各
组成连杆的运动变量和结构参量产生误差,即〔- 厂而最终使机
器人抓手的位置和姿态产生误差。

从误差理论与传递情况分析,机器人抓手的位
置和姿态误差与各组成连杆的运动变量和结构参量误差之间存在着函数关系因此研究机器人的位姿误差,也就可归结为其函数误差的研究。

机器人末端的姿态误差则近似地可用下式计算:
3■机器人抓手的位置误差
求得机器人抓手的位置广义坐标对于各组成连杆的的运动变量和结构参量的偏导数后,将其代入式即可得到机器人抓手的位置误差。

利用MATLAB 软件编程(设△ r=k,mi = △ 9 i,li= △ a, n=A d i):
>> syms x1 x2 x3 x4 x5 x6 a1 a2 a3 d4 t11 t12 t13 t14 t21 t22 t23 t24 t31 t32 t33 t34 m1 m2 m3 m4 m5 m6 11 12 l3 n4
t14=(cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))*a3+(-cos(x1)*cos(x2)*si n(x 3)-cos(x1)*si n(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1
t24=(si n(x1)*cos(x2)*cos(x3)-si n(x1)*si n(x2)*si n(x3))*a3+(-si n(x1)*cos(x2)*si n(x3) -si n(x1)*si n(x2)*cos(x3))*d4+si n(x1)*cos(x2)*a2+si n(x1)*a1
t34=(-si n(x2)*cos(x3)-cos(x2)*si n(x3))*a3+(si n(x2)*si n(x3)-cos(x2)*cos(x3))*d4-s in
(x2)*a2
r=[t14 t24 t34]
z1=diff(r,x1)
z2=diff(r,x2)
z3=diff(r,x3)
z4=diff(r,x4)
z5=diff(r,x5)
z6=diff(r,x6)
h1=diff(r,a1)
h2=diff(r,a2)
h3=diff(r,a3)
j=diff(r,d4) k=z1*m1+z2*m2+z3*m3+z4*m4+z5*m5+z6*m6+h1*l1+h2*l2+h3*l3+j*n4
t14 =
(cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*a3+(-cos(x1)*cos(x2)*sin(x3)-co
s(x1)*sin(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1
t24 =
(sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*a3+(-sin(x1)*cos(x2)*sin(x3)-
sin( x1)*sin(x2)*cos(x3))*d4+sin(x1)*cos(x2)*a2+sin(x1)*a1
t34 =
(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*a3+(sin(x2)*sin(x3)-cos(x2)*cos(x3))*d4-sin(x2)
*a2
[ (cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*a3+(-cos(x1)*cos(x2)*sin(x3)-c os(x1)*sin(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1,
(sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3))*a3+(-sin(x1)*cos(x2)*sin(x3)-
sin( x1)*sin(x2)*cos(x3))*d4+sin(x1)*cos(x2)*a2+sin(x1)*a1,
(-sin(x2)*cos(x3)-cos(x2)*sin(x3))*a3+(sin(x2)*sin(x3)-cos(x2)*cos(x3))*d4-sin(x2)
*a2]
z1 =
[ (-sin(x1)*cos(x2)*cos(x3)+sin(x1)*sin(x2)*sin(x3))*a3+(sin(x1)*cos(x2)*sin(x3)+s
in(x1)*sin(x2)*cos(x3))*d4-sin(x1)*cos(x2)*a2-sin(x1)*a1,
(cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3))*a3+(-cos(x1)*cos(x2)*sin(x3)-co
s(x1)*sin(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1,
0]
z2 =
[ (-cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*a3+(cos(x1)*sin(x2)*sin(x3)-c
os(x1)*cos(x2)*cos(x3))*d4-cos(x1)*sin(x2)*a2,
(-sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*a3+(-sin(x1)*cos(x2)*cos(x3)+si
n(x1)*sin(x2)*sin(x3))*d4-sin(x1)*sin(x2)*a2,
(sin(x2)*sin(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*sin(x3)+sin(x2)*cos(x3))*d4-cos(x2)
*a2]
z3 =
[ (-cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*a3+(cos(x1)*sin(x2)*sin(x3)-c os(x1)*cos(x2)*cos(x3))*d4,
(-sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3))*a3+(-sin(x1)*cos(x2)*cos(x3)+si n(x1)*sin(x2)*sin(x3))*d4,
(sin(x2)*sin(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*sin(x3)+sin(x2)*cos(x3))*d4]
z4 =
[ 0, 0, 0]
z5 =
[ 0, 0, 0]
z6 =
[ 0, 0, 0]
h1 =
[ cos(x1), sin(x1), 0]
h2 =
[ cos(x1)*cos(x2), sin(x1)*cos(x2), -sin(x2)]
h3 =
[ cos(x1)*cos(x2)*cos(x3)-cos(x1)*sin(x2)*sin(x3),
sin(x1)*cos(x2)*cos(x3)-sin(x1)*sin(x2)*sin(x3),
-sin(x2)*cos(x3)-cos(x2)*sin(x3)]
j =
[ -cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3),
-sin(x1)*cos(x2)*sin(x3)-sin(x1)*sin(x2)*cos(x3),
sin(x2)*sin(x3)-cos(x2)*cos(x3)]
k =
[m1*((-sin(x1)*cos(x2)*cos(x3)+sin(x1)*sin(x2)*sin(x3))*a3+(sin(x1)*cos(x2)*sin(x 3)+sin(x1)*sin(x2)*cos(x3))*d4-sin(x1)*cos(x2)*a2-sin(x1)*a1)+m2*((-cos(x1)*cos( x2)*sin(x3)-cos(x1)*sin(x2)*cos(x3))*a3+(cos(x1)*sin(x2)*sin(x3)-cos(x1)*cos(x2)* cos(x3))*d4-cos(x1)*sin(x2)*a2)+m3*((-cos(x1)*cos(x2)*sin(x3)-cos(x1)*sin(x2)*co s(x3))*a3+(cos(x1)*sin(x2)*sin(x3)-cos(x1)*cos(x2)*cos(x3))*d4)+l1*cos(x1)+l2*co s(x1)*cos(x2)+l3*(cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))+n4 *(-cos(x1)* cos(x2)*si n(x3)-cos(x1)*si n(x2)*cos(x3)), m1*((cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))*a3+(-cos(x1)*cos(x2)*si n(x 3)-cos(x1)*si
n(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1)+m2*((-si n(x1)*co s(x2)*si n(x3)-si n(x1)*si n(x2)*cos(x3))*a3+(-si n(x1)*cos(x2)*cos(x3)+si n(x1)*si n(x
2) *si n(x3))*d4-si n(x1)*si n(x2)*a2)+m3*((-si n(x1)*cos(x2)*si n(x3)-si n(x1)*si
n(x2)* cos(x3))*a3+(-si n(x1)*cos(x2)*cos(x3)+si n(x1)*si n(x2)*si n(x3))*d4)+l1*si
n(x1)+l2* si n(x1)*cos(x2)+l3*(si n(x1)*cos(x2)*cos(x3)-si n(x1)*si n(x2)*si
n(x3))+n4*(-si n(x1)* cos(x2)*si n(x3)-si n(x1)*si n(x2)*cos(x3)),
m2*((si n(x2)*si n(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*si n(x3)+si n(x2)*cos(x3))*d4-co s(x2)*a2)+m3*((si n(x2)*si n(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*si n(x3)+si
n(x2)*cos( x3))*d4)-l2*si n(x2)+l3*(-si n(x2)*cos(x3)-cos(x2)*si n(x3))+n4*(si n(x2)*si n(x3)-cos( x2)*cos(x3))]
从而得到△ r=k=
[m1*((-si n(x1)*cos(x2)*cos(x3)+si n(x1)*si n(x2)*si n(x3))*a3+(si n(x1)*cos(x2)*si n(x 3) +si n(x1)*si n(x2)*cos(x3))*d4-si n(x1)*cos(x2)*a2-si n(x1)*a1)+m2*((-
cos(x1)*cos( x2)*si n(x3)-cos(x1)*si n(x2)*cos(x3))*a3+(cos(x1)*si n(x2)*si n(x3)-
cos(x1)*cos(x2)* cos(x3))*d4-cos(x1)*si n(x2)*a2)+m3*((-cos(x1)*cos(x2)*si n(x3)-cos(x1)*si n(x2)*co s(x3))*a3+(cos(x1)*si n(x2)*si n(x3)-
cos(x1)*cos(x2)*cos(x3))*d4)+l1*cos(x1)+l2*co
s(x1)*cos(x2)+l3*(cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))+n4 *(-cos(x1)* cos(x2)*si n(x3)-cos(x1)*si n(x2)*cos(x3)), m1*((cos(x1)*cos(x2)*cos(x3)-cos(x1)*si n(x2)*si n(x3))*a3+(-cos(x1)*cos(x2)*si n(x 3)-cos(x1)*si
n(x2)*cos(x3))*d4+cos(x1)*cos(x2)*a2+cos(x1)*a1)+m2*((-si n(x1)*co s(x2)*si n(x3)-si n(x1)*si n(x2)*cos(x3))*a3+(-si n(x1)*cos(x2)*cos(x3)+si n(x1)*si n(x 2)*si
n(x3))*d4-si n(x1)*si n(x2)*a2)+m3*((-si n(x1)*cos(x2)*si n(x3)-si n(x1)*si n(x2)*
cos(x3))*a3+(-si n(x1)*cos(x2)*cos(x3)+si n(x1)*si n(x2)*si n(x3))*d4)+l1*si n(x1)+l2* si n(x1)*cos(x2)+l3*(si n(x1)*cos(x2)*cos(x3)-si n(x1)*si n(x2)*si n(x3))+n4*(-si n(x1)* cos(x2)*si n(x3)-si n(x1)*si n(x2)*cos(x3)),
m2*((si n(x2)*si n(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*si n(x3)+si n(x2)*cos(x3))*d4-co s(x2)*a2)+m3*((si n(x2)*si n(x3)-cos(x2)*cos(x3))*a3+(cos(x2)*si n(x3)+si
n(x2)*cos( x3))*d4)-l2*si n(x2)+l3*(-si n(x2)*cos(x3)-cos(x2)*si n(x3))+n4*(si n(x2)*si n(x3)-cos( x2)*cos(x3))]
(其中△ r=k,mi = A 0 i,li= △ a,n= A d i)
4 •初始位置误差计算及分析
根据表1,将工业机器人初始位置的数值代入上矩阵,可得 A r各项为:
r x二-450「!;r y二430—、2=6 ; ' r z= -380(,2,3) =a2
由此可以看得出在初始位置,,对计X产生影响的主要因素是厶円;对丄5产生影
响的主要因素是厶匕;对「讥产生影响的主要因素是厶二2和厶兀o 并且从以上式子可以看出连杆长度A a和偏移量A d对坐标误差影响较小。

相关文档
最新文档