五分钟学会工业机器人DH参数标定

前段时间承担了一个特种工业机器人的控制系统开发工作,按照结构工程师给的图纸运动学建模然后做位置控制,却怎么调整控制参数效果都不好,位置偏差大。

 

折腾了一段时间后和结构工程师一合计,才发现结构工程师给错了图纸,吓得我们团队马上用激光测距仪对比了理论末端位置和实际位置,果然还是不靠谱,于是搜索了一下资料学习如何对DH参数进行标定。

理论上讲,按照图纸得到的DH参数计算机器人末端位置,理论值和实际测量值应该是一致的。实际结果有偏差,说明图纸的尺寸不正确,也可能是制造精度不够,或者是装配有偏差。运动学模型是DH参数的函数,如果能把偏差都反映到DH参数上,那么可以改善运动学模型的精度。

用数学语言来描述这个参数修正的过程,已知三维空间中机器人末端的位置偏差[dx,dy,dz] ,通过分析,发现位置偏差和DH偏差 [\Delta a,\Delta \alpha,\Delta d,\Delta \theta] 之间的关系满足:

[dx,dy,dz]^T=M[\Delta a,\Delta \alpha,\Delta d,\Delta \theta]^T

大量实验,多测几次数据,最后通过最小二乘法求得DH偏差,标定工作就算完成了。

那么现在问题的关键是如何求解M矩阵,求解过程可以分为两步:

1、按照运动链把末端偏差分解到每个坐标系中

2、建立位姿旋转矩阵与DH偏差之间的关系

用激光测距仪(其他的测距方法也ok,只要仪器的精度满足你的要求)测出机器人末端相对于基座的真实位姿旋转矩阵_{0}^{n}T+d_{0}^{n}T,它由两部分组成:_{0}^{n}T ——理论位姿旋转矩阵(即根据图纸尺寸计算得到的),d_{0}^{n}T ——理论值与真实值之间的偏差

通过运动链把末端的偏差用各关节坐标系的 _{i-1}^{i}T+d_{i-1}^{i}T来表达,即:

上式定义了一个微分变换算子矩阵 \delta_{i-1}^{i}T,它满足:d_{i-1}^{i}T=_{i-1}^{i}T \cdot \delta_{i-1}^{i}T

待会再分析该微分变化算子的求解过程,先将上式展开,忽略微分中的高阶项,求得机器人位姿偏差:

上式计算光看很难搞清楚,建议取n=2手动推导一下。等式两边仅有微分变化算子\delta_{i-1}^{i}T 未知,根据之前的分析,DH偏差就隐藏在这个算子矩阵中,那么只要求解出这个矩阵,也就能通过适当变换得到公式(1),只差最后一步了。

 

对于MDH的旋转变换矩阵 _{i}^{i-1}T

_i^{i-1}T= \left[ \begin{matrix} c\theta_i &&-s\theta_i &&0&&a_{i-1}\\s\theta_ic\alpha_{i-1} && c\theta_ic\alpha_{i-1} && -s\alpha_{i-1}&& -s\alpha_{i-1}d_i\\s\theta_is\alpha_{i-1} && c\theta_is\alpha_{i-1} && c\alpha_{i-1}&& c\alpha_{i-1}d_i\\0&&0&&0&&1\end{matrix} \right]

计算_{i}^{i-1}T的全微分,

对DH参数部分的偏微分稍作处理:

计算得到:

五分钟学会工业机器人DH参数标定_第1张图片

则有:

d _{i}^{i-1}T=_{i}^{i-1}T(Q_{a-1}\Delta a_{i-1}+Q_{\alpha-1}\Delta \alpha_{i-1}+Q_d\Delta d_{i}+Q_{\theta}\Delta \theta_{i})

即旋转矩阵偏微分算子:

\delta _{i}^{i-1}T=Q_{a-1}\Delta a_{i-1}+Q_{\alpha-1}\Delta \alpha_{i-1}+Q_d\Delta d_{i}+Q_{\theta}\Delta \theta_{i}

Q_a Q_d Q_{\theta}Q_{\alpha} 带入:

五分钟学会工业机器人DH参数标定_第2张图片

有了 \delta_{i-1}^{i}T  的表达式,就可以算出d_n^0T关于 \Delta a_{i-1} \Delta\alpha_{i-1} \Delta d_{i}\Delta \theta_{i}的关系了

 

将DH参数带入上式,取 d_n^0T 中的位移量 [dx,dy,dz] ,做相应的线性变换,既可得到公式(1)。

这里给出实测数据供大家练习:

机器人的DH参数表(未进行标定之前)如下:

五分钟学会工业机器人DH参数标定_第3张图片

末端实际测量位移及各关节编码器值为:

五分钟学会工业机器人DH参数标定_第4张图片

答主本身对标定没有特别的研究,只是因为项目需要粗浅地学习了下,这篇文章是个人的一点拙见,提到的方法肯定不是最优的标定方法,要更深入地学习还得去大量阅读书籍和论文。以下是我觉得不错的知乎上的资料,大家也可以去看看。

机器人运动学标定的研究还有哪些没有完善? - 知乎 https://www.zhihu.com/question/401957723

关于机器人20点标定的原理? - fly qq的回答 - 知乎 https://www.zhihu.com/question/54682285/answer/336365316

参考文献:

[1]姜鹏鹏.串联机器人运动学参数标定技术的研究[D].山东:青岛科技大学,2018.

[2]郭哲.垂直六关节工业机器人运动学参数标定[D].江苏:东南大学,2018.

你可能感兴趣的:(机器人基础,机器人,标定,自动化)