CN107553493A - 一种基于拉绳位移传感器的机器人运动学参数标定方法 - Google Patents
一种基于拉绳位移传感器的机器人运动学参数标定方法 Download PDFInfo
- Publication number
- CN107553493A CN107553493A CN201710865454.9A CN201710865454A CN107553493A CN 107553493 A CN107553493 A CN 107553493A CN 201710865454 A CN201710865454 A CN 201710865454A CN 107553493 A CN107553493 A CN 107553493A
- Authority
- CN
- China
- Prior art keywords
- msub
- mtd
- mrow
- mtr
- delta
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
Abstract
本发明公开了一种基于拉绳位移传感器的机器人运动学参数标定方法,根据建立的机器人运动学模型建立机器人的微分误差模型,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程;确定机器人基坐标系,得到机器人基坐标系和位置测量***坐标系之间的转换关系;使用由拉绳位移传感器组成的位置测量***测量机器人末端在位置测量***坐标系下的位置坐标,将该位置坐标转换为在机器人基坐标系下的位置坐标;根据机器人末端的实际位置和理论位置之间的偏差使用最小二乘法辨识机器人的运动学参数偏差;根据此以及机器人运动学参数的理论值确定机器人运动学参数的实际值。该方法能有效的标定机器人的运动学参数,提高工业机器人的绝对定位精度。
Description
技术领域
本发明涉及工业机器人技术领域,特别是一种基于拉绳位移传感器的机器人运动学参数标定方法。
背景技术
精度是衡量工业机器人性能的重要指标。工业机器人的精度指标包括重复定位精度和绝对定位精度。工业机器人的重复定位精度一般很高(0.1mm或更好),绝对定位精度一般较低(10mm或更差)。随着机器人技术的飞速发展,工业机器人也已广泛应用于多个领域的工业现场,激光切割、视觉伺服和离线编程等技术的应用都需要工业机器人具有较高的绝对定位精度。机器人几何参数误差对机器人定位精度的影响达到80%以上,机器人运动学参数标定可以辨识出机器人的运动学参数偏差,根据偏差值修正机器人的理论运动学模型,有效提高机器人的绝对定位精度。
现阶段多使用激光跟踪仪测量机器人末端的实际位置完成机器人运动学参数的标定,激光跟踪仪的价格昂贵,操作复杂,体积较大不便于移动。
发明内容
本发明所要解决的技术问题是克服现有技术的不足而提供一种基于拉绳位移传感器的机器人运动学参数标定方法,该方法使用拉绳位遗传感器测量机器人末端执行器的实际位置,成本低,安装与操作简单,体积小,便于移动,可以有效标定工业机器人的运动学参数,提高机器人的绝对定位精度。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种基于拉绳位移传感器的机器人运动学参数标定方法,包括以下步骤:
S1、根据机器人本体的连杆长度、零点位置及各关节旋转方向建立机器人的MDH模型,确定机器人运动学参数的理论值,根据建立的MDH模型建立机器人的微分误差模型,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程;
S2、使用拉绳位移传感器组成的位置测量***确定机器人基坐标系,得到机器人基坐标系和位置测量***坐标系之间的转换关系;
S3、使用由拉绳位移传感器组成的位置测量***测量机器人末端在位置测量***坐标系下的位置坐标,将该位置坐标转换为在机器人基坐标系下的位置坐标,转换后的位置坐标即为机器人末端的实际位置;
S4、根据建立的MDH模型得到机器人末端的理论位置,根据机器人末端的实际位置和理论位置之间的偏差以及步骤S1中机器人末端位置偏差值和机器人运动学参数偏差之间的约束方程,使用最小二乘法辨识机器人的运动学参数偏差;
S5、根据步骤S4得到的机器人运动学参数偏差以及机器人运动学参数的理论值确定机器人运动学参数的实际值。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,步骤S1中机器人末端位置偏差和机器人运动学参数偏差之间的约束方程:
其中,dn表示机器人末端位置的偏差值,Ma、Mα、Md、Mθ、Mβ是机器人运动学参数偏差的系数矩阵,为3×n矩阵,Δa、Δα、Δd、Δθ、Δβ表示机器人的运动学参数偏差,其中Δθ=(Δθ1,Δθ2,...,Δθn),Δd=(Δd1,Δd2,...,Δdn),Δa=(Δa1,Δa2,...,Δan),Δα=(Δα1,Δα2,...,Δαn),Δβ=(Δβ1,Δβ2,...,Δβn),Δai、Δαi、Δdi、Δθi、Δβi均表示机器人第i关节运动学参数的微小偏差,1≤i≤n,n为机器人旋转关节的数量。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,步骤S1中得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程,具体步骤如下:
S1.1:根据机器人的MDH模型,得到机器人相邻两关节之间的运动学关系为:
其中,ai、αi、di、θi和βi为机器人第i关节的运动学参数,1≤i≤n,n为机器人旋转关节的数量,cθi表示cosθi,sθi表示sinθi;
S1.2:对式(1)两端进行微分得到机器人相邻两关节之间的误差矩阵为:
其中,Δai、Δαi、Δdi、Δθi、Δβi均表示机器人第i关节运动学参数的微小偏差,令结合式(1),得:
根据式(3)~(7)将式(2)变换为:
此处定义为误差矩阵,从而得到:
将公式(3)~(7)代入式(9)中得到:
根据公式(10)得:
其中,di和δi分别表示的位置误差和姿态误差;
S1.3:将机器人相邻两关节之间的误差矩阵代入机器人的传动链结构中,得:
其中,表示第i关节相对于第i-1关节的位姿关系,表示第i关节相对于第i-1关节的位姿误差,为机器人末端位姿的微小变化,表示机器人末端的理论位置,定义Un+1为单位矩阵,利用微分原理,忽略高阶微分项,得:
其中,是Ui+1的逆矩阵;
将公式(1)和公式(10)代入公式(14)中,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程:
其中,和分别代表矩阵Ui+1的四个3×1的向量;dn表示机器人末端位置的偏差值,Ma、Mα、Md、Mθ、Mβ为根据公式(15)化简得到的3×n矩阵,是机器人运动学参数偏差的系数矩阵,Δa、Δα、Δd、Δθ、Δβ表示机器人的运动学参数偏差,其中,Δθ=(Δθ1,Δθ2,...,Δθn),Δd=(Δd1,Δd2,...,Δdn),Δa=(Δa1,Δa2,...,Δan),Δα=(Δα1,Δα2,...,Δαn),Δβ=(Δβ1,Δβ2,...,Δβn)。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,Ma、Mα、Md、Mθ、Mβ和机器人的理论运动学参数和机器人各关节角度值有关。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,所述步骤S2中,使用的拉绳位移传感器的量程为2000mm,线性精度为0.05%,重复精度为0.02%,分辨率为0.0244mm,位置测量***包括至少3个拉绳位移传感器、安装拉绳位移传感器的基座和挂载拉绳的执行器。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,所述步骤S2中,确定机器人的基坐标系包括以下步骤:
S2.1:使用由拉绳位移传感器组成的位置测量***确定机器人基坐标系的坐标原点和Z轴方向;
S2.2:使用由拉绳位移传感器组成的位置测量***确定机器人基坐标系的Y轴方向,然后使用右手定则确定机器人的X轴方向。
作为本发明所述的一种基于拉绳位移传感器的机器人运动学参数标定方法进一步优化方案,所述步骤S3中,根据步骤S2中确定的机器人基坐标系,将位置测量***测量的机器人末端的位置坐标转换为在机器人基坐标系下的位置坐标。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明使用拉绳位移传感器、固定拉绳位移传感器的基座以及挂载拉绳的机器人末端执行器组成测量机器人末端实际位置的位置测量***,通过该位置测量***测量机器人的实际位置,把机器人的理论位置和测量得到的机器人的理论位置代入机器人的微分误差模型,使用最小二乘法辨识出机器人的运动学参数偏差,结合机器人运动学参数理论值得到机器人运动学参数实际值。相比于使用激光跟踪仪进行机器人运动学参数标定的方法,本发明使用拉绳位移传感器测量机器人末端的实际位置,安装简单快速,成本低,体积小,移动方便,操作简单,可以快速的完成机器人运动学参数标定。
附图说明
图1为本发明使用拉绳位移传感器标定机器人运动学参数的流程图。
图2为本发明由拉绳位移传感器组成的位置测量***。
图3为本发明位置测量***简图。
图4为本发明确定机器人基坐标系原点位置和Z轴方向的原理图。
图5为本发明确定机器人基坐标系Y轴方向的原理图。
图6为本发明机器人运动学参数偏差辨识流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本具体实施方式公开了一种基于拉绳位移传感器的机器人运动学参数标定方法,包括以下步骤:
S1:根据机器人本体的连杆长度、零点位置及各关节旋转方向建立机器人的MDH模型,确定机器人运动学参数的理论值,根据建立的机器人运动学模型建立机器人的微分误差模型,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程;
S2:使用拉绳位移传感器组成的位置测量***确定机器人基坐标系,得到机器人基坐标系和位置测量***坐标系之间的转换关系;
S3:使用由拉绳位移传感器组成的位置测量***测量机器人末端在位置测量***坐标系下的位置坐标,将该位置坐标转换为在机器人基坐标系下的位置坐标,转换后的位置坐标即为机器人末端的实际位置。
S4:根据建立的理论MDH模型可以得到机器人末端的理论位置,根据机器人末端的实际位置和理论位置之间的偏差使用最小二乘法辨识机器人的运动学参数偏差;
S5:根据S4得到的机器人运动学参数偏差以及机器人运动学参数的理论值确定机器人运动学参数的实际值。
图1为机器人运动学参数标定过程示意图。首先需要建立一个合适的机器人运动学模型,本发明使用MDH建模方法建立机器人的运动学模型。根据建立的机器人MDH模型,得到机器人相邻两关节之间的运动学关系为:
其中,ai、αi、di、θi和βi为机器人第i关节的运动学参数,cθi表示cosθi,sθi表示sinθi;对式(1)两端进行微分得到机器人相邻两关节之间的误差矩阵为:
式(2)中Δai、Δαi、Δdi、Δθi、Δβi分别表示机器人第i关节运动学参数的微小偏差,令结合式(1),可得:
根据式(3)~(7)可将式(2)变换为:
此处可以定义为误差矩阵,从而可以得到:
将公式(3)~(7)代入式(9)中得到:
根据公式(10)可得:
其中,di和δi分别表示的位置误差和姿态误差。将机器人相邻两关节之间的误差矩阵代入机器人的传动链结构中,可得:
式(13)中表示第i关节相对于第i-1关节的位姿关系,表示第i关节相对于第i-1关节的位姿误差,为机器人末端位姿的微小变化。1≤i≤n,n为机器人旋转关节的数量,定义 是Ui+1的逆矩阵,其中Un+1为单位矩阵,利用微分原理,忽略高阶微分项,可得:
将公式(1)和公式(10)代入公式(14)中,可以得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程:
其中,和分别代表矩阵Ui+1的四个3×1的向量;dn表示机器人末端位置的偏差值,Ma、Mα、Md、Mθ、Mβ为根据公式(15)化简得到的3×n矩阵,是机器人运动学参数偏差的系数矩阵,Δa、Δα、Δd、Δθ、Δβ表示机器人的运动学参数偏差,其中,Δθ=(Δθ1,Δθ2,...,Δθn),Δd=(Δd1,Δd2,...,Δdn),Δa=(Δa1,Δa2,...,Δan),Δα=(Δα1,Δα2,...,Δαn),Δβ=(Δβ1,Δβ2,...,Δβn)。
机器人位置测量***如图2所示,由四个拉绳位移传感器、基座和挂载拉绳的执行器组成。在固定好拉绳位移传感器之后,使用拉绳位移传感器分别测量各自之间的相对距离,然后将四个拉绳位移传感器的拉绳末端挂载在执行器上,根据拉绳的长度和拉上位移传感器之间的相对距离计算出机器人末端相对于位置测量***坐标系的位置坐标。
测量机器人末端位置的简化模型如图3所示,四个拉绳位移传感器分别位于A、B、C、D四个位置,各自的拉绳长度分别为la、lb、lc、ld,把位置测量***的坐标系建立在A点,则机器人末端位置T点的位置坐标为(x,y,z),四个拉绳位移传感器末端距机器人末端位置T的距离是r。由图3可知,A点坐标系的Z轴垂直于ABCD平面,X轴和AC重合,根据右手定则确定Y轴方向。
AT和AC之间的夹角为β,则:
设AT与AD之间夹角为α,AD与AC之间的夹角为γ则:
设AT与ABCD平面之间夹角为θ:
z=(la+r)·sinθ (21)
则根据拉绳位移传感器出线长度,通过以上公式进行计算可以得出机器人末端执行器的位置坐标(x,y,z)为
确定机器人基坐标系和位置测量***坐标系之间转换关系的原理图如图4和图5所示,图4是确定机器人基坐标系原点位置和Z轴方向的原理图,图5是确定机器人基坐标系Y轴方向的原理图。本发明采用数值拟合的方式来建立机器人测量基准坐标系,机器人基坐标系的XY平面和位置测量***XY平面重合。首先确定机器人基坐标系的原点位置和Z轴方向:
1)使机器人各个关节值为(0,0,0,0,-90,0);
2)单独旋转机器人关节1,每隔一定角度记录一个点,使用机器人位置测量***得出一系列点的坐标值;
3)使用数值拟合的方式把这些点拟合成一个圆形平面;
4)这个圆形平面的轴线即为机器人基坐标系Z轴,该轴线与机器人基坐标系XY平面的交点为机器人基坐标系原点。
确定机器人基坐标系Y轴方向:
1)使机器人各个关节值为(0,0,0,0,0,0);
2)单独旋转机器人关节2,每隔一定角度记录一个点,使用机器人位置测量***得出一系列点的坐标值;
3)使用数值拟合的方式把这些点拟合成一个圆形平面;
4)这个圆形平面的轴线即为机器人基坐标系Y轴。
根据得到的机器人基坐标系原点位置、Z轴和Y轴方向,使用右手定则确定机器人基坐标系的X轴方向,最终确定机器人的基坐标系。
机器人运动学参数辨识流程图如图6所示。使用位置测量***测量机器人末端的实际位置,这些测量点应尽可能均匀分布在机器人的工作空间中,根据机器人末端的实际位置和理论位置的偏差以及机器人末端位置偏差和机器人运动学参数偏差之间的约束方程使用最小二乘法辨识出机器人的运动学参数偏差。
最终根据辨识出的机器人运动学参数偏差对机器人的理论DH参数进行补偿得到机器人的实际DH参数,完成机器人的运动学参数标定。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替代,都应当视为属于本发明的保护范围。
Claims (7)
1.一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,包括以下步骤:
S1、根据机器人本体的连杆长度、零点位置及各关节旋转方向建立机器人的MDH模型,确定机器人运动学参数的理论值,根据建立的MDH模型建立机器人的微分误差模型,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程;
S2、使用拉绳位移传感器组成的位置测量***确定机器人基坐标系,得到机器人基坐标系和位置测量***坐标系之间的转换关系;
S3、使用由拉绳位移传感器组成的位置测量***测量机器人末端在位置测量***坐标系下的位置坐标,将该位置坐标转换为在机器人基坐标系下的位置坐标,转换后的位置坐标即为机器人末端的实际位置;
S4、根据建立的MDH模型得到机器人末端的理论位置,根据机器人末端的实际位置和理论位置之间的偏差以及步骤S1中机器人末端位置偏差值和机器人运动学参数偏差之间的约束方程,使用最小二乘法辨识机器人的运动学参数偏差;
S5、根据步骤S4得到的机器人运动学参数偏差以及机器人运动学参数的理论值确定机器人运动学参数的实际值。
2.根据权利要求1所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,步骤S1中机器人末端位置偏差和机器人运动学参数偏差之间的约束方程:
<mrow>
<msup>
<mi>d</mi>
<mi>n</mi>
</msup>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mi>d</mi>
<mi>x</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>d</mi>
<mi>y</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>d</mi>
<mi>z</mi>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mo>&lsqb;</mo>
<mtable>
<mtr>
<mtd>
<msub>
<mi>M</mi>
<mi>a</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&alpha;</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>d</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&theta;</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&beta;</mi>
</msub>
</mtd>
</mtr>
</mtable>
<mo>&rsqb;</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>a</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&alpha;</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>d</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&theta;</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&beta;</mi>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>;</mo>
</mrow>
其中,dn表示机器人末端位置的偏差值,Ma、Mα、Md、Mθ、Mβ是机器人运动学参数偏差的系数矩阵,为3×n矩阵,Δa、Δα、Δd、Δθ、Δβ表示机器人的运动学参数偏差,其中Δθ=(Δθ1,Δθ2,...,Δθn),Δd=(Δd1,Δd2,...,Δdn),Δa=(Δa1,Δa2,...,Δan),Δα=(Δα1,Δα2,...,Δαn),Δβ=(Δβ1,Δβ2,...,Δβn),Δai、Δαi、Δdi、Δθi、Δβi均表示机器人第i关节运动学参数的微小偏差,1≤i≤n,n为机器人旋转关节的数量。
3.根据权利要求1所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,步骤S1中得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程,具体步骤如下:
S1.1:根据机器人的MDH模型,得到机器人相邻两关节之间的运动学关系为:
<mrow>
<mtable>
<mtr>
<mtd>
<mrow>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>=</mo>
<mi>R</mi>
<mi>o</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>Z</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>&theta;</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<mi>T</mi>
<mi>r</mi>
<mi>a</mi>
<mi>n</mi>
<mi>s</mi>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>,</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<mi>T</mi>
<mi>r</mi>
<mi>a</mi>
<mi>n</mi>
<mi>s</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<mi>R</mi>
<mi>o</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>&alpha;</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<mi>R</mi>
<mi>o</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>Y</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>&beta;</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>c&theta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</mtd>
</mtr>
</mtable>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,ai、αi、di、θi和βi为机器人第i关节的运动学参数,1≤i≤n,n为机器人旋转关节的数量,cθi表示cosθi,sθi表示sinθi;
S1.2:对式(1)两端进行微分得到机器人相邻两关节之间的误差矩阵为:
<mrow>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Δai、Δαi、Δdi、Δθi、Δβi均表示机器人第i关节运动学参数的微小偏差,令结合式(1),得:
<mrow>
<msub>
<mi>Q</mi>
<mi>a</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>Q</mi>
<mi>&alpha;</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>Q</mi>
<mi>d</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>Q</mi>
<mi>&theta;</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>Q</mi>
<mi>&beta;</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
</mrow>
根据式(3)~(7)将式(2)变换为:
<mrow>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>=</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mrow>
<mo>(</mo>
<msub>
<mi>Q</mi>
<mi>a</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&alpha;</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>d</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&theta;</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&beta;</mi>
</msub>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>8</mn>
<mo>)</mo>
</mrow>
</mrow>
此处定义为误差矩阵,从而得到:
<mrow>
<mi>&delta;</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>=</mo>
<msub>
<mi>Q</mi>
<mi>a</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&alpha;</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>d</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&theta;</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mi>&beta;</mi>
</msub>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>9</mn>
<mo>)</mo>
</mrow>
</mrow>
将公式(3)~(7)代入式(9)中得到:
<mrow>
<mtable>
<mtr>
<mtd>
<mrow>
<mi>&delta;</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>&delta;z</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&delta;y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>dx</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&delta;z</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>&delta;x</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>dy</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>&delta;y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&delta;x</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>dz</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</mtd>
</mtr>
</mtable>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>10</mn>
<mo>)</mo>
</mrow>
</mrow>
根据公式(10)得:
<mrow>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>dx</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>dy</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>dz</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;a</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>a</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>11</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>&delta;</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&delta;x</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&delta;y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&delta;z</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;&alpha;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>s&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>c&alpha;</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c&beta;</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;&theta;</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>&CenterDot;</mo>
<msub>
<mi>&Delta;&beta;</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>12</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,di和δi分别表示的位置误差和姿态误差;
S1.3:将机器人相邻两关节之间的误差矩阵代入机器人的传动链结构中,得:
<mrow>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mn>0</mn>
</mmultiscripts>
<mo>+</mo>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mn>0</mn>
</mmultiscripts>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mmultiscripts>
<mi>T</mi>
<mn>1</mn>
<mn>0</mn>
</mmultiscripts>
<mo>+</mo>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mn>1</mn>
<mn>0</mn>
</mmultiscripts>
<mo>)</mo>
</mrow>
<mrow>
<mo>(</mo>
<mmultiscripts>
<mi>T</mi>
<mn>2</mn>
<mn>1</mn>
</mmultiscripts>
<mo>+</mo>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mn>2</mn>
<mn>1</mn>
</mmultiscripts>
<mo>)</mo>
</mrow>
<mn>...</mn>
<mrow>
<mo>(</mo>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>+</mo>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Pi;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<mrow>
<mo>(</mo>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>+</mo>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>13</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,表示第i关节相对于第i-1关节的位姿关系,表示第i关节相对于第i-1关节的位姿误差,为机器人末端位姿的微小变化,表示机器人末端的理论位置,定义Un+1为单位矩阵,利用微分原理,忽略高阶微分项,得:
<mrow>
<mi>d</mi>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mn>0</mn>
</mmultiscripts>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<mi>&delta;</mi>
<mi>z</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>&delta;</mi>
<mi>y</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>d</mi>
<mi>x</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>&delta;</mi>
<mi>z</mi>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<mi>&delta;</mi>
<mi>x</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>d</mi>
<mi>y</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<mi>&delta;</mi>
<mi>y</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>&delta;</mi>
<mi>x</mi>
</mrow>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>d</mi>
<mi>z</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<mrow>
<mo>(</mo>
<mmultiscripts>
<mi>T</mi>
<mn>1</mn>
<mn>0</mn>
</mmultiscripts>
<mn>...</mn>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>&CenterDot;</mo>
<mi>&delta;</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>&CenterDot;</mo>
<mmultiscripts>
<mi>T</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>i</mi>
</mmultiscripts>
<mn>...</mn>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mn>0</mn>
</mmultiscripts>
<mo>&CenterDot;</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<mrow>
<mo>(</mo>
<msubsup>
<mi>U</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
<mi>&delta;</mi>
<mmultiscripts>
<mi>T</mi>
<mi>i</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mmultiscripts>
<mo>&CenterDot;</mo>
<msub>
<mi>U</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>14</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,是Ui+1的逆矩阵;
将公式(1)和公式(10)代入公式(14)中,得到机器人末端位置偏差和机器人运动学参数偏差之间的约束方程:
<mrow>
<msup>
<mi>d</mi>
<mi>n</mi>
</msup>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>d</mi>
<mi>x</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>d</mi>
<mi>y</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>d</mi>
<mi>z</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mmultiscripts>
<mi>T</mi>
<mi>n</mi>
<mn>0</mn>
</mmultiscripts>
<mo>&CenterDot;</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<mo>&lsqb;</mo>
<msubsup>
<mi>n</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&CenterDot;</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<msubsup>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&times;</mo>
<msubsup>
<mi>n</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<msub>
<mi>&delta;</mi>
<mi>i</mi>
</msub>
<mo>&rsqb;</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<mo>&lsqb;</mo>
<msubsup>
<mi>o</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&CenterDot;</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<msubsup>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&times;</mo>
<msubsup>
<mi>o</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<msub>
<mi>&delta;</mi>
<mi>i</mi>
</msub>
<mo>&rsqb;</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<mo>&lsqb;</mo>
<msubsup>
<mi>a</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&CenterDot;</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<msubsup>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>&times;</mo>
<msubsup>
<mi>a</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mi>u</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&CenterDot;</mo>
<msub>
<mi>&delta;</mi>
<mi>i</mi>
</msub>
<mo>&rsqb;</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mo>&lsqb;</mo>
<mtable>
<mtr>
<mtd>
<msub>
<mi>M</mi>
<mi>a</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&alpha;</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>d</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&theta;</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>M</mi>
<mi>&beta;</mi>
</msub>
</mtd>
</mtr>
</mtable>
<mo>&rsqb;</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>a</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&alpha;</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>d</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&theta;</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>&Delta;</mi>
<mi>&beta;</mi>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>15</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,和分别代表矩阵Ui+1的四个3×1的向量;dn表示机器人末端位置的偏差值,Ma、Mα、Md、Mθ、Mβ为根据公式(15)化简得到的3×n矩阵,是机器人运动学参数偏差的系数矩阵,Δa、Δα、Δd、Δθ、Δβ表示机器人的运动学参数偏差,其中,Δθ=(Δθ1,Δθ2,...,Δθn),Δd=(Δd1,Δd2,...,Δdn),Δa=(Δa1,Δa2,...,Δan),Δα=(Δα1,Δα2,...,Δαn),Δβ=(Δβ1,Δβ2,...,Δβn)。
4.根据权利要求2所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,Ma、Mα、Md、Mθ、Mβ和机器人的理论运动学参数和机器人各关节角度值有关。
5.根据权利要求1所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,所述步骤S2中,使用的拉绳位移传感器的量程为2000mm,线性精度为0.05%,重复精度为0.02%,分辨率为0.0244mm,位置测量***包括至少3个拉绳位移传感器、安装拉绳位移传感器的基座和挂载拉绳的执行器。
6.根据权利要求1所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,所述步骤S2中,确定机器人的基坐标系包括以下步骤:
S2.1:使用由拉绳位移传感器组成的位置测量***确定机器人基坐标系的坐标原点和Z轴方向;
S2.2:使用由拉绳位移传感器组成的位置测量***确定机器人基坐标系的Y轴方向,然后使用右手定则确定机器人的X轴方向。
7.根据权利要求1所述的一种基于拉绳位移传感器的机器人运动学参数标定方法,其特征在于,所述步骤S3中,根据步骤S2中确定的机器人基坐标系,将位置测量***测量的机器人末端的位置坐标转换为在机器人基坐标系下的位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865454.9A CN107553493A (zh) | 2017-09-22 | 2017-09-22 | 一种基于拉绳位移传感器的机器人运动学参数标定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865454.9A CN107553493A (zh) | 2017-09-22 | 2017-09-22 | 一种基于拉绳位移传感器的机器人运动学参数标定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107553493A true CN107553493A (zh) | 2018-01-09 |
Family
ID=60982589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710865454.9A Pending CN107553493A (zh) | 2017-09-22 | 2017-09-22 | 一种基于拉绳位移传感器的机器人运动学参数标定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107553493A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108705531A (zh) * | 2018-04-17 | 2018-10-26 | 上海达野智能科技有限公司 | 工业机器人的运动学参数标定方法、标定***、电子设备 |
CN108908335A (zh) * | 2018-07-20 | 2018-11-30 | 合肥工业大学 | 基于改进差分进化算法的机器人标定方法 |
CN109262619A (zh) * | 2018-12-20 | 2019-01-25 | 中国铁建重工集团有限公司 | 一种工程机械定位方法及*** |
CN109278066A (zh) * | 2018-10-30 | 2019-01-29 | 武汉工程大学 | 一种多机器人基坐标系几何标定工装及标定方法 |
CN109648606A (zh) * | 2018-12-29 | 2019-04-19 | 深圳市越疆科技有限公司 | Scara机器人的拉线测试方法 |
CN109655024A (zh) * | 2019-01-24 | 2019-04-19 | 大连理工大学 | 采用空间变换技术的位移传感器外部参数标定方法 |
WO2019148431A1 (zh) * | 2018-02-01 | 2019-08-08 | 深圳市大疆创新科技有限公司 | 多关节机构标定的方法、装置和计算机*** |
CN110749257A (zh) * | 2019-08-05 | 2020-02-04 | 上海大学 | 一种拉线式测量***的测量基准点不共面误差补偿方法 |
CN110815207A (zh) * | 2018-08-14 | 2020-02-21 | 中国科学院沈阳自动化研究所 | 一种Stewart型并联柔索机器人运动学标定方法 |
CN111912310A (zh) * | 2020-08-10 | 2020-11-10 | 深圳市智流形机器人技术有限公司 | 校准方法、装置、设备 |
CN112077836A (zh) * | 2020-09-08 | 2020-12-15 | 北京北特圣迪科技发展有限公司 | 一种基于四柔索牵引并联执行器的高架吊杆误差校正方法 |
CN113618738A (zh) * | 2021-08-23 | 2021-11-09 | 上海大学 | 一种机械臂运动学参数标定方法及*** |
CN114406991A (zh) * | 2022-02-21 | 2022-04-29 | 天津工业大学 | 基于拉线式编码器的工业机器人标定与空间位置测量方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2332843A1 (fr) * | 1975-11-28 | 1977-06-24 | Bendix Corp | Procede d'etalonnage d'un systeme de manipulation d'objets a sous-syste |
CN101231749A (zh) * | 2007-12-20 | 2008-07-30 | 昆山华恒工程技术中心有限公司 | 一种工业机器人的标定方法 |
CN103231375A (zh) * | 2013-04-28 | 2013-08-07 | 苏州大学 | 基于距离误差模型的工业机器人标定方法 |
CN107042527A (zh) * | 2017-05-20 | 2017-08-15 | 天津大学 | 一种基于三维力传感器的工业机器人标定装置及标定方法 |
-
2017
- 2017-09-22 CN CN201710865454.9A patent/CN107553493A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2332843A1 (fr) * | 1975-11-28 | 1977-06-24 | Bendix Corp | Procede d'etalonnage d'un systeme de manipulation d'objets a sous-syste |
CN101231749A (zh) * | 2007-12-20 | 2008-07-30 | 昆山华恒工程技术中心有限公司 | 一种工业机器人的标定方法 |
CN103231375A (zh) * | 2013-04-28 | 2013-08-07 | 苏州大学 | 基于距离误差模型的工业机器人标定方法 |
CN107042527A (zh) * | 2017-05-20 | 2017-08-15 | 天津大学 | 一种基于三维力传感器的工业机器人标定装置及标定方法 |
Non-Patent Citations (2)
Title |
---|
薛志奇: "基于线误差的机器人自身参数标定研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
龚星如: "六自由度工业机器人运动学标定的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019148431A1 (zh) * | 2018-02-01 | 2019-08-08 | 深圳市大疆创新科技有限公司 | 多关节机构标定的方法、装置和计算机*** |
CN108705531A (zh) * | 2018-04-17 | 2018-10-26 | 上海达野智能科技有限公司 | 工业机器人的运动学参数标定方法、标定***、电子设备 |
CN108908335A (zh) * | 2018-07-20 | 2018-11-30 | 合肥工业大学 | 基于改进差分进化算法的机器人标定方法 |
CN108908335B (zh) * | 2018-07-20 | 2023-03-14 | 合肥工业大学 | 基于改进差分进化算法的机器人标定方法 |
CN110815207B (zh) * | 2018-08-14 | 2022-10-21 | 中国科学院沈阳自动化研究所 | 一种Stewart型并联柔索机器人运动学标定方法 |
CN110815207A (zh) * | 2018-08-14 | 2020-02-21 | 中国科学院沈阳自动化研究所 | 一种Stewart型并联柔索机器人运动学标定方法 |
CN109278066A (zh) * | 2018-10-30 | 2019-01-29 | 武汉工程大学 | 一种多机器人基坐标系几何标定工装及标定方法 |
CN109278066B (zh) * | 2018-10-30 | 2023-11-03 | 武汉工程大学 | 一种多机器人基坐标系几何标定工装及标定方法 |
CN109262619A (zh) * | 2018-12-20 | 2019-01-25 | 中国铁建重工集团有限公司 | 一种工程机械定位方法及*** |
CN109648606A (zh) * | 2018-12-29 | 2019-04-19 | 深圳市越疆科技有限公司 | Scara机器人的拉线测试方法 |
CN109655024A (zh) * | 2019-01-24 | 2019-04-19 | 大连理工大学 | 采用空间变换技术的位移传感器外部参数标定方法 |
CN109655024B (zh) * | 2019-01-24 | 2020-05-19 | 大连理工大学 | 采用空间变换技术的位移传感器外部参数标定方法 |
CN110749257A (zh) * | 2019-08-05 | 2020-02-04 | 上海大学 | 一种拉线式测量***的测量基准点不共面误差补偿方法 |
CN110749257B (zh) * | 2019-08-05 | 2021-08-10 | 上海大学 | 一种拉线式测量***的测量基准点不共面误差补偿方法 |
CN111912310A (zh) * | 2020-08-10 | 2020-11-10 | 深圳市智流形机器人技术有限公司 | 校准方法、装置、设备 |
CN111912310B (zh) * | 2020-08-10 | 2021-08-10 | 深圳市智流形机器人技术有限公司 | 校准方法、装置、设备 |
CN112077836A (zh) * | 2020-09-08 | 2020-12-15 | 北京北特圣迪科技发展有限公司 | 一种基于四柔索牵引并联执行器的高架吊杆误差校正方法 |
CN112077836B (zh) * | 2020-09-08 | 2024-01-23 | 北京北特圣迪科技发展有限公司 | 一种基于四柔索牵引并联执行器的高架吊杆误差校正方法 |
CN113618738A (zh) * | 2021-08-23 | 2021-11-09 | 上海大学 | 一种机械臂运动学参数标定方法及*** |
CN113618738B (zh) * | 2021-08-23 | 2024-04-19 | 上海大学 | 一种机械臂运动学参数标定方法及*** |
CN114406991A (zh) * | 2022-02-21 | 2022-04-29 | 天津工业大学 | 基于拉线式编码器的工业机器人标定与空间位置测量方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107553493A (zh) | 一种基于拉绳位移传感器的机器人运动学参数标定方法 | |
CN106737855A (zh) | 一种综合位姿误差模型与刚度补偿的机器人精度补偿方法 | |
CN100547614C (zh) | 一种工业机器人的标定方法 | |
CN109773786A (zh) | 一种工业机器人平面精度标定方法 | |
CN110815206B (zh) | 一种Stewart型并联机器人运动学标定方法 | |
CN107175660B (zh) | 一种基于单目视觉的六自由度机器人运动学标定方法 | |
CN104408299B (zh) | 基于距离识别冗余运动学参数的机器人位置误差补偿方法 | |
CN110281241A (zh) | 基于激光跟踪仪测量机械臂运动学参数标定方法 | |
CN108789404A (zh) | 一种基于视觉的串联机器人运动学参数标定方法 | |
CN110202582A (zh) | 一种基于三坐标平台的机器人标定方法 | |
CN108406771A (zh) | 一种平面约束误差模型及机器人自标定方法 | |
CN103231375A (zh) | 基于距离误差模型的工业机器人标定方法 | |
CN104535027A (zh) | 一种变参数误差辨识的机器人精度补偿方法 | |
CN110193829A (zh) | 一种耦合运动学与刚度参数辨识的机器人精度控制方法 | |
CN106338990A (zh) | 基于激光跟踪仪的工业机器人dh参数标定与零位标定方法 | |
CN108705531A (zh) | 工业机器人的运动学参数标定方法、标定***、电子设备 | |
CN106777656A (zh) | 一种基于pmpsd的工业机器人绝对精度校准方法 | |
CN107144273A (zh) | 基于倾角传感的室内测量定位***基站姿态自动补偿方法 | |
CN104608129A (zh) | 基于平面约束的机器人标定方法 | |
CN104890013A (zh) | 一种基于拉线编码器的工业机器人标定算法 | |
CN103659806A (zh) | 一种工业机器人零位标定方法 | |
CN102566577A (zh) | 一种工业机器人简易标定方法 | |
CN105773622A (zh) | 一种基于iekf的工业机器人绝对精度校准方法 | |
CN107942933A (zh) | 一种视觉伺服的平面三自由度宏微复合定位***及方法 | |
CN105643619B (zh) | 一种采用框架描述的工业机器人工具位姿控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180109 |