现代机器人绝大多数是基于模型控制的(Model-based Control),有模型的地方就会有误差,因此具体有多少误差需要补偿/校准取决于你用了什么样的模型。
粗略的,可以把机器人用到的模型分为两个大类即运动学模型和动力学模型,因此误差也可按此划分:
分项简单说一下。
加工误差会导致:
机器人关节间的连杆长度不准;
配合面不精确造成某些设计为0的参数变成非零;
机械公差:受限于机床加工精度及加工成本,机械部件在设计时都会留有公差,这些公差可能会在装配导致:
关节理论轴线与实际轴线不符;
相邻连杆/结构之间的相对位置与设计发生偏差;
零点误差:大小主要取决于零点标定算法,零点不准会造成控制器用来运算的理论模型与实际机器人位置不符,计算的结果也就不准确了。【☞机器人零点标定方法】
减速器回差:主要在关节反向的时候影响绝对定位精度,而对于重复定位精度基本没有影响,并且小型机器人中普遍采用的Harmonic Drive号称zero backlash,要求不高的话可以暂不考虑。
减速比误差:指的是减速器的实际减速比与厂商标称的有微小差异,感兴趣的同学可以设计个简单装置实测一下,电机可能需要转到1000000圈这个量级。
标定误差:指的是机器人在使用过程中涉及到的相机标定(手眼标定),工具标定,工件标定等等,受限于简陋的标定装置及精简的标定过程,实际上最大的误差往往来自于这个方面。
以上的运动学误差辨识有非常多的相关研究,主要工作在工程实现以及平衡成本、精度和易用性之间的关系,不再赘述。
动力学方面,质量、质心、惯量张量属于刚体运动学的范畴,有关其参数辨识的方面研究也很充分。
摩擦力是个棘手的问题,主要用到的是静摩擦,库伦摩擦和粘滞摩擦,简单点搞就放一个线性或二阶模型,复杂一些可考虑stribeck,再复杂的就没接触过了,主要是一个漫长的tune&test过程,并且每台机器人都不一样。
静摩擦的话,只有电机端位置传感器的话无法判断其方向,需要关节端传感器,要增加成本。
要求更高的场合就不能只考虑刚体动力学了,也要考虑一些关节和连杆的柔性,主要也是采用辨识的方法,区别在于模型的复杂度如何设置。
动力学参数的误差会极大影响Feedforward、Gravity Compensation和Compliance Control的效果,如果做动力学相关工作,则需要考虑辨识及补偿以上误差。