精华内容
下载资源
问答
  • 6自由度机器人参数辨识,涉及到机器人动力学建模,线性化,激励轨迹优化等
  • 有没有大神用matlab程序,用遗传算法实现六轴机器人参数辨识</p>
  • 机器人运动学模型,研究了机 器人本体和所抓取未知 目标卫星的参数辨识 问题 ,如本体和 未知 目标的质心、质量以及惯量张量等参数。首先基于空间算子代数理论建立空间机器人 运动学符号模型;然后基于线动量及...
  • 机器人惯性参数辨识

    2021-03-26 14:41:21
    而为了建立机器人的动力学模型,其惯性参数又是必须知道的,因此人们开始研究如何通过机器人本身的测量装置所能获得的数据来辨识机器人惯性参数。 自从20 世纪 80 年代中期人们认识到机器人的动力学特性是其惯性参数...

    在这里插入图片描述

    尽管一个机器人的惯性参数是一个确定的常量,但由于机器人部件的复杂性及装配误差,使得有些惯性参数甚至对机器人制造者来说也是未知的。而为了建立机器人的动力学模型,其惯性参数又是必须知道的,因此人们开始研究如何通过机器人本身的测量装置所能获得的数据来辨识机器人惯性参数。

    自从20 世纪 80 年代中期人们认识到机器人的动力学特性是其惯性参数的线性函数后,就把机器人惯性参数的辨识问题转化为解线性方程组的问题:
    τ=W(q,q˙,q¨)θ\tau = W(q, \dot{q}, \ddot{q}) · \theta
    当已知τqq˙q¨\tau 、q、\dot{q}、 \ddot{q} 后,,因 W 是一与惯性参数 θ\theta 无关的已知函数(关节角度、关节角速度和关节角加速度的函数),因此辨识的问题就化为解上述线性方程组的问题。

    若能从上式中解出θ\theta ,则就辨识出机器人的惯性参数。但不容易:W中有些列恒为零,有些列间存在常值线性关系(总是不满秩的)。

    1 最小惯性参数集

    即参数的独立性处理(采用最小惯性集原理将非线性的动力学方程简化为线性的动力学方程。)

    对于一根杆件,共需如下十个经典参数描述它的质量分布情况:

    1. 惯性张量矩阵,如下所示,共有六个参数
      在这里插入图片描述
    2. 质量M
    3. 三维质心(X,Y,Z),一般我们会把质量乘上质心,组成一个最终的三个惯性参数(MX,MY,MZ),这么做的原因在于动力学中的重力矩一般包含质量乘质心这一项。

    综上所述,一根杆件的动力学特性会涉及到这十个变量,但由于运动副限制,并不是这十个参数都对动力学特性有影响,下面举两个例子说明。
    在这里插入图片描述
    我们可以推论到,系统辨识并不能获得杆件的所有惯性参数,只能获取最小惯性参数集里的参数,因为它们与动力学特性有关。

    1.1 用机器人几何参数直接确定其最小惯性参数

    nmin=7nR1+3nR2+nR3{{n}_{min}} = 7{{n}_{R1}}+3{{n}_{R2}}+{{n}_{R3}}

    霍伟、Khalil等人给出了用MDH 参数确定机器人一组最小惯性参数的递推公式,由于本文的研究对象为六自由度工业机器人,且六个轴均为旋转轴,情形有以下几三点:

    情形1:关节0~关节i-1 中存在其轴向不与关节i 轴向平行的转动关节;
    情形2:关节0~关节i-1 中不存在其轴向不与关节i 轴向平行的转动关节,但存在其轴向不与关节i 轴向重合的转动关节或其轴向不与关节i 轴向平行的移动关节;
    情形3:关节0~关节i-1 中不存在其轴向不与关节i 轴向重合的转动关节和其轴向不与关节i 轴向平行的移动关节。

    一、若关节 i 属于情形1,则i 的最小惯性参数为XXi=XXiYYi,XYi,XZi,YZiZZi,MXi,MYi{XXi}^{*}={XX}_{i}-{YY}_{i},{XY}_{i},{XZ}_{i},{YZ}_{i},{ZZ}_{i},{MX}_{i},{MY}_{i}i-1 的惯性参数重组关系为
    在这里插入图片描述
    二、若关节i 属于情形2,则杆i 的最小惯性参数为ZZi,MXi,MYi;杆i-1 的惯性参数重组关系为
    在这里插入图片描述
    三、若关节i 属于情情形3,则杆i 的最小惯性参数为ZZi,杆i-1 的惯性参数重组关系为
    在这里插入图片描述

    1.2 QR分解获取最小参数(略)

    1.3 处理结果

    在这里插入图片描述

    2 激励轨迹设计及优化

    参数的可辨识性与所选择的关节运动密切相关,关节运动轨迹选取不当会造成某些参数不可辨识。同时,参数的辨识精度与关节运动轨迹也有很大关系。目前,工业机器人动力学参数辨识大都采用傅立叶级数型的轨迹
    在这里插入图片描述
    激励轨迹直接影响 W 矩阵的病态性;举例来说,下图的两个矩阵只有一个元素差1,然而计算出来的结果却天差地别
    在这里插入图片描述
    这本质上是由于左侧矩阵的条件数很大
    在这里插入图片描述
    设计激励轨迹的目的,是为了降低矩阵Yr的条件数。关于这部分大家可参考这篇很好的文章:Jan Swevers et al. Optimal Robot Excitation and Identification, IEEE Trans. on Robotics.


    而后通过实验的方式采集关节角度、角速度,将其拟合成傅里叶级数的形式后,再对其求微分得到关节角加速度。经过一系列预处理后得到 W(观测矩阵)

    3 动力学参数辨识

    很多算法都可用于动力学参数辨识,如最大似然估计,最小二乘法,卡尔曼滤波,神经网络,遗传算法等,此处采用最小二乘法作为例,该方法被国内外学者广泛应用于动力学参数辨识,且取得了理想的精度,另外,相对于其他算法,该方法构造起来十分方便,参数设置无需任何经验(神经网络、遗传算法),也无需将动力学转换为状态方程的形式(卡尔曼滤波)。采用最小二乘方法求解,解得一般形式为:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 对空间机器人模型进行了符号推导建模, 分析并解决了利用该方法进行惯量参数辨识过 程中的线性方程组奇异性问题, 研究了机器人的各类参数对辨识研究的影响, 并通过数值 仿真验证 了参数辨识方法的可行性和有效性...
  • 针对基于最小二乘法的参数辨识精度不高的问题,提出了一种基于鲸鱼优化算法的矿用机器人驱动系统参数辨识方法。通过建立矿用机器人驱动系统模型确定待辨识参数,将待辨识参数看作鲸鱼群个体位置,通过适应度函数来...
  • 一、机器人动力学参数辨识 1.1 辨识目的 (1)解决机器人非线性效应,提高运动控制性能; (2)在普常用机器人PID控制中作为前馈控制降低系统误差; 1.2 主要分类 相比较而言,离线辨识中最小二乘法使用最...

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

    一、辨识目的

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

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

    二、主要分类

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

    三、 动力学模型

     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个参数:

    X_{s} = col \left \{ \begin{matrix} m_{i} & I_{ixx} & I_{ixy} & I_{ixz} & I_{iyy} & I_{iyz} & I_{izz} & m_i p_{ix} & m_i p_{iy} & m_{i}p_{iz} & f_{iv} & f_{ic} & I_{im} \end{matrix} \right \}

    其中,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 辨识总流程

    4.5 机器人硬件

     

     

     

     

    展开全文
  • 关于机器人参数观测及辨识控制,其中包括了基于神经网络的自适应状态观测器的设计及应用等范例。
  • 机器人学】机器人动力学参数辨识方法综述

    千次阅读 多人点赞 2019-04-01 12:32:26
    机械臂动力学参数辨识的方法综述

    本文翻译于《An overview of dynamic parameter identification of robots》(网上可以找到电子版),我译了大部分内容,因为对在线识别不是特别了解,所以将其省略,感兴趣的同学可以下载来祥读。

    这篇论文是一篇介绍机器人动力学参数辨识的综述论文,我觉得可以作为入门文章来看,其中涉及了动力学参数辨识的流程,介绍了常用的辨识方法,还有提供了一些辨识的案例。

    一、引言
    描述动力学模型的动力学参数对于基于模型的高级控制算法、仿真结果的验证和精确的路径规划算法非常重要。特别是在机器人技术中,基于模型的控制对于提高系统的精度和可靠性至关重要。 然而,机器人的动态模型包含许多参数的不确定性,并且许多控制方法对它们的值比较敏感。 在高速运动中,对参数不确定性的敏感性尤其严重。通常,标准的辨识程序包括建模,实验设计,数据采集,信号处理,参数估计和模型验证。辨识过程的最后一步是模型验证,用户需验证模型是否满足精度规范。如果获得的模型未通过验证测试,则需要重复该过程的一个或几个步骤,并需重新考虑一些选择。

    二、动力学参数的辨识方法
    动力学模型的准确性取决于几何参数和动力学参数。 通过运动学标定可以获得高精度几何参数,动力学参数应该通过辨识方法估计。很多不同的方法可以用来确定动力学参数值,这些可以归类为在线识别和离线识别方法。在离线辨识程序中,可以在分析之前收集所有输入—输出数据,并且不对计算时间施加任何限制。相反,在机器操作期间,在线辨识程序还需处理待辨识参数的实时更新。

    2.1 离线辨识方法

    (1)物理实验方法:把机械臂的每个连杆拆卸下来,通过实验可以获得一些惯性参数。 例如,可以直接测量质量,可以通过确定连杆的平衡点来获得质心的坐标,并且可以通过摆动运动获得惯性张量的对角线元素。

    在物理实验中,需要特殊的测量装置,忽略了关节的特性。 辨识精度取决于测量装置的准确性。此外,物理实验非常繁琐,并且在组装机器人之前应由制造商实现。

    (2)CAD获取参数:这些方法通过使用其几何和材料特征来找到连杆的动力学参数。 所有机器人CAD / CAM软件包都提供了从三维模型计算惯性参数的工具。 很容易获得独立的参数值。 在机器人的设计阶段,可以基于估计的动力学参数来研究机器人的动态性能和基于模型的控制性能,这些分析反过来也可以改进设计。 但是,CAD系统中连杆模型的精度决定了估计参数的准确性。 由于连杆的制造误差,CAD模型与实际零件并不同,估计参数值的准确性也会受到影响。 此外,制造商不提供摩擦参数的估计,并且不能从CAD图中预测。

    (3)辨识技术:该方法基于对机器人在某些规划的运动中的“输入/输出”行为和分析以及通过最小化实际变量的函数与其数学模型之间的差异来估计参数值。 该方法已被广泛使用,并且易于实验和获得高精确度的值,被认为是最好的方法。 使用这种方法,Guegan等人确定了Orthoglide并联运动机器的43个基本动力学参数。 Vivas等人确定了H4并联机器人的基本动力学参数,这是动力学模型所必需的,并指出加速度计和旋转传感器的使用不是很必要。 与上述两种方法相比,识别方法可以获得良好的识别精度,且测量相对容易。 该方法比物理实验和CAD技术提供更好的结果。

    2.2 在线辨识方法
    在线识别是一个经典且已广泛研究的问题:从在线测量数据中找出系统数学模型中的参数值,使得预测的动态响应与实际系统的响应一致。

    (1)自适应控制;
    (2)基于神经网络的在线方法;

    虽然机器人动力学参数的值可以通过离线和在线方法获得,但它们都涉及到近似和误差。 这意味着动态参数含有不确定性。 在这些参数中,应该以良好的精度估计惯性矩阵的静态矩和对角项,其他项不是那么重要,可以以较低的精度估计。

    三、模型和辨识算法
    3.1 辨识模型
    机器人动力学参数的识别基于逆动力学模型的使用,该逆动力学模型相对于动态参数是线性的。并非所有惯性参数都对动力学模型有影响,而其他惯性参数似乎对线性组合有影响。机器人的动力学参数可分为三组:完全可辨识,仅可线性组合辨识和不可辨识,人们不可能从连杆运动和关节扭矩或力的数据估计所有连杆动力学参数值,因为要唯一地确定机械臂的动力学模型,连杆动力学参数是冗余的。非冗余和可辨识的动力学参数可以被称为最小动力学参数集,其值可以唯一地确定动态模型。这样的一组动力学参数被称为基本参数集或最小参数集,其足以描述机械系统的动态行为以及减少的观察矩阵。

    确定基础动力学参数后,应采用牛顿 - 欧拉方法,拉格朗日方程和虚功原理等不同方法推导出待识别的模型。动力学模型可以很容易地导出并且拉格朗日方程表示如下:
    M(θ)θ¨+H(θ,θ˙)+g(θ)=τM(θ)\ddot{θ }+H(θ,\dot{θ})+g(θ)=τ
    其中θθτ\tau是关节位置和力矩,M(θ)M(θ)是惯性矩阵,H(θ,θ˙)H(θ,\dot{θ})包含科式力和离心力,g(θ)g(θ)表示重力。

    动力学模型可以写为一组未知参数的线性方程组,如下:

    y(τ,θ˙)=Φθ,θ˙,θ¨py(τ,\dot{θ})=Φ(θ,\dot{θ},\ddot{θ})p

    其中pp是动力学参数。

    3.2 辨识算法
    当机器人正在跟踪激发系统动态的轨迹时,机器人的输入/输出信号会被采样,以便获得超定线性系统。 然后利用加权最小二乘估计法,卡尔曼滤波法和最大似然估计法等数值优化方法求解基本参数。参数估计算法的选择是实现精度与复杂度之间的折衷。

    在估计算法中,加权最小二乘估计方法是机械手辨识的常用方法。基于使用与参数相关的线性逆模型,它允许估计基本惯性参数,从而提供关节力矩和关节位置的测量或估计。加权最小二乘法是一种非迭代方法,它使用奇异值分解可仅使用一个步骤就可以估计参数,在假设测量误差可忽略不计的情况下可优化模型的均方根残差。然而,加权最小二乘法的参数估计的一个问题是对测量噪声比较敏感。噪声将限制最小二乘法获得的参数的准确性,并将限制递归最小二乘算法的收敛速度。为了克服这个问题,可以生成所谓的激励轨迹和/或使用数据滤波。研究人员通过使用这种“输入数据改进”,已经利用最小二乘法获得了许多良好的参数估计。

    将激励轨迹上足够数量的点应用于辨识模型(2)上,获得关于p的超定线性方程组:

    y(τ,θ˙)=Φθ,θ˙,θ¨p+ρy(τ,\dot{θ})=Φ(θ,\dot{θ},\ddot{θ})p+ρ

    其中ψψ是观察矩阵,ρρ是残差向量。

    估计值p^\hat{p}可通过如下得到:
    p^=minpρ2\hat{p}=\underset{p}{min}\left \| \rho \right \|^2
    即:
    p^=ΦTΦ1ΦTτ\hat{p}=(Φ^TΦ)^{-1}Φ^Tτ

    另一种在自动控制领域中更常见的方法是卡尔曼滤波算法。 基于与状态和参数呈非线性的直接动态模型,可以对其扩展使其考虑包含物理参数。 Gautier和Poignet使用加权最小二乘估计和扩展卡尔曼滤波方法对两自由度机器人进行了实验比较。 比较表明,两种方法的参数估计都非常接近,但扩展卡尔曼滤波算法对初始条件非常敏感,收敛速度较慢。 因此,具有逆动力学模型的加权最小二乘法似乎优于用于离线识别的扩展卡尔曼滤波方法。

    此外,Swevers提出了一种新的方法来设计最优机器人激励轨迹,并制定了动态模型参数的最大似然估计。 但所使用的模型通常包含无法通过随机变量解释的显着确定性结构误差。 奥尔森指出,只有在测量位置和扭矩都有噪声的情况下才应考虑使用最大似然法。 在实际情况中,它们被认为是加性噪声,导致加权最小二乘估计。 此外,Calafiore和Indri使用线性矩阵不等式来解释由于建模误差或测量噪声导致的观测矩阵的不确定性。

    四、优化轨迹
    为了提高最小二乘估计的收敛速度和噪声免疫性,必须仔细选择识别中使用的轨迹。 这种轨迹被称为持续激动的轨迹。 为了获得激励轨迹,通常使用两种方案:(1)计算满足一些优化标准的轨迹(??)**和(2)使用连续的特殊测试运动组,其中每个运动将激发一些动态参数。

    4.1 激励轨迹的优化
    在设计系统的辨识实验时,有必要考虑激励的充分性。结果表明,参数识别实验的收敛速度和噪声抗扰度直接取决于持续激励矩阵的条件数,这个矩阵是利用逆动力学模型计算的。 需要强调的是,进行测量的位形必须对应于良好条件的减少的观察矩阵,这是因为条件数表示输入/输出误差传递率的上限。 在文献中,还使用其他标准来定义激励条件。

    提出顺序识别以使用一组不同的轨迹,其中每个轨迹激发一些参数。例如,我们可以移动一些关节,同时锁定其他关节。该技术简化了辨识方程。然而,某些估计参数的值在随后的辨识中是已知的,这可能发生误差的累积。在串联机器人中,可以锁定一些关节以估计某些连杆的动态参数。然而,这种方法不适用于并联机器人,因为由于结构限制,不能实现单个关节的运动。 Vandanjon提出通过产生四种不同的轨迹来激发四种不同的物理现象来避免这种缺陷,这四种不同的物理现象是:惯性效应,离心耦合,惯性耦合和重力效应。轨迹在两点之间是周期性的(重力除外)。设计实验以确保观察矩阵的最佳条件数。然后将这些轨迹组合在全局识别方程组中。

    基于以上讨论,可以得出如下结论:激励轨迹通常通过具有运动约束的非线性优化来获得。 运动的数学描述对于优化的成功和计算效率是至关重要的,因为轨迹参数是问题的自由度。 对于串联机器人,已经提出了几种使用不同轨迹参数化的方法。 由于遵守强大的工作空间约束,并联机器人的优化问题通常非常具有挑战性。

    五、验证和应用
    模型验证的目的是根据其预期应用获得对估计机器人模型的信心。显然,最合适的验证测试是在应用程序中使用该模型并评估其是否成功。验证方案如图1所示。估算值的验证可以使用以下方法进行:(1)执行另一个轨迹,将测量的扭矩和估计的扭矩相比较,估计的扭矩是通过模型和测量位置数据; (2)使用能量模型,然后使用动力学模型并比较获得的值;(3)通过计算误差向量直接验证识别轨迹;(4)给机器人加载,负载已知,重新识别机器人的参数。在这种情况下,一些基本参数的值将根据负载参数进行更改。根据无负载识别的基本参数计算的值加上负载效应与带负载的识别值的值相同。例如,Gautier使用两种方法来验证识别结果:(1)使用能量模型执行识别过程,然后使用动力学模型并比较获得的值和(2)给机器人加已知载荷,重新识别机器人的参数。所有这些测试显示出非常好的结果。

    在这里插入图片描述

    图1机器人动力学参数辨识和验证流程

    众所周知,精确建模和精确参数化和辨识对于提升机器人控制非常重要。因此,所识别的动力学模型应该用在机器人系统中以改善机器人的运动性能。 Honegger在线识别动态参数,然后将识别出的参数用于Hexaglide并联运动机的动态前馈控制系统。实现了良好的跟踪性能。Kakizaki对典型工业机器人的动态参数识别进行了实验研究,并通过高速轨迹控制实验证明了基于确定参数的动力学控制的有效性。 Abdellatif将确定的参数用于PaLiDA机床的前馈控制系统,控制性能得到改善。 Wu将已辨识和未辨识的动态参数添加到冗余机床的位置/力切换控制系统,并进行了相同的实验。结果表明,通过使用已辨识的动力学参数来跟踪轨迹,误差更小。这说明了辨识结果更准确。

    本文综述了串联和并联机器人动态参数识别的现有工作。 用于识别动力学参数的方法被分类为离线识别方法和在线识别方法。 本文也讨论了辨识模型和激励轨迹优化。此外,我们已经指出,可以使用几种不同的方法来验证动力学参数估计值。 由于复杂并联机构的动力学识别算法很少,因此强调了并联机器人的动态参数识别。 这篇综述的结果对机器人和研究人员的制造商很有用。

    展开全文
  • 机器人系统辨识——基于MATLAB的非线性系统辨识

    千次阅读 多人点赞 2020-03-25 17:08:29
    今天的内容关于机器人动力学模型的参数辨识,这是在做机器人控制前的关键一步! 工具和参考链接 由于机器人动力学模型往往都是非线性的,这里用到的工具是: MATLAB的System Identification Toolbox(系统辨识工具...

    Hello,欢迎做客我的博客。
    这里会介绍关于机器人的方方面面,希望对你有所帮助。
    今天的内容关于机器人动力学模型的参数辨识,这是在做机器人控制前的关键一步!

    工具和参考链接

    由于机器人动力学模型往往都是非线性的,这里用到的工具是:

    MATLAB的System Identification Toolbox(系统辨识工具箱),其中的Nonlinear Grey-Box Models(非线性灰箱建模工具),链接如下:

    System Identification Toolbox

    Nonlinear Grey-Box Models

    主要的参考示例:
    Modeling an Industrial Robot Arm

    1 机器人动力学模型

    在对模型参数进行辨识之前,首先需要对机器人进行建模,建模的方法通常是牛顿欧拉法或者拉格朗日方法。关于建模的部分,读者可以参考我之前的博客。如:
    机器人动力学建模之牛顿欧拉法推导

    此处,直接给出机器人的非线性动力学模型如下:
    x˙1=Kasinx2x˙2=Kbx32x˙3=uy1=x1y2=x2y3=x3 \begin{aligned} \dot{x}_1 &=K_a\sin{x_2}\\ \dot{x}_2 &=K_bx_3^2\\ \dot{x}_3 &=u\\ y_1 &= x_1\\ y_2 &= x_2\\ y_3 &= x_3 \end{aligned}
    其中,xx代表状态,uu代表输入,yy代表输出。
    KaK_aKbK_b为待辨识参数。

    2 辨识前的准备——采集实验数据

    在进行参数辨识前,我们需要采集输入和输出数据,即给定一组uu,然后记录系统的yy。通常,我们可以让uu是正弦信号,或者多个正弦信号的叠加,以获得更好的辨识效果。

    通常来说,我们需要通过实验去采集数据。

    在这里,我们的目的是介绍MATLAB系统辨识工具箱的用法,为了更加直观的看出系统辨识的效果,我们可以基于上述动力学模型生成一组数据,来检验MATLAB的系统辨识效果。

    数据生成程序:

    clc;
    clear all;
    close all;
    
    period = 0.01; % 注意这里是采样时间
    T = 10;
    
    % 参数设置
    Ka = 1.21;
    Kb = -0.6;
    
    x1 = 0;
    x2 = 0;
    x3 = 0;
    
    Input = [];
    Output = [];
    
    for t = 0:period:T
        % 给定输入,正弦函数
        u = sin(2*pi/10*t);
        % 系统动力学模型迭代
        x1_p = x1 + Ka*sin(x2)*period;
        x2_p = x2 + Kb*x3^2*period;
        x3_p = x3 + u*period;
        x1 = x1_p;
        x2 = x2_p;
        x3 = x3_p;
        % 输出
        y1 = x1;
        y2 = x2;
        y3 = x3;
        % 保存数据
        Input = [Input; u];
        Output = [Output; y1,y2,y3];
    end
    
    % 保存数据
    save('blogexample.mat', 'Input', 'Output');
    
    

    注意,这里我们设置了Ka=1.21K_a=1.21以及Kb=0.6K_b=-0.6。下面,我们可以看看MATLAB是否能辨识得到这组参数。

    3 系统辨识——MATLAB代码示例

    利用MATLAB进行系统辨识的步骤分为两步:

    • 定义模型文件(定义机器人动力学模型)
    • 设置辨识过程()

    3.1 模型文件

    程序如下:

    function [dx, y] = blogmodel_m(t, x, u, Ka, Kb, varargin)
    %% 函数的参数dx,y,t,x,u不可更改
    %% 函数参数Ka,Kb即为待辨识参数
      % 输出方程
      y = [x(1); x(2); x(3)];
      % 动力学模型(微分方程),dx即为x的导数
      dx = [Ka*sin(x(2)); ...
            Kb*x(3)^2; ...
            u];
    end
    

    3.2 定义辨识过程

    整个辨识过程主要用到四个函数:

    • idnlgrey:生成一个系统辨识对象(包含了系统模型,输入,状态,输出向量等等信息)
    • iddata:将数据打包为iddata格式,便于系统辨识工具箱使用
    • nlgreyest:系统辨识函数(主要函数,执行的就是优化参数的过程)
    • compare:对比真实输出和模型输出的结果

    下面是详细程序以及注释:
    程序如下:

    clc;
    clear all;
    close all;
    
    %% 配置模型
    FileName     = 'blogmodel_m';               % 模型文件.
    Order        = [3 1 3];                     % 输出、输入和状态向量的维数 [ny nu nx].
    Parameters   = [1, -1]';                    % 待辨识参数的初始值
    InitialStates = zeros(3, 1);                % 系统状态的初始值
    Ts            = 0;                          % Time-continuous system.
    % 生成一个系统辨识对象
    nlgr = idnlgrey(FileName, Order, Parameters, InitialStates, Ts, ...
                            'Name', 'Blog Example Model', ... % 定义对象的名称
                            'InputName',  {'Voltage'}', ... % 定义输入向量的名称
                            'InputUnit', {'V' }', ... % 定义输入向量的单位
                            'OutputName', {'Position' 'Velocity' 'Acceleration'}', ... % 定义输出向量的名称
                            'OutputUnit', {'m' 'm/s' 'm/s^2'}', ... % 定义输出向量的单位
                            'TimeUnit', 's'); % 定义时间的单位
    % 设置系统状态向量的名称和单位            
    nlgr = setinit(nlgr, 'Name', {'Position' 'Velocity' 'Acceleration'}');
    nlgr = setinit(nlgr, 'Unit', {'m' 'm/s' 'm/s^2'}');
    % 设置待辨识参数的名称
    nlgr = setpar(nlgr, 'Name', {'Ka : coeff 1' 'Kb : coeff2' });
    nlgr.Parameters(1).Fixed = false; % 将参数1设置为可变参数,默认即为可变参数,若设置为固定参数,则优化时,该参数不变
    nlgr.Parameters(1).Minimum = -10; % 设置参数1的下界为-10
    nlgr.Parameters(1).Maximum = 10;  % 设置参数1的上界为10
    % 打印出nlgr的信息
    present(nlgr)
    
    %% 导入数据
    dataset = load('blogexample.mat');
    z = iddata(dataset.Output, dataset.Input, 0.01, 'Name', 'Actual Data'); % 将数据打包为iddata格式,注意这里面的0.01代表了数据采样时间为0.01秒
    z.InputName = {'Voltage'}; % 定义输入向量的名称
    z.InputUnit = {'V' }; % 定义输入向量的单位
    z.OutputName = {'Position' 'Velocity' 'Acceleration'}; % 定义输出向量的名称
    z.OutputUnit = {'m' 'm/s' 'm/s^2'}; % 定义输出向量的单位
    z.Tstart = 0; % 定义起始时刻
    z.TimeUnit = 's'; % 定义时间单位
    
    present(z);
    
    %% 参数效果
    X0init = zeros(3,1);
    nlgr = setinit(nlgr, 'Value', num2cell(X0init)); % 设置状态向量的初始值
    figure(1)
    % 对比系统真实输出和模型输出(参数辨识前)
    compare(getexp(z, 1), nlgr, [], compareOptions('InitialCondition', X0init)); 
    
    %% 辨识系统参数
    nlgr = nlgreyest(nlgr, getexp(z, 1), nlgreyestOptions('Display', 'on')); % 系统辨识
    figure(2) 
    % 对比系统真实输出和模型输出(参数辨识后)
    compare(getexp(z, 1), nlgr, [], compareOptions('InitialCondition', X0init));
    
    

    4 系统辨识结果

    4.1 辨识前

    在这里插入图片描述

    4.2 辨识后

    在这里插入图片描述
    参数辨识的结果为:Ka=1.211K_a=1.211Kb=0.600K_b=-0.600。和我们生成数据时设置的Ka=1.21K_a=1.21以及Kb=0.6K_b=-0.6几乎完全相同。

    另外,从辨识结果也可以看到,参数辨识的效果相当只好。

    5 更多

    更多关于参数辨识过程的设置,比如优化算法,容许误差,可参考:
    nlgreyestOptions

    关于模型验证,参数辨识效果的展示,可参考:
    Model Validation

    关于本文的实例,大家可从下面链接中下载整理好的版本:
    MATLAB参数辨识的小例子

    展开全文
  • 该文档是由自己本人总结出来的,用于建立机器人最小惯性参数,涉及工业机器人、串联机器人、手术机器人、外骨骼等应用。
  • 分析了机器人操作臂末端连杆惯性参数辨识的原理及数学模型,提出了一种与传统神经网络问题不同的惯性参数辨识方法,使神经网络的结构与权值具有明确的物理意义,解决了获取样本难的问题。探讨了人工神经网络在系统...
  • 6自由度串联机器人D-H模型参数辨识及标定
  • 正转速度和对应的驱动力矩,以及反转速度和对应的驱动力矩,分别构成静态参数辨识的两组数据。位移、速度、加速度和驱动力矩构成动态参数辨识数据。在Matlab中编写粒子群算法辨识程序,对以上数据进行处理,最终得到...
  • 解决负载变化导致的机器人控制性能降低的问题,分析负载动力学参数对各关节力矩的影响的基础上,提出一宗驱动机器人关节运行激励轨迹的辨识方法。
  • 机器人系统中的在线环境参数辨识,丁宇堃,宋荆洲,为研究机器人系统中环境动力学模型的在线参数辨识技术,构造多种实验环境,使用交叉验证分析了不同建模方法的准确性和适用条件。
  • 在采用拉格朗日方法确定了3关节单杠体操机器人动力学模型结构的情况下,动力学参数的精确辨识对机 器人实时控制的实现显得十分重要.为实现对体操机器人多个动力学参数的精确辨识,在传统的遗传算法中,通过引入混合编码...
  • matlab参数辨识代码
  • 机器人理论 的vgdfg 不但覅金融爬过
  • 根据机器人系统中环境的本质特征,本文提出了环境动力学既有刚体运动...由此建立了新的环境动力学模型,给出了该动力学模型参数辨识的遗传算法模型。理论分析和实验研究表明该模型及其参数辨识方法是实用的、可行的。
  • 工业机器人的实时非线性参数识别。 代码包括用于单批次优化的度量和算法。 该贡献已提交给IROS2021。该代码具有三个入口点: MASTER_identification 根据记录的运动开始识别参数。 MASTER_create_symbolic_robot ...
  • 机器人末端负载辨识

    千次阅读 2019-02-06 17:31:51
    来源 | 知乎 作者 | 桂凯   ▌1.... 之前的文章中由提到如何进行机械臂整体的动力学参数辨识,它需要机械臂所有轴都运动起来,为此需要留给机械臂较大的自由...点我查看:机器人动力学参数辨识 ▌2.负载辨识的方法...
  • 国内机器人公司的数量自2015年来不断涌现,国产机器人的...该课程帮助学员快速搭建“机器人动力学——参数辨识——轨迹规划——运动控制”的完整框架,认识到动力学在机械臂性能提升上的重要作用,并将动力学运用到...
  • 机器人开发机
  • 参数辨识】六关节机械臂动力学参数辨识(上)

    千次阅读 热门讨论 2020-08-25 15:45:20
    六关节机械臂动力学参数辨识 导语:两周的动力学参数辨识,使我学到很多,但遇到的问题更多,在网上有很多六关节动力学参数辨识的资料,但大家都是理论推导六关节,仿真时却是对二三关节来进行辨识,感觉有点...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,475
精华内容 590
关键字:

机器人参数辨识