目录

1. 重力项和摩擦力项力矩辨识的意义 1

2 重力项力矩辨识 1

2.1 重力项力矩辨识原理 1

2.2重力项力矩回归矩阵(q)的整理与分离 2

2.3重力项力矩的最小参数集矩阵的辨识 5

2.3.1 辨识运动的设计 5

2.3.2 rtsim软件上进行实验 6

2.3.3 重力矩参数集的离线最小二乘法辨识 7

3.重力项力矩辨识准确性的初步验证 8

基于辨识模型的预测力矩与实际力矩对比 9

重力项和摩擦力项力矩辨识的意义

当机械臂运行速度较低时, 重力 G(q) 和摩擦力 f (q) 在控制力矩中起主要作用, 而惯性力 M(q) 、哥氏力及向心力 C(q,)此时相较于高速运动时在控制力矩中所起作用明显降低, 因此可作模型简化处理,本文针对人机协作时机械臂中低速运动的特性, 在实现对机械臂重力及摩擦精准辨识的前提下,实时补偿重力项与摩擦力项力矩,从而实现‘零力’模式下在关节空间的拖动示教。另一方面也可以在中低速情况下,实时对比关节实际力矩(电机驱动器电流/力矩表征)与重力项与摩擦力项力矩之和,一旦力矩超出设置阈值即认为检测到碰撞。

摩擦力和重力项力矩的辨识,不仅是零力拖动示教和碰撞检测等功能实现的重要环节;对于机器人控制器设计中,也是力矩前馈部分的两个重要部分。

摩擦力的辨识部分见:

2 重力项力矩辨识

2.1 重力项力矩辨识原理

机器人重力项为仅与关节位置 q 有关的函数, 与摩擦力辨识一样, 属于动力学参数辨识的子任务. 完整的动力学参数辨识, 既需要推导复杂的符号表达形式,还需要根据某些优化指标精心设计激励轨迹. 因此与完整的机器人动力学参数相比, 重力及摩擦力的辨识在形式和过程上已简单许多. 关节位置 q 相关的机器人重力项可表述为如下线性形式:

式(2)解释了重力项参数辨识的理论表达形式,然而对于物理实验而言, 即使将机器人运行在拟静止状态下, 机械臂关节处的摩擦仍对机器人动力学产生不可忽视的影响.在机器人关节处安装力矩传感器可获取静止状态下的力矩即为重力作用, 大部分机器人不会在关节处安装昂贵的力传感器, 此方法存在局限性. 因此一项至关重要的难点是如何从高度耦合、成分复杂的机器人力矩中提取出重力辨识所需要的重力作用力矩, 否则式(2)的意义仅停留在理论上.为解决重力项力矩提取的问题, 根据机器人动力学特性,考虑以下两组机器人运动状态:

式(5)中的力矩表达式无其他力矩作用影响而仅包含重力作用分量. 为满足提取出关节力矩中的重力作用分量可将机械臂以极小速度值匀速正反通过某一关节位置, 则根据式(5)可计算出对应关节构形下的重力作用分量. 类似地, 采集出 N 组实验数据, 则最终可根据式(2)辨识出重力项参数矩阵。

2.2重力项力矩回归矩阵(q)的整理与分离

图1 机械臂连杆坐标系图(标准DH参数)

下面以关节2和重力项力矩辨识为例(因为2轴3轴处重力项力矩明显远大于关节4,5处,关节6处重力矩接近为0,关节1处重力项力矩等于0),以符号推导说明主要过程,设计的主要理论有DH参数模型与齐次变换矩阵,以及力对轴的矩,力矩在不同坐标系的转换,这里具体利用拉格朗日符号推导(详见北航霍伟教授所著《机器人动力学与控制》中第二章相关内容),直接给出结果:

拉格朗日动力学模型中的重力项力矩m-function
重力项力矩解析表达式部分截图(太长,省略大部分)

由重力项力矩解析表达式进行线性分离得:

2.3重力项力矩的最小参数集矩阵的辨识

2.3.1 辨识运动的设计

设计原则:要辨识哪一个关节轴线的重力矩,需要让此关节在起止角度范围内,以极低速度来回匀速运动一个来回,其它关节运动范围尽可能大一点,由于是快速动力学参数辨识,这里就不对关节轨迹作类似于完整动力学参数辨识的激励轨迹优化了。

辨识关节3的部分视频见下:

2.3.2 rtsim软件上进行实验

辨识关节2重力矩时,simulink模型 ‘grav_tau_identify_axis2.slx编译后,在rtsim_plus软件中建立半实物仿真项目,驱动机械臂执行设计的运动,监测并导出关节2的力矩数据以及关节2,3,4,5的角度数据。

图8 关节2重力项力矩辨识实验后的关节力矩
图9 关节2重力项力矩辨识实验后的关节角度

2.3.3 重力矩参数集的离线最小二乘法辨识

当记录下实验数据后,可以在Rtsim Plus软件中以txt,mat,csv,excel等格式导出,关节力矩数据混合了几项成分,可以根据公式(4),基于公式(5)原理提取到重力矩,再基于公式(2),得到基于广义伪逆矩阵的重力矩最小参数集的最小范数解。

下图为关节2的辨识结果以及误差比对图(图中的figure4)

关节2重力项力矩辨识后处理截图
关节3重力项力矩辨识后处理截图(误差略大于关节2的辨识误差)

3.重力项力矩辨识准确性的初步验证

为了验证前述得到的重力项力矩计算结果的准确性问题,规划一个任务轨迹,比如图13所示路径。在没有机械臂厂家提供动力学参数的前提下,基于规划路径中低速运动情况下,可以计算计及关节重力项和摩擦力项力矩的关节预测力矩,如图14模型截图中的‘predict_tau’go to模块或者‘gra_fri_c’增益输出,与实际的基于电机电流的力矩进行对比,结果如图17-19。

图13a 验证重力项力矩误差的末端工具三维路径
图13b 规划路径对应的关节角度输出
图14 关节预测力矩的计算
图15 辨识数据计算重力项力矩函数
图16(a) 关节摩擦力项力矩的计算
图16(b) 关节摩擦力模型的函数

基于辨识模型的预测力矩与实际力矩对比

各轴基于摩擦力和重力项力矩模型辨识后,计算的预测力矩由图17-20中的黄色曲线显示,基于电机电流的实际力矩由红色曲线显示。

图17 任务路径上关节1实际力矩和预测力矩曲线
图18 任务路径上关节2实际力矩和预测力矩曲线
图19 任务路径上关节3实际力矩和预测力矩曲线

结果分析:预测力矩与实际力矩拟合情况还比较吻合,为零力模式下的关节空间拖动示教,以及位置模式下基于力矩突变(认为发生碰撞)的碰撞检测,奠定了基础。

基于matlab/simulink的机械臂半实物仿真平台,也能快速进行完整的动力学参数辨识。