Calibration of robot base coordinate system based on spatial polyhedron anomaly projection
-
摘要: 针对不同类型、不同位置的工业机器人基坐标标定问题,提出一种基于空间多面体异点投影基坐标标定方法。所提出基坐标标定方法借助设计的标定台,分别获取主从工业机器人在空间中不同标定点的关节角度信息,将标定点与基坐标原点在空间中构建多空间多面体,并将空间多面体向主工业机器人所在的X-Y、X-Z和Y-Z面进行投影,根据投影图形获得远距离及不同类型工业机器人之间位姿变换矩阵。通过引入高斯白噪声误差模拟实际误差,结合理论分析及MATLAB软件进行仿真实验。实验结果表明改进后的基坐标标定方法具有极高的准确性、稳定性和标定精度。Abstract: In order to solve the problem of base coordinate calibration of industrial robots with different types and positions, the base coordinate calibration method based on the projection of different points of spatial polyhedron can be adopted.The proposed base coordinate calibration method relies on the designed calibration stage, the joint angle information of the master-slave industrial robot at different calibration points in space is obtained separately, Firstly, a multispace polyhedron is constructed in space by reference point and base coordinate origin, The spatial polyhedron is projected onto the x-Y, X-Z and Y-Z planes where the industrial robot resides, Finally, the position and pose transformation matrices between different types of industrial robots are obtained according to the projection graphics. By introducing the gaussian white noise error to simulate the actual error, combined with theoretical analysis and MATLAB software simulation experiment. Experimental results show that the improved base coordinate calibration method has high accuracy, stability and calibration precision.
-
协作工业机器人进行协同作业的前提是工业机器人之间建立基坐标联系,由于工业机器人在建立运动学模型时,基坐标系会建立在工业机器人内部[1],造成工业机器人之间基坐标无法直接测量。准确获得多台工业机器人之间的联系,也就是获得多台工业机器人之间位姿变换矩阵将有利于工业机器人之间开展碰撞检测、轨迹规划和协同作业等。
现有工业机器人基坐标标定方法可分为借助精密仪器与不借助精密仪器两种方式。不借助精密仪器主要有“三点定圆”、“投影标定”和“三点握手”等方法[2-5]。不借助精密仪器,无论是“三点定圆”还是“投影标定”和“三点握手”基坐标系标定方法,需要协作工业机器人末端执行器接触或有公共的工作空间,针对远距离下工作空间不重合及不同类型工业机器人之间的标定均无法完成标定。借助精密仪器是指借助CDD相机、激光追踪仪和自动经纬仪等精密仪器完成基坐标标定[6-8]。由于借助精密仪器进行标定过程复杂且成本过高,如使用CDD相机标定需先标定CDD相机然后通过CDD相机获得图像参数进行计算,而激光追踪仪和自动经纬仪价格昂贵不利于实际生产,且借助精密仪器在远距离下标定协作工业机器人表的标定误差大。针对上述存在的协作工业机器人基坐标标定问题,提出了空间多面体异点投影标定的方法,借助设计的标定台,分别获取主从工业机器人在空间中不同标定点的关节角度信息,将标定点与基坐标系原点在空间中构建多空间面体,并将空间多面体向主工业机器人所在的X-Y、X-Z和Y-Z面进行投影,通过不同面的投影信息,从而获得主从工业机器人之间的位姿变换矩阵,实现了不同类型机器人之间在末端执行器在没有公共工作空间下快速、低成本和低误差的基坐标标定。
1. 空间多面体异点投影基坐标标定台
1.1 标定台结构
为实现工业机器人能够在非重合的工作空间中实现基坐标标定,设计了能够满足标定方法的标定台,如图1所示,标定台主要由支撑台、滑动台、测量杆和滑动台导轨组成,支撑台设计为可升降结构以满足在不同支撑状态下保证卡尺的稳定性,滑动台搭载激光测距仪和角度传感器,激光测距仪测量滑动台在滑动台导轨上的移动距离,角度传感器测量测量杆的偏移角度,测量杆搭载位移传感器以精确测量在伸缩杆带动下滑动台标定杯与测量杆标定杯之间距离,标定杯设计为锥形底结构结合工业机器人末端执行器搭载的标定针以满足高精度标定。
1.2 标定过程
标定流程如图2所示,标定过程如图3所示。标定使用6R机器人和SCARA机器人,这两款工业机器人代表了实际工业生产中最具代表性的两款工业机器人。
首先固定标定台底座,使得测量杆的标定杯能够在移动范围接触标定的两台工业机器人,调整测量杆旋转角度为零且与滑动台导轨重合。主工业机器人的标定针接触测量杆标定杯,记该点为P1点并记录该点下机器人各关节旋转角度值,接触滑动台标定杯,记该点为P2点并记录该点下机器人各关节旋转角度值。移动滑动台及测量杆,使得测量杆标定台接触从工业机器人,用滑动台固定销固定滑动台并记录滑动距离E,从工业机器人标定针接触测量杆标定杯,记该点为R2点并记录该点下测量杆旋转角度
$ {\theta _1} $ 、长度$ {L_1} $ 和机器人关节旋转角度值,旋转测量杆一定角度,从工业机器人接触测量杆标定台,记该点为R2点并记录该点下测量杆旋转角度$ {\theta _1} $ 、长度$ {L_2} $ 和机器人关节旋转角度值,数据采集完成。2. 空间多面体异点投影标定模型
2.1 位姿变换矩阵
工业机器人标定主要是通过矩阵变换获得两个机器人之间的位置关系[9]。
用D-H方法对工业机器人进行运动学建模获得基坐标与末端点之间的关系,两台工业机器人之间的相对位置关系,相对位置关系可表示为
$$ {O_1}{ = ^{O1}}{{\boldsymbol{Q}}_{O2}}{O_2} $$ (1) 式中:
$^{O1}{{\boldsymbol{Q}}_{O2}}$ 为机器人之间位姿矩阵;$ {O_1} $ 为主工业机器人的基坐标系;$ {O_2} $ 为从工业机器人的基坐标系。位姿变换矩阵可以表示为
$$\begin{split} ^{O1}{{\boldsymbol{Q}}_{O2}} =& \left[ {\begin{array}{*{20}{c}} I&{^{O1}{P_{O2}}} \\ 0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {^{O1}{R_{O2}}}&0 \\ 0&1 \end{array}} \right] =\\& \left[ {\begin{array}{*{20}{c}} {^{O1}{R_{O2}}}&{^{O1}{P_{O2}}} \\ 0&1 \end{array}} \right] \end{split}$$ (2) 式中:
$ ^{O1}{R_{O2}} $ 为旋转向量;$ ^{O1}{P_{O2}} $ 为平移向量,旋转向量和平移向量为所求参数。2.2 构建空间多面体
根据上述标定台标定获得标定点位置及工业机器人的基坐标位置可以得到如图4所示的空间多面体。
2.3 简化末端点与基坐标关系
将工业机器人末端点相对于各自基坐标系的位姿关系由RPY角度值和位置关系表示。
利用工业机器人末端位姿中的n、o、a向量求解绕X-Y-Z轴的RPY转角
$ \alpha ,\beta ,\gamma $ ,则RPY角度值与n、o、a向量的关系为$$\begin{split}& RPY(\gamma ,\beta ,\alpha) {\text{ = }}\\ &\quad \left[ {\begin{array}{*{20}{c}} {{\rm{C}}\alpha {\rm{C}}\beta }&{{\rm{C}}\alpha {\rm{S}}\beta {\rm{S}}\gamma - {\rm{S}}\alpha {\rm{C}}\gamma }&{{\rm{C}}\alpha {\rm{S}}\beta {\rm{C}}\gamma }&0 \\ {{\rm{S}}\alpha {\rm{C}}\beta }&{{\rm{S}}\alpha {\rm{S}}\beta {\rm{S}}\gamma + {\rm{C}}\alpha {\rm{C}}\gamma }&{{\rm{C}}\alpha {\rm{S}}\beta {\rm{C}}\gamma }&0 \\ { - {\rm{S}}\beta }&{{\rm{C}}\beta {\rm{S}}\gamma }&{{\rm{C}}\beta {\rm{C}}\gamma }&0 \\ 0&0&0&1 \end{array}} \right] = \\ &\quad \left[ {\begin{array}{*{20}{c}} {{n_x}}&{{o_x}}&{{a_x}}&0 \\ {{n_y}}&{{o_y}}&{{a_y}}&0 \\ {{n_{\textit{z}} }}&{{o_{\textit{z}} }}&{{a_{\textit{z}} }}&0 \\ 0&0&0&1 \end{array}} \right] \end{split}$$ (3) 利用式(3)的3个未知数、9个求解方程,求解方程为
$$ \left\{ {\begin{array}{*{20}{l}} {\gamma = A{{\rm{tan}}} 2({o_x},{n_x})} \\ {\beta = A\tan 2( - {n_{\textit{z}} },\sqrt {n_x^2 + n_y^2} )} \\ {\alpha = A\tan 2({a_y},{a_{\textit{z}} })} \end{array}} \right. $$ (4) 2.4 空间多面体投影
依据运动学求解末端点与基坐标之间位置关系及RPY角度关系,将空间多面体分别向工业机器人1的X-Y面、X-Z面和Y-Z面投影,如图5所示。
对测量杆投影长度求解,如图6所示求解图。
因为E在P1P2的延长线上,且R1EP1P2共面,则R1向P1P2投影,投影点为S1−1,测量杆的偏转角度为
$ {\theta _1} $ ,则可得$$ {R_1}{S_{1 - 1}} = {R_1}E\times \sin {\theta _1}= L1\times\sin {\theta _1} $$ (5) $$ E{S_{1 - 1}} = L1\times\cos {\theta _1}$$ (6) 式中:L1为测量杆在R1点的长度。
P1P2所在直线与X-Y平行面的夹角可通过P1与P2点的坐标得到,可以求得S1−1向X-Y平行面投影后的D1−1点到E的距离
$$ {\psi _{X - Y}} = A\tan 2({P_{1Z}} - {P_{2Z}},\sqrt {{{({P_{1X}} - {P_{2X}})}^2} + {{({P_1}_Y - {P_{2Y}})}^2}} ) $$ (7) $$ {D_{1 - 1}}E = {S_{1 - 1}}E\cos ({\psi _{X - Y}}) $$ (8) 因为R1S1−1垂直与点P1、P2、D1−1所在平面,且R1−1D1−1与R1S1−1平行共面则R1−1S1−1垂直与D1−1E且与R1S1−1相等。则可求得
$$ {R}_{1-1}E=\sqrt{{({R}_{1-1}{D}_{1-1})}^{2}+({D}_{1-1}E{)}^{2}}={R}_{1-1}{e}_{1-1} $$ (9) $$ {\theta _{1 - 1}} = A{{\rm{tan}}} 2({R_{1 - 1}}{D_{1 - 1}},{D_{1 - 1}}E) $$ (10) 根据式(9)与(10)求得测量杆在R1点的长度与角度,同理可求的在R2点的长度与角度。
2.5 投影面线长角度计算
在图7中O1−1与O2−1为2 台工业机器人的坐标原点,则Pr1−1是工业机器人1在点P1点下RPY角度中的
$ \gamma $ 角度,Pr2−1、Rr1−1、Rr2−1分别是工业机器人在RPY角度中的$ \gamma $ 角,则利用相关三角几何关系可以求得O1与O2在X-Y面的位置与旋转参数。则相关线长度与角度计算为
$$ \left| {{O_{1 - 1}}{P_{1 - 1}}} \right| = \sqrt {P_{{x1 - 1}}^2 + P_{y1 - 1}^2} , \left| {{O_{1 - 1}}{P_{2 - 1}}} \right| = \sqrt {P{_{x2 - 1}}^2 + P_{y2 - 1}^2} $$ $$ \left| {{O_{2 - 1}}{R_{1 - 1}}} \right| = \sqrt {R_{{x1 - 1}}^2 + R_{y1 - 1}^2} , \left| {{O_{2 - 1}}{R_{2 - 1}}} \right| = \sqrt {R{_{x1 - 1}}^2 + R_{y1 - 1}^2} $$ $$ \begin{gathered} \left| {{P_{1 - 1}}{P_{2 - 1}}} \right| = \Big( {{{\left| {{O_{1 - 1}}{P_{1 - 1}}} \right|}^2} + {{\left| {{O_{1 - 1}}{P_{2 - 1}}} \right|}^2} - } \\ { {2 \times \left| {{O_{1 - 1}}{P_{1 - 1}}} \right| \times \left| {{O_{1 - 1}}{P_{2 - 1}}} \right| \times \cos \left( {\left| {{P_{r1 - 1}} - {P_{r2 - 1}}} \right|} \right)} \Big)^{\textstyle\frac{1}{2}}} \end{gathered} \quad\quad\quad$$ $$\begin{gathered} \left| {{R_{1 - 1}}{R_{2 - 1}}} \right| = \Big( {{{\left| {{O_{2 - 1}}{R_{1 - 1}}} \right|}^2} + {{\left| {{O_{2 - 1}}{R_{2 - 1}}} \right|}^2} - } \\ { {2 \times \left| {{O_{2 - 1}}{R_{1 - 1}}} \right| \times \left| {{O_{2 - 1}}{R_{2 - 1}}} \right| \times \cos \left( {\left| {{R_{r1 - }}_1 - {R_{r2 - 1}}} \right|} \right)} \Big)^{\textstyle\frac{1}{2}}} \end{gathered} \quad\quad\quad$$ $$\begin{gathered} \angle C1 = a\cos \Big[ {\left( {{{\left| {{O_{1 - 1}}{P_{1 - 1}}} \right|}^2} + {{\left| {{P_{1 - 1}}{P_{2 - 1}}} \right|}^2} - {{\left| {{O_{1 - 1}}{P_{2 - 1}}} \right|}^2}} \right)/} \\ {\left( {2 \times \left| {{O_{1 - 1}}{P_{1 - 1}}} \right| \times \left| {{P_{1 - 1}}{P_{2 - 1}}} \right|} \right)} \Big] \end{gathered} \quad$$ $$\begin{gathered} \angle C3 = a\cos \Big[ {\left( {{{\left| {{O_{2 - 1}}{R_{1 - 1}}} \right|}^2} + {{\left| {{R_{1 - 1}}{R_{2 - 1}}} \right|}^2} - {{\left| {{O_{2 - 1}}{R_{2 - 1}}} \right|}^2}} \right)/} \\ {\left( {2 \times \left| {{O_{2 - 1}}{R_{1 - 1}}} \right| \times \left| {{R_{1 - 1}}{R_{2 - 1}}} \right|} \right)} \Big] \end{gathered}$$ $$ \angle C2 = {180^ \circ } - (C1 + {{P} _{r1 - 1}}) $$ $$ \angle C4 = {180^ \circ } - (C3 + {R_{r1 - 1}}) $$ $$ \angle C7 = {180^ \circ } - (C3 + \left| {{R_{r1 - 1}} - {R_{r2 - 1}}} \right|) $$ $$ \begin{split}& \angle C5 = a\cos \left[ \left( {{{\left| {{R_{1 - 1}}{e_{1 - 1}}} \right|}^2} + {{\left| {{R_{1 - 1}}{R_{2 - 1}}} \right|}^2} - {{\left| {{R_{2 - 1}}{e_{1 - 1}}} \right|}^2}} \right)\right./\\& \left.{\left( {2 \times \left| {{R_{1 - 1}}{e_{1 - 1}}} \right| \times \left| {{R_{1 - 1}}{R_{2 - 1}}} \right|} \right)} \right] \end{split} $$ $$ {\gamma _Z} = C2 + C4 + {\theta _{1 - 1}} - C5 $$ $$ \begin{split}& \angle C6 = a\cos \left[ \left( {{{\left| {{R_{1 - 1}}{R_{2 - 1}}} \right|}^2} + {{\left| {{R_{2 - 1}}{e_{1 - 1}}} \right|}^2} - {{\left| {{R_{1 - 1}}{e_{1 - 1}}} \right|}^2}} \right)\right./\\&\left.{\left( {2 \times \left| {{R_{1 - 1}}{R_{2 - 1}}} \right| \times \left\| {{R_{2 - 1}}{e_{1 - 1}}} \right\|} \right)} \right] \end{split} $$ $$ \begin{split}& \left| {{O_{2 - 1}}{e_{1 - 1}}} \right| = \\& \sqrt {{{\left| {{O_{2 - 1}}{R_{2 - 1}}} \right|}^2} + {{\left| {{R_{2 - 1}}{e_{1 - 1}}} \right|}^2} - 2 \times \left| {{O_{2 - 1}}{R_{2 - 1}}} \right| \times \left| {{R_{2 - 1}}{e_{1 - 1}}} \right| \times \cos (C7 + C6)} \end{split}$$ $$ \begin{split}& \angle C8 = {\text{a}}\cos \left[ \left( {{{\left| {{O_{2 - 1}}{e_{1 - 1}}} \right|}^2} + {{\left| {{R_{2 - 1}}{e_{1 - 1}}} \right|}^2} - {{\left| {{O_{2 - 1}}{R_{2 - 1}}} \right|}^2}} \right)\right./\\&\left.{\left( {2 \times \left| {{O_{2 - 1}}{e_{1 - 1}}} \right| \times \left| {{R_{2 - 1}}{e_{1 - 1}}} \right|} \right)} \right] \end{split} $$ $$ C13 = {180^ \circ } - C12 = C1 + (\left| {{{P} _{r1 - 1}} - {{P} _{r2 - 1}}} \right|) $$ $$ \begin{split}& \left| {{O_{1 - 1}}{e_{1 - 1}}} \right| =\\& \sqrt {{{\left| {{P_{2 - 1}}{e_{1 - 1}}} \right|}^2} + {{\left| {{O_{1 - 1}}{P_{1 - 1}}} \right|}^2} - 2 \times \left| {{P_{2 - 1}}{e_{1 - 1}}} \right| \times \left| {{O_{1 - 1}}{P_{1 - 1}}} \right| \times \cos (C13)} \end{split} $$ $$ \begin{split} \angle C10 = &a\cos \left[ \left( {{{\left| {{P_{2 - 1}}{e_{1 - 1}}} \right|}^2} + {{\left| {{O_{1 - 1}}{e_{1 - 1}}} \right|}^2} - {{\left| {{O_{1 - 1}}{P_{2 - 1}}} \right|}^2}} \right)\right./\\&\left.{\left( {2 \times \left| {{P_{2 - 1}}{e_{1 - 1}}} \right| \times \left| {{O_{1 - 1}}{e_{1 - 1}}} \right|} \right)} \right] \end{split} $$ $$ \angle {e_{r1 - 1}} = \frac{{\left| {{{P} _{r2 - 1}}} \right|}}{{{{P} _{r2 - 1}}}} \times \left( {{{180}^ \circ } - (C13 + C10)} \right) + {{P} _{r2 - 1}} $$ $$ \angle C9 = C10 + {\theta _{2 - 1}} - C8 $$ $$ \begin{split}& \left| {{O_{1 - 1}}{O_{2 - 1}}} \right| =\\& \sqrt {{{\left| {{O_{2 - 1}}{e_{1 - 1}}} \right|}^2} + {{\left| {{O_{1 - 1}}{e_{1 - 1}}} \right|}^2} - 2 \times \left| {{O_{2 - 1}}{e_{1 - 1}}} \right| \times \left| {{O_{1 - 1}}{e_{1 - 1}}} \right| \times \cos (C9)} \end{split} $$ $$ \begin{split} \angle C11 =& a\cos \left[ \left( {{{\left| {{O_{1 - 1}}{O_{2 - 1}}} \right|}^2} + {{\left| {{O_{1 - 1}}{e_{1 - 1}}} \right|}^2} - {{\left| {{O_{2 - 1}}{e_{1 - 1}}} \right|}^2}} \right)\right./\\&\left.{\left( {2 \times \left| {{O_{1 - 1}}{O_{2 - 1}}} \right| \times \left| {{O_{1 - 1}}{e_{1 - 1}}} \right|} \right)} \right] \end{split} $$ $$ {p_{x1}} = \left| {{O_{1 - 1}}{O_{2 - 1}}} \right| \times \cos \left(\left( {\frac{{\left| {{{P} _{r2 - 1}}} \right|}}{{{{P} _{r2 - 1}}}}} \right)\left( {\left| {{e_{r1 - 1}}} \right| - C11} \right)\right) $$ $$ {p_{y1}} = \left| {{O_{1 - 1}}{O_{2 - 1}}} \right| \times \sin \left(\left( {\frac{{\left| {{{P} _{r2 - 1}}} \right|}}{{{{P} _{r2 - 1}}}}} \right)\left( {\left| {{e_{r1 - 1}}} \right| - C11} \right)\right) $$ 则在X-Y投影面上,根据
${\gamma _{\textit{z}} }$ 、$ {P_{x1}} $ 、$ {P_{y1}} $ 可以获得工业机器人2基坐标系相对工业机器人1基坐标系的旋转量与在X方向与Y方向的偏移量。同理可以获得在Y-Z面与X-Z面投影下的旋转量与偏移量,利用参数与求解参数见表1所示。
表 1 各投影面利用及求解参数投影平面 利用求解参数 求解参数 角度参数 位置参数 位置偏移参数1 位置偏移参数2 偏移角度 X-Y面 $ {\text{γ }} $ $ {p_x} $ $ {p_y} $ $ {p_{x1}} $ $ {p_{y1}} $ $ {\gamma _{\textit{z}} } $ X-Z面 $ \beta $ $ {p_x} $ $ {p_{\textit{z}} } $ $ {p_{x2}} $ $ {p_{\textit{z}1}} $ $ {\beta _y} $ Y-Z面 $ \alpha $ $ {p_y} $ $ {p_{\textit{z}} } $ $ {p_{y2}} $ $ {p_{\textit{z}2}} $ $ {\alpha _x} $ 将表中的位置偏移参数和偏移角度代入式(2),得到工业机器人1与工业机器人2的基坐标偏移矩阵计算公式。
$$\begin{split} &{ }^{O1} {\boldsymbol{T}}_{O2}={{\rm{Trans}}}\left(P_{x}, P_{y}, P_{\textit{z}}\right) {{\rm{Rot}}}\left(Z, \gamma_{\textit{z}}\right) {{\rm{Rot}}}\left(Y, \beta_{y}\right) {{\rm{Rot}}}\left(X, \alpha_{x}\right)=\\ &\left[\begin{array}{cccc} 1 & 0 & 0 & \dfrac{P_{x 1}+P_{x 2}}{2} \\ 0 & 1 & 0 & \dfrac{P_{y 1}+P_{y 2}}{2} \\ 0 & 0 & 1 & \dfrac{P_{\textit{z} 1}+P_{\textit{z} 2}}{2} \\ 0 & 0 & 0 & 1 \end{array}\right]\left[\begin{array}{cccc} \cos \gamma_{\textit{z}} & -\sin \gamma_{\textit{z}} & 0 & 0 \\ \sin \gamma_{\textit{z}} & \cos \gamma_{\textit{z}} & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right]\\ &\left[\begin{array}{cccc} \cos \beta_{y} & 0 & \sin \beta_{y} & 0 \\ 0 & 1 & 0 & 0 \\ -\sin \beta_{y} & 0 & \cos \beta_{y} & 0 \\ 0 & 0 & 0 & 1 \end{array}\right]\left[\begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & \cos \alpha_{x} & -\sin \alpha_{x} & 0 \\ 0 & \sin \alpha_{x} & \cos \alpha_{x} & 0 \\ 0 & 0 & 0 & 1 \end{array}\right] \end{split}$$ (11) 3. 标定误差分析
空间多面体异点投影标定方法,根据在工业中的应用条件,可以归纳误差主要来源于:
(1)工业机器人自身存在的机械制造误差
在模型计算过程中需要用到工业机器人D-H参数所采用的理论上的数值进行计算,但是工业机器人在生产与制造的过程中会产生误差,从而给模型带来一定的误差。
(2)工业机器人转动角度误差
工业机器人各轴转动都是由电机实现,因此模型计算使用的各轴转动角度是有电机编码器给出,其精度也会对模型的计算产生影响。
(3)标定台造成的误差
标定台使用激光测距仪、角度传感器、位移传感器用于测量测量杆移动距离、偏转角度与长度,这些仪器的使用存在一定精度,测量的移动距离、偏转角度与测量杆的长度将会有一定的误差,从而造成模型计算产生误差。
(4)示教误差
在标定过程中,工业机器人需要示教到标定台上的指定位置,但是人工示教会造成误差。
由于现在的工业机器人的制造水平的提高,工业机器人本体的误差可以忽略不计,且编码器误差也很小,使用高精度的测距仪、角度传感器和位移传感器将有效降低标定台带来的误差,上述误差可以忽略不计,因此实际标定过程中的误差主要来源于示教误差。
为实现高精度标定,将工业机器人末端增加标定针,标定台测量杆两端安装锥形底标定杯,标定针插入标定杯的低端,可以看作点接触,从而实现示教误差降低。
4. 空间多面体异点投影标定仿真实验
4.1 误差模拟
仿真实验将利用MATLAB来搭建实验平台,并通过加入高斯白噪声来模拟实际标定过程中产生的误差,通过在原始数据加入高斯白噪声模拟实际关节角度的误差,肉眼可辨识的误差最短距离以0.1~0.2 mm,因此分别以0.1、0.5为振幅的加入高斯白噪声模拟实际误差以验证模型的准确性。加入高斯白噪声的方法为
$$ u = t + \lambda \times {10^{{{ - }}3}} \times t \times (rand(1,1) - 0.5) $$ (12) 结合加入高斯白噪生的方法进行仿真实验。
4.2 仿真实验
仿真实验在MATLAB robotics中进行,双机器人采用实验室中的6R机器人和SCARA机器人。如图8和图9所示。
在MATLAB robotics建立双工业机器人模型,假定相对基坐标系是在同一世界坐标系下,建立双工业机器人的坐标偏移,假设机器人R2基坐标偏移为X方向为4,Y方向为−1,Z方向移动1。并绕Z轴旋转了90°,作为实验1,建立模型如图10所示。
假设机器人R2基坐标偏移为X方向为5,Y方向为−2,Z方向移动1。并绕Z轴旋转了90°,作为实验2,以验证模型的可靠性。
则相对位姿转换矩阵分别为
$$ ^{O1}{{\boldsymbol{T}}_{O2}} = \left[ {\begin{array}{*{20}{c}} 0&{ - 1}&0&4 \\ 1&0&0&{ - 1} \\ 0&0&1&1 \\ 0&0&0&1 \end{array}} \right] \text{,} ^{O1}{{\boldsymbol{T}}_{O2}} = \left[ {\begin{array}{*{20}{c}} 0&{ - 1}&0&6 \\ 1&0&0&{ - 4} \\ 0&0&1&1 \\ 0&0&0&1 \end{array}} \right] $$ 工业机器人1在标定点P1与标定点P2下的关节角度值为:
实验1
$$ \begin{gathered} {\theta _{P1}} = \left[ {\begin{array}{*{20}{c}} {0.6283}&{ - 1.5708}&0&0&{1.5708}&0 \end{array}} \right] \\ {\theta _{P2}} = \left[ {\begin{array}{*{20}{c}} { - 0.6283}&{ - 1.570}&0&0&{1.5708}&0 \end{array}} \right] \\ \end{gathered} $$ 实验2
$$ \begin{gathered} {\theta _{P1}} = \left[ {\begin{array}{*{20}{c}} {1.0472}&{ - 1.5708}&0&0&{1.5708}&0 \end{array}} \right] \\ {\theta _{P2}} = \left[ {\begin{array}{*{20}{c}} {{{ - 1}}{\text{.0472}}}&{ - 1.5708}&0&0&{1.5708}&0 \end{array}} \right] \\ \end{gathered} $$ 工业机器人2在标定点R1与R2下的关节角度值为:
实验1
$$ \begin{gathered} {\theta _{R1}} = \left[ {\begin{array}{*{20}{c}} { - 0.4488}&0&0&0 \end{array}} \right] \\ {\theta _{R2}} = \left[ {\begin{array}{*{20}{c}} {0.4488}&0&0&0 \end{array}} \right] \\ \end{gathered} $$ 实验2
$$ \begin{gathered} {\theta _{R1}} = \left[ {\begin{array}{*{20}{c}} { - 0.6283}&0&0&0 \end{array}} \right] \\ {\theta _{R2}} = \left[ {\begin{array}{*{20}{c}} {0.6283}&0&0&0 \end{array}} \right] \\ \end{gathered} $$ 实验1测量杆移动距离为−3.882 2 m,测量杆旋转角度为:
${\theta _1} = 0.682 6 \; {\rm{rad}},{\theta _2} = 0.789 7\; {\rm{rad}}$ ,测量杆的长度为L1=4.000 0 m,L2=4.408 4 m。实验2测量杆移动距离为−5.909 3 m,测量杆旋转角度为:
${\theta _1} = 1.130 5,{\theta _2} = 1.177 2$ ,测量杆的长度为L1=5.000 0 m,L2=5.555 5 m。各关节角度值加入高斯白噪声后的各关节角度值如表2所示。
表 2 实验1和2加入高斯白噪声角度值实验 振幅 标定点位置 关节1/rad 关节2/rad 关节3/rad 关节4/rad 关机5/rad 关节6/rad 实验1 0.1 标定点P1 0.628 3 −1.570 8 0 0 1.570 9 0 标定点P2 −0.628 3 −1.570 7 0 0 1.570 8 0 标定点R1 −0.448 8 0 0 0 − − 标定点R2 0.448 8 0 0 0 − − 0.5 标定点P1 0.628 3 −1.571 1 0 0 1.571 1 0 标定点P2 −0.628 4 1.571 0 0 0 1.570 5 0 标定点R1 −0.448 8 0 0 0 − − 标定点R2 0.448 8 0 0 0 − − 实验2 0.1 标定点P1 1.047 2 −1.570 8 0 0 1.570 7 0 标定点P2 −1.047 2 −1.570 9 0 0 1.570 8 0 标定点R1 −0.628 3 0 0 0 − − 标定点R2 0.628 4 0 0 0 − − 0.5 标定点P1 1.047 0 −1.570 6 0 0 1.571 1 0 标定点P2 −1.047 2 −1.750 9 0 0 1.571 2 0 标定点R1 −0.618 3 0 0 0 − − 标定点R2 0.628 4 0 0 0 − − 将关节角度代入运动学方程与RPY角度变换方程,得到的结果如表3所示。
表 3 PRY角度参数与位置参数实验 振幅 位置点 RPY角度参数/rad 位置参数/m $ \alpha $ $ \beta $ $ \gamma $ Px Py Pz 实验1 0.1 P1 −3.141 5 0.000 1 0.628 3 1.173 1 0.852 3 1.300 0 P2 3.141 5 0.000 1 −0.628 3 1.173 1 −0.852 3 1.300 0 R1 0 0 0.448 8 0.630 7 −0.303 7 0.300 0 R2 0 0 −0.448 8 0.630 6 0.303 7 0.300 0 0.5 P1 −3.141 6 0.000 1 0.628 3 1.172 8 0.852 0 1.300 2 P2 −3.141 3 −0.000 5 −0.628 4 1.173 0 −0.852 4 1.300 2 R1 0 0 0.448 8 0.630 7 −0.303 7 0.300 0 R2 0 0 −0.448 8 0.630 7 0.303 7 0.300 0 实验2 0.1 P1 3.141 6 −0.000 1 1.047 2 0.725 0 1.255 8 1.300 0 P2 −3.141 5 −0.000 1 −1.047 2 0.725 0 −1.255 7 1.300 1 R1 0 0 0.628 3 0.566 3 −0.411 5 0.300 0 R2 0 0 −0.628 4 0.566 3 0.411 5 0.300 0 0.5 P1 −3.141 1 0.000 5 1.047 0 0.725 3 1.255 8 1.300 0 P2 3.141 3 0.000 3 −1.047 2 0.724 9 −1.255 5 1.300 1 R1 0 0 0.628 3 0.566 3 −0.411 5 0.300 0 R2 0 0 −0.628 4 0.566 3 0.411 5 0.300 0 根据上述数据处理及测得数据运用空间多面体异点投影标定模型能够计算得到。
根据空间多面体投影标定模型,投影到X-Y面、X-Z面、Y-Z面得到的参数如表4所示。
表 4 各投影面参数实验 振幅 X-Y面 X-Z面 Y-Z面 $ {\gamma _{\textit{z}} } $/rad $ {P_{x1}} $/m $ {P_{y1}} $/m $ {\beta _y} $/rad $ {P_{x2}} $/m $ {P_{{\textit{z}} 1}} $/m $ {\alpha _x} $/rad $ {P_{y2}} $/m $ {P_{{\textit{z}} 2}} $/m 实验1 0.1 1.570 8 4.000 0 −1.000 0 0.000 1 4.000 0 1.000 0 0.000 0 −1.000 1 1.000 2 0.5 1.570 7 3.999 9 −0.999 7 0.000 1 4.000 0 1.000 2 0.000 1 −1.000 0 1.000 1 实验2 0.1 1.570 7 5.999 9 −4.000 1 0.000 0 6.000 0 1.000 1 0.000 1 −4.000 0 1.000 0 0.5 1.570 9 5.999 6 −3.999 8 0.000 3 5.999 7 1.000 1 0.000 2 −4.000 2 1.000 2 在振幅0.1与0.5的高斯白噪声误差下实验1 的坐标转换矩阵分别为
$$ ^{O1}{\boldsymbol{T}}_{_{O2}}^1 = \left[ {\begin{array}{*{20}{c}} { - 0.0000}&{ - 1.0000}&0&{4.0000} \\ {1.0000}&{ - 0.0000}&0&{ - 1.0001} \\ 0&0&1&{1.0001} \\ 0&0&0&1 \end{array}} \right] $$ $$ ^{O1}{\boldsymbol{T}}_{_{O2}}^2 = \left[ {\begin{array}{*{20}{c}} { - 0.0001}&{ - 1.0000}&{0.0001}&{4.0000} \\ {1.0000}&{ - 0.0001}&{0.0000}&{ - 0.9999} \\ {0.0001}&{0.0001}&1&{1.0002} \\ 0&0&0&1 \end{array}} \right] $$ 在振幅0.1与0.5的高斯白噪声误差下实验2的坐标转换矩阵分别为
$$ ^{O1}{{\boldsymbol{T}}_{O2}} = \left[ {\begin{array}{*{20}{c}} {0.0001}&{ - 1.0000}&{0.0001}&{6.0000} \\ {1.0000}&{0.0001}&0&{ - 4.0001} \\ 0&{0.0001}&1&{1.0001} \\ 0&0&0&1 \end{array}} \right] $$ $$ ^{O1}{{\boldsymbol{T}}_{O2}} = \left[ {\begin{array}{*{20}{c}} { - 0.0004}&{ - 1.0000}&{0.0002}&{5.9997} \\ {1.0000}&{ - 0.0004}&{0.0003}&{ - 4.0000} \\ { - 0.0003}&{0.0002}&1&{1.0002} \\ 0&0&0&1 \end{array}} \right] $$ 4.3 结果验证
针对实验所的结果与实际结果分别进行差值计算以验证实验结果的精确性与可靠性。
$$ {e_{{\rm{rot}}}} = \left| {\sqrt {{{\left( {{\gamma _{\textit{z}}} - \gamma _{\textit{z}}^s} \right)}^2} + {{\left( {{\beta _y} - \beta _{_y}^s} \right)}^2} + {{\left( {{\alpha _x} - \alpha _{_x}^s} \right)}^2}} } \right| $$ $$ {e_{{\rm{tran}}}} = \left| {\sqrt {{{\left( {{P_x} - P_x^s} \right)}^2} + {{\left( {{P_y} - P_y^s} \right)}^2} + {{\left( {{P_{\textit{z}}} - P_{\textit{z}}^s} \right)}^2}} } \right| $$ 则实验1和2在振幅0.1与0.5的误差如表5所示。
表 5 误差值实验 振幅 erot/rad etran/m 实验1 0.1 0.00010 0.00014 0.5 0.00017 0.00022 实验2 0.1 0.00014 0.00014 0.5 0.00054 0.00036 可以看出角度误差在0~0.0004 rad和最大误差值在0.05~0.1 mm与现有的“手眼标定”、“三点定圆”标定的误差在0.01 rad和0.5 mm左右相比具有较高的标定精度,且能够满足实际工作要求。
因此所建立的空间多面体异点投影标定模型满足工业机器人在非接触远距离下的基坐标标定,仿真实验验证模型在不同类型工业机器人之间的标定,表明空间多面体投影标定方法能够有效解决不同类型工业机器人基坐标标定问题。实验结果也表明模型具有可行性和准确性。
5. 结语
本文提出的空间多面体异点投影基坐标标定方法,能够高精度实现不同类型远距离情况的工业机器人基坐标标定。通过使用创新设计的标定台获取主从工业机器人的两个标定点的位置及关节旋转角度,同时获得滑动台的移动距离与测量杆标定从工业机器人时的长度,利用测得数据在空间建立空间多面体并将多面体向工业机器人的X-Y面,X-Z面,Y-Z面分别投影,根据工业机器人运动学模型、RPY角度值及三角变换获得位姿变换矩阵。在MATLAB中进行仿真实验,并采用高斯白噪声模拟实际使用过程中产生的误差。实验结果表明设计的标定模型具有能够有效满足精度要求,且设计的标定台结构合理能够满足实际使用要求。
-
表 1 各投影面利用及求解参数
投影平面 利用求解参数 求解参数 角度参数 位置参数 位置偏移参数1 位置偏移参数2 偏移角度 X-Y面 $ {\text{γ }} $ $ {p_x} $ $ {p_y} $ $ {p_{x1}} $ $ {p_{y1}} $ $ {\gamma _{\textit{z}} } $ X-Z面 $ \beta $ $ {p_x} $ $ {p_{\textit{z}} } $ $ {p_{x2}} $ $ {p_{\textit{z}1}} $ $ {\beta _y} $ Y-Z面 $ \alpha $ $ {p_y} $ $ {p_{\textit{z}} } $ $ {p_{y2}} $ $ {p_{\textit{z}2}} $ $ {\alpha _x} $ 表 2 实验1和2加入高斯白噪声角度值
实验 振幅 标定点位置 关节1/rad 关节2/rad 关节3/rad 关节4/rad 关机5/rad 关节6/rad 实验1 0.1 标定点P1 0.628 3 −1.570 8 0 0 1.570 9 0 标定点P2 −0.628 3 −1.570 7 0 0 1.570 8 0 标定点R1 −0.448 8 0 0 0 − − 标定点R2 0.448 8 0 0 0 − − 0.5 标定点P1 0.628 3 −1.571 1 0 0 1.571 1 0 标定点P2 −0.628 4 1.571 0 0 0 1.570 5 0 标定点R1 −0.448 8 0 0 0 − − 标定点R2 0.448 8 0 0 0 − − 实验2 0.1 标定点P1 1.047 2 −1.570 8 0 0 1.570 7 0 标定点P2 −1.047 2 −1.570 9 0 0 1.570 8 0 标定点R1 −0.628 3 0 0 0 − − 标定点R2 0.628 4 0 0 0 − − 0.5 标定点P1 1.047 0 −1.570 6 0 0 1.571 1 0 标定点P2 −1.047 2 −1.750 9 0 0 1.571 2 0 标定点R1 −0.618 3 0 0 0 − − 标定点R2 0.628 4 0 0 0 − − 表 3 PRY角度参数与位置参数
实验 振幅 位置点 RPY角度参数/rad 位置参数/m $ \alpha $ $ \beta $ $ \gamma $ Px Py Pz 实验1 0.1 P1 −3.141 5 0.000 1 0.628 3 1.173 1 0.852 3 1.300 0 P2 3.141 5 0.000 1 −0.628 3 1.173 1 −0.852 3 1.300 0 R1 0 0 0.448 8 0.630 7 −0.303 7 0.300 0 R2 0 0 −0.448 8 0.630 6 0.303 7 0.300 0 0.5 P1 −3.141 6 0.000 1 0.628 3 1.172 8 0.852 0 1.300 2 P2 −3.141 3 −0.000 5 −0.628 4 1.173 0 −0.852 4 1.300 2 R1 0 0 0.448 8 0.630 7 −0.303 7 0.300 0 R2 0 0 −0.448 8 0.630 7 0.303 7 0.300 0 实验2 0.1 P1 3.141 6 −0.000 1 1.047 2 0.725 0 1.255 8 1.300 0 P2 −3.141 5 −0.000 1 −1.047 2 0.725 0 −1.255 7 1.300 1 R1 0 0 0.628 3 0.566 3 −0.411 5 0.300 0 R2 0 0 −0.628 4 0.566 3 0.411 5 0.300 0 0.5 P1 −3.141 1 0.000 5 1.047 0 0.725 3 1.255 8 1.300 0 P2 3.141 3 0.000 3 −1.047 2 0.724 9 −1.255 5 1.300 1 R1 0 0 0.628 3 0.566 3 −0.411 5 0.300 0 R2 0 0 −0.628 4 0.566 3 0.411 5 0.300 0 表 4 各投影面参数
实验 振幅 X-Y面 X-Z面 Y-Z面 $ {\gamma _{\textit{z}} } $/rad $ {P_{x1}} $/m $ {P_{y1}} $/m $ {\beta _y} $/rad $ {P_{x2}} $/m $ {P_{{\textit{z}} 1}} $/m $ {\alpha _x} $/rad $ {P_{y2}} $/m $ {P_{{\textit{z}} 2}} $/m 实验1 0.1 1.570 8 4.000 0 −1.000 0 0.000 1 4.000 0 1.000 0 0.000 0 −1.000 1 1.000 2 0.5 1.570 7 3.999 9 −0.999 7 0.000 1 4.000 0 1.000 2 0.000 1 −1.000 0 1.000 1 实验2 0.1 1.570 7 5.999 9 −4.000 1 0.000 0 6.000 0 1.000 1 0.000 1 −4.000 0 1.000 0 0.5 1.570 9 5.999 6 −3.999 8 0.000 3 5.999 7 1.000 1 0.000 2 −4.000 2 1.000 2 表 5 误差值
实验 振幅 erot/rad etran/m 实验1 0.1 0.00010 0.00014 0.5 0.00017 0.00022 实验2 0.1 0.00014 0.00014 0.5 0.00054 0.00036 -
[1] 徐意. 工业机器人协同运动控制技术的研究与实现[D]. 武汉: 华中科技大学, 2019. [2] 纪慧君, 苗鸿宾, 李孟虔, 等. 双机器人基坐标系标定方法的研究[J]. 制造技术与机床, 2021(11): 72-76. DOI: 10.19287/j.cnki.1005-2402.2021.11.014 [3] 吴潮华. 多工业机器人基座标系标定及协同作业研究与实现[D]. 杭州: 浙江大学, 2015. [4] 燕浩, 程小虎, 杨正蒙, 等. 基于手眼关系与基坐标关系的协作焊接机器人标定[J]. 机械工程与自动化, 2020(4): 27-30. [5] Luo R C, Hao W. Automated tool coordinate calibration system of an industrial robot[C]. 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018: 5592-5597.
[6] 任瑜, 郭志敏, 张丰, 等. 基于非线性优化的机器人坐标系标定方法[J]. 传感器与微系统, 2020, 39(1): 6-8. DOI: 10.13873/J.1000-9787(2020)01-0006-03 [7] Wu L, Ren H L. Finding the kinematic base frame of a robot by hand-eye calibration using 3d position data[J]. IEEE Transactions on Automation Science and Engineering, 2017: 314-324.
[8] Ni J, Shi H, Wang M. Disturbance observer-based cooperative learning tracking control for multi-manipulators[C]. 2020 7th International Conference on Information, Cybernetics, and Computational Social Systems(ICCSS), 2020: 229-234.
[9] 侯仰强, 王天琪, 李天旭, 等. 焊接机器人系统标定技术研究现状[J]. 焊接, 2017(12): 17-22,69-70. -
期刊类型引用(2)
1. 曹俊,任吉慧,邓绯. 基于仿生优化神经网络的6DOF工业机械手标定. 机床与液压. 2024(15): 69-74 . 百度学术
2. 杨欢,鞠录岩,孙若文,张维琨,张耀武,郭龙龙. 基于解析法的空间角向孔镗削工艺尺寸转换研究. 制造技术与机床. 2024(09): 155-160 . 本站查看
其他类型引用(1)