机器人动力学参数辨识

本文为《串联机器人高性能运动控制方法研究_陈超》一文的笔记 

一、辨识目的

(1)解决机器人非线性效应,提高运动控制性能;

(2)在普常用机器人PID控制中作为前馈控制降低系统误差;

二、主要分类

相比较而言,离线辨识中最小二乘法使用最广泛。

机器人动力学参数辨识_第1张图片

三、 动力学模型

 n连杆刚性机器人的动力学模型:

M\left ( q \right ) \ddot{q} + C(q,\dot{q}) \dot{q} + G(q) + F_{f}\left ( \dot{q} \right ) = \tau + \tau_{d}

其中,

q = \begin{bmatrix} q_1 & q_2 & \cdots & q_{n} \end{bmatrix} \in \mathbb{R}^{n} 为关节位置,\dot{q},\ddot{q} \in \mathbb{R}^{n}为关节速度和加速度;M(q) \in \mathbb{R}^{n \times n}是对称正定惯量矩阵;C(q,\dot{q})\dot{q} \in \mathbb{R}^{n}表示离心力和科氏力;G\left ( q \right ) \in \mathbb{R}^{n}表示重力;F_{f}\left ( \dot{q} \right ) \in \mathbb{R}^{n}表示摩擦力;\tau \in \mathbb{R}^{n}表示关节输出力矩;\tau_{d} \in \mathbb{R}^{n}表示其它未建模的扰动。

在辨识过程中关节转速要尽可能高。因此摩擦模型为:

F_{f}\left ( \dot{q} \right ) = f_{v} \dot{q} + f_{c} sgn(\dot{q})

其中,f_{v}表示粘滞摩擦系数;f_{c}表示库伦摩擦系数;sgn\left ( \cdot \right )表示符号函数。

不难发现,机器人动力学平衡方程其参数具有很强的耦合特性以及非线性,很难直接获得动力学参数辨识结果。

其动力学平衡方程的等效线性方程为:

\tau =Y_{s}\left ( q,\dot{q},\ddot{q} \right ) X_{s}

其中,

Y_{s}\left ( q,\dot{q},\ddot{q} \right ) \in \mathbb{R}^{n \times N_{s}}为回归矩阵,X_{s} \in \mathbb{R}^{N_{s} \times 1}为动力学基本参数集。

对于一个连杆i而言,基本参数集有以下13个参数:

其中,m_{i}表示连杆i的质量;\left ( I_{ixx}, I_{ixy}, I_{ixz}, I_{iyy}, I_{iyz}, I_{izz} \right )为连杆i在关节坐标系i原点处的惯性张量矩阵参数;\left ( p_{ix}, p_{iy}, p_{iz} \right )为连杆i的质心在关节坐标系i中的位置;f_{iv},f_{ic}为连杆i的粘滞摩擦系数和库伦摩擦系数,I_{im}表示关机i处等价的电机惯量。

由于某些动力学参数不影响机器人动力学模型,所以一般回归矩阵Y_{s}\left ( q,\dot{q},\ddot{q} \right )不满秩。提取其起作用部分,回归方程可以重写为:

\tau =Y\left ( q,\dot{q},\ddot{q} \right ) X

其中,

Y \left ( q,\dot{q},\ddot{q} \right ) \in \mathbb{R}^{n \times N_{b}}Y_{s}\left ( q,\dot{q},\ddot{q} \right )中线性无关项组成,X \in \mathbb{R}^{N_{b} \times 1}为动力学最小参数集。

四、辨识实验流程

4.1 激励信号选取

由于傅里叶级数具有周期性,机器人可以利用多次采样求平均值提高信号的信噪比,得到比较理想的数据。

预设机器人信息采集频率为f_s(25Hz),轨迹运行频率为f_f(0.1Hz),其在一个轨迹周期内可以采到M = f_s /f_{f}个参数,其M应当设置尽可能大。

有限项傅里叶级数激励轨迹为:
q_i (t) = \sum_{l=1}^{N} \left [ \frac{a_{il}}{\omega_{f} l} sin(\omega_{f} lt) - \frac{b_{il}}{\omega_{f}l}cos(\omega_{f}lt) \right ] + q_{i0}

\dot{q}_i (t) = \sum_{l=1}^{N} \left [a_{il} cos (\omega_{f} lt) + b_{il} sin (\omega_{f}lt) \right ]

\ddot{q}_i (t) =\omega_{f} \sum_{l=1}^{N} \left [-a_{il} sin (\omega_{f} lt) + b_{il} cos (\omega_{f}lt) \right ]

其中,基础频率\omega_{f}=2 \pi f_f,并且所有关节的基础频率都相同;N表示谐波的个数;a_{il}b_{il}表示幅值;q_{i0}为常数项。

4.2 激励轨迹优化

矩阵条件数(矩阵特征值最大除以特征值最小)越小,辨识结果越不容易收到测量噪声的干扰。利用条件数最小作为优化准则,求取轨迹中a_{il}b_{il}以及q_{i0}的值。

利用Matlab中的fmincon()函数。

其优化模型为:

min.cond(\psi )

\left\{\begin{matrix} \left | q_i (t) \right | \leq q_{i,max}\\ \left | \dot{q}_i (t) \right | \leq \dot{q}_{i,max}\\ \left | \ddot{q}_i (t) \right | \leq \ddot{q}_{i,max}\\ \dot{q}_{i}\left ( t_0 \right ) = \dot{q}_{i}\left ( t_f \right ) = 0\\ \ddot{q}_{i}\left ( t_0 \right ) = \ddot{q}_{i}\left ( t_f \right ) = 0 \end{matrix}\right.

其非线性约束转为:

\left | q_i(t) \right |\leq \sum _{l=1}^{N} \frac{1}{\omega_{f} l} \sqrt{a_{il}^{2} + b_{il}^{2}} + \left | q_{i0} \right | \leq q_{i,max}

\left | \dot{q}_i(t) \right |\leq \sum _{l=1}^{N} \sqrt{a_{il}^{2} + b_{il}^{2}} \leq \dot{q}_{i,max};

\left | \ddot{q}_i(t) \right |\leq \omega_{f} \sum _{l=1}^{N} \sqrt{a_{il}^{2} + b_{il}^{2}} \leq \ddot{q}_{i,max}

q_i(t_0) = q_i(t_f) = -\sum_{l=1}^{N} \frac{b_{il}}{\omega_{f}l}+q_{i0} = 0

\dot{q}_i(t_0) =\dot{ q}_i(t_f) = \sum_{l=1}^{N} a_{il} = 0

\ddot{q}_i(t_0) =\ddot{ q}_i(t_f) = \sum_{l=1}^{N} \omega_{f} l b_{il} = 0

4.3 数据预处理

目的是为了克服最小二乘法对测量噪声的敏感。

a) 对多次采样的所有传感器数据求平均;

b) 位置信号:Butterworth低通滤波器和零相位数字滤波器滤除噪声;

c) 速度信号:中心差分法;

d) 加速度信号:中心差分法;

e) 力矩信号:Matlab的smooth平滑滤波;

4.5 最小二乘参数估计

对于超定方程采用:

X^{*}= \left ( Y^{T} Y \right )^{-1} Y^{T} \tau

4.4 辨识总流程

机器人动力学参数辨识_第2张图片

4.5 机器人硬件

机器人动力学参数辨识_第3张图片

 

 

 

 

你可能感兴趣的:(原理学习,控制器)