前言
上一章我们计算了机器人的绝对定位精度和重复定位精度。
【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】
我们在空间中走5个点,循环30次,激光测量仪一共采集150个数据,其中激光测量仪数据的计算公式如下图所示:
其中是指定机器人需要到达的点位,而机器人需要通过运动学逆解,计算6个关节的角度,然后通过伺服控制使得电机旋转到指定的位置。
这里我们认为激光测量仪测量到的数据为机器人实际到达的位置,而为机器人理论到达的位置,在实际过程中,会产生误差使得机器人的理论位置与实际位置不相同。因此引出了机器人的精度问题。
随之而来的产生了另一个问题:标定后的DH参数如何用于机器人的运动学逆解?如果你看过我前面的博文:
【机器人学】2-1.六自由度机器人运动学逆解【附MATLAB机器人逆解代码】_6自由度机器人逆向运动学求解公式-优快云博客
你就会想到再推导一遍机器人逆运动学的公式就OK了。当然,答案是否定的,否则这篇博客也就没有了意义。
首先,6自由度机器人的DH参数为4*6=24个,这24个参数不为0的参数个数和位置不同,其逆解的表达式也是不同的。所以如果标定后的DH参数差距较大,为每个机器人用不同的逆解的表达式,显然是不太可行的。并且由辨识参数的耦合性分析可知,参数间存在等效关系,个别参数并不能表达真实的机器人DH参数。【机器人学】6-3.六自由度机器人运动学参数辨识- 机器人辨识参数耦合性分析-优快云博客
因此在实际的工业控制中,采用迭代解的形式进行机器人逆运动学求解。
逆运动学迭代解
总体思路为用标准的DH参数求逆解(即博文第2-1的内容),用辨识后的DH参数进行优化。
已知辨识前的DH参数
辨识后的DH参数
MATLAB代码
代码文件较多不适合直接放在博客,我上传到了优快云需要的自行下载。
代码包含了,机器人正解,逆解以及雅可比矩阵的知识,详见我的博客:
【机器人学】1-1.六自由度机器人运动学正解 【附MATLAB代码】【机器人学】2-1.六自由度机器人运动学逆解【附MATLAB机器人逆解代码】
【机器人学】3-1.六自由度机器人速度域-雅克比矩阵【附MATLAB代码】_
结果验证
第一列为迭代解求得的关节角度,第二列为给定的关节角度。