机械臂动力学参数辨识学习笔记

1、为什么需要动力学参数辨识?

机械臂动力学参数辨识学习笔记_第1张图片

图1 电机三环控制图

        通常情况下,标准的工业控制器通过机械臂内部的PID进行调节控制机械臂的运动,即用PID输出力矩,涉及到经典的图一所示的电机三环控制(位置环、速度环、电流环),忽略了机器人动力学中的非线性因素。非线性因素包括离心力与科氏力、重力、摩擦力以及各关节之间的相互耦合作用。仅通过PID进行控制无法解决机器人在高速运行(如激光焊接、切割、医疗器械和空间机器人)时的控制精度问题(运动过程中机械臂惯量变化导致的位置误差),但这个问题可以通过新的控制技术进行一定的补偿,从而加快驱动器内部的误差收敛速度,改善机器人的动态响应特性。基于机械臂动力学模型的前馈补偿是最常用和使用的方法之一。

        前馈补偿需要用到机械臂的动力学模型,在不进行动力学参数辨识的情况下,仅根据设计数据得到的动力学参数是不准确的,因为机械臂结构会因加工、装配等因素影响导致部分参数不准确或未知。而使用不准确的动力学参数反而会导致控制系统的不稳定。

        国外先进的工业机器人已将基于动力学模型的力矩补偿技术融入到机器人控制器中。

2、参数辨识方法有哪些?(分为在线辨识和离线辨识)

        常用的动力学参数离线辨识方法有:CAD方法、解体测量方法、整体辨识方法等。

    CAD方法:即机械臂的材料属性、质量属性等都可以输入建模软件,进而通过软件计算出所需要的动力学参数,用户只需要打开CAD机械臂工程就能获取到动力学参数。但是这种动力学参数是理想情况下得出的,同上面说的一样,受加工、装配等因素影响,每个生产机械臂结构都不可能一样,因此参数也不会相同,所以应用CAD方法得到的动力学模型是不准确的,误差较大。

    解体测量方法:分离机械臂各个连杆,通过实验方法获得惯性参数,例如测量连杆质量、获取连杆质心以及得到惯性张量矩阵的对角元素(单摆运动)等。

    整体辨识方法(常用):对机器人整体进行试验,利用关节力矩是其惯性参数的线性化函数特性,将参数辨识问题转化为线性方程求解。整体辨识法不像解体测量方法那样仅考虑单个机械臂,而是综合了整个机械臂在运动时的影响因素,更贴近实际情况。整体辨识方法的步骤:动力学模型线性化->最小参数集->辨识方案设计->参数估计->结果验证。

1)将动力学模型转化为关节力矩与惯性参数的线性函数:

上图为动力学模型,由于动力学参数以非线性形式隐藏于上式中,因此需要进行适当的线性变换,转化为如下形式:

其中XB代表整个机器人的动力学基本参数集,而对于每一个独立连杆,有如下:

机械臂动力学参数辨识学习笔记_第2张图片

2)由于并非所有的惯性参数都对关节力矩产生影响,因此仅计算有关参数,称之为最小参数集:

某些动力学参数对机械臂关节力矩不产生影响,因此可以被进一步简化为Xmin。通常HM被称为动力学参数的回归矩阵,Xmin可通过分析和重组Hm中的动力学无关项求得,即原先的H矩阵并非满秩(存在某些列元素为0以及某些列线性相关)。本文采用Python环境下的开源工具包symPybotics求解最小参数集Xmin,和回归矩阵Hm,并通过Matlab环境下的Robotics Toolbox对上述HM和Xmin进行了验证,最终证明上式的准确性。

3)辨识方案中,需要规划一条用于参数辨识的激励轨迹(关节空间),机器人按照规划出的轨迹运动,采集所需要的关节运动信息和关节力矩:

设计激励轨迹的目标是充分激励待辨识的机械臂系统,以便更精准地获取机器人动力学模型中所有未知的参数。如果激励轨迹设计不好,机器人的某些参数就无法识别或受噪声影响大。激励轨迹的选取会直接影响最终动力学参数辨识的效果。常用激励轨迹分为两种:周期性轨迹和非周期性轨迹。非周期性轨迹常见为多项式形式,例如五次多项式;周期性主要是有限的傅里叶级数。

关节运动信息可通过关节编码器测量和进一步计算得到,关节力矩测量可分为力传感器直接测量和电机电流间接测量。其中,直接测量需要再机器人关节末端安装力传感器(如iiwa),但会大大增加辨识成本;间接测量是通过测量电机电流进一步得到驱动力矩值,计算公式如下:

其中,k为电机转矩常数;ic电机为驱动电流。

4)利用辨识算法进行参数估计。辨识算法:最小二乘辨识(含加权最小二乘法、递推最小二乘法等)、卡尔曼滤波算法辨识、最大似然估计辨识、神经网络辨识、遗传算法辨识等。

5)结果验证。选用一条验证轨迹,让机器人按照轨迹运行,同时采集运动信息和关节力矩,随后利用辨识出的参数得到的动力学模型进一步计算期望力矩,与实测力矩进行对比。采用残差均方根(RES)评估结果准确程度,其值越小误差越小,估计结果越准确。

你可能感兴趣的:(机器人,动力学,学习)