浙江大学学报(工学版), 2019, 53(3): 427-434 doi: 10.3785/j.issn.1008-973X.2019.03.003

机械工程

基于卷积力矩观测器与摩擦补偿的机器人碰撞检测

李智靖,, 叶锦华, 吴海彬,

Robot collision detection with convolution torque observer and friction compensation

LI Zhi-jing,, YE Jing-hua, WU Hai-bin,

通讯作者: 吴海彬,男,教授,博导. orcid.org/0000-0002-1577-0468. E-mail: wuhb@fzu.edu.cn

收稿日期: 2018-10-9  

Received: 2018-10-9  

作者简介 About authors

李智靖(1988—),男,博士生,从事机器人安全控制研究.orcid.org/0000-0001-7420-0572.E-mail:lizhijingwei@163.com , E-mail:lizhijingwei@163.com

摘要

针对常规工业机器人在未知环境下运行时可能产生碰撞的安全性问题,提出一种新型的机器人碰撞检测算法. 设计卷积力矩观测器,通过实时观测关节输出力矩与动力学估计力矩的偏差实现机器人碰撞检测. 为了避免机器人处于不同位姿、运动状态等情况下关节摩擦对机器人碰撞检测的干扰,采用静态LuGre模型对关节摩擦进行补偿. 通过对实际工业机器人的运动监测,辨识出更加准确的静态LuGre模型参数. 该碰撞检测算法无需加速度信息,避免了对位置反馈信息二次求导所带来的计算误差. 关节力矩基于关节伺服驱动的电流信息获取,无需安装专门的力/力矩传感器,从而在常规工业机器人无需额外配置的情况下,只需采集机器人关节驱动电机电流和位置信息即可实现碰撞检测. 通过人与机器人交互实验验证了该碰撞检测算法的有效性.

关键词: 机器人安全 ; 卷积力矩观测器 ; 摩擦补偿 ; 碰撞检测 ; 静态LuGre模型

Abstract

A new type of robot collision detection algorithm was proposed for the security problem that collision may occur when conventional industrial robots operate in an unknown environment. The convolution torque observer was designed. The robot collision detection was realized by real-time observation of the deviation between the joint output torque and the dynamic estimation torque. The static LuGre model was used to compensate the joint friction in order to avoid the interference of joint friction of the robot in different poses and motion states on robot collision detection. By monitoring the motion of actual industrial robots, more accurate static LuGre model parameters were identified. The collision detection algorithm does not need acceleration information, avoiding the calculation error caused by the secondary derivation of the position feedback information. The joint torque was acquired based on the current information of the joint servo drive. It is not necessary to install a special force/torque sensor. Therefore, in the case of conventional industrial robots without additional configuration, just collect the robot joint drive motor current and position information to achieve collision detection. The effectiveness of the collision detection algorithm is verified by human-robot interaction experiments.

Keywords: robot safety ; convolution torque observer ; friction compensation ; collision detection ; static LuGre model

PDF (1328KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

李智靖, 叶锦华, 吴海彬. 基于卷积力矩观测器与摩擦补偿的机器人碰撞检测. 浙江大学学报(工学版)[J], 2019, 53(3): 427-434 doi:10.3785/j.issn.1008-973X.2019.03.003

LI Zhi-jing, YE Jing-hua, WU Hai-bin. Robot collision detection with convolution torque observer and friction compensation. Journal of Zhejiang University(Engineering Science)[J], 2019, 53(3): 427-434 doi:10.3785/j.issn.1008-973X.2019.03.003

机器人在工业生产、服务、医疗等领域的应用不断增加,通过封闭机器人工作空间以实现人机隔离、保证人机安全的方法,已经不符合人机共融技术的新要求. 人与机器人共存环境下的碰撞检测是确保人和设备安全的基础性课题,也是当前亟待解决的问题[1].

近年来,围绕机器人安全问题已经开展了诸多研究. 比如,为工业机器人每个关节电机设置某一力矩阈值,当机器人与外部环境发生碰撞时,相应关节的实际力矩会超出此阈值,从而导致机器人报警[2]. 这种保护方法的实质是通过降低机器人有效输出效能进而减小安全风险,并不能完全达到保护工作环境中人员安全的目的[3]. 为此,Buondonno等[4]把力/力矩传感器安装于工业机器人末端,以实现机器人与外部环境的精确碰撞检测. 该方法的缺点是传感器价格相对昂贵,且只能检测传感器末端部分的碰撞. 为了实现人机共存,需要对机器人任意部位发生的碰撞进行检测. 通过设计轻型友好的机器人本体,并在每个关节上安装力矩传感器,利用各轴力矩传感器的综合信息可以实现碰撞检测[5-6]. 比如KUKA公司的LWR系列机器人和Rethink Robot公司的Sawyer与Baxter协作机器人等均属于这一类型. 基于这类机器人开展人机交互安全和协作共融技术的研究已有很多报道[7-8]. 但是目前这种机器人成本较高,负载能力及工作范围都相对较小. 市场上被广泛使用的常规工业机器人,由于没有配置专门的力矩检测传感器,碰撞检测问题至今尚未得到解决. 尽管这类机器人的各关节没有安装力矩传感器,关节的伺服驱动器一般都能提供与电机输出扭矩相关的瞬态电流信号. 另外,几乎所有工业机器人的关节都是通过编码器进行位置反馈. 常规工业机器人本身提供的这些信息,特别是关节电机电流变化信号,为实现机器人碰撞检测提供了重要基础. 例如,Li等[9]研究了基于关节电流的变化实现控制模式切换. 以提高机器人碰撞安全. Indri等[10]通过观测关节电机电流设计了一种虚拟碰撞传感器. 基于测量电流的方法实现碰撞检测,一般都是利用机器人动力学方程构建碰撞检测模型. 模型误差和计算误差的存在(如关节电机与输出连杆之间的非线性摩擦、通过编码器位置反馈信息二次求导获得加速度和动力学逆运算等)致使碰撞检测算法抗干扰能力差、检测阈值设定复杂,进而可能导致误检测. 为此,钟琮玮等[11-12]设计了基于机器人广义动量的碰撞检测算法,避免了加速度计算和动力学逆运算.

机器人关节运动通过减速机构实现,其摩擦属性比较复杂,还处在研究阶段. Kermani等[13]的研究结果表明,工业机器人的关节摩擦是其动力学模型误差的最主要来源. 因此,关节摩擦会对碰撞检测的准确性产生重要影响. 吴海彬等[12]提出的方法没有考虑关节摩擦. Chen等[14]在碰撞检测中考虑了摩擦的影响,但是只采用了简单的阻尼-库伦模型对关节摩擦进行补偿. Lee等[15-16]设计了一种直接通过观测器测量关节摩擦力的方法,但是其观测的关节摩擦力没有排除其他动力学参数偏差的干扰.

卷积不仅是一种有效的滤波方法,还可以实现系统降阶[17-18]. 为了利用常规工业机器人已有的传感信息,避免关节加速度测量或计算,本文设计一种基于卷积力矩观测器与摩擦补偿的新型碰撞检测算法. 该算法利用机器人广义动量与卷积方法设计卷积力矩观测器,通过在线观测机器人关节伺服控制器的输出力矩和动力学模型估计力矩的偏差,实现碰撞检测. 通过采集关节伺服驱动的电流信息获取等效的关节控制力矩,因此,该算法不需要额外的力/力矩传感器. 另外,考虑到机器人在运动过程中,模型偏差和重力等因素会影响不同位姿下关节摩擦力的测量,设计一种可以避免上述干扰的关节摩擦力测量方法,并进一步采用静态LuGre模型对关节摩擦力进行补偿,减小工业机器人的主要模型误差,提高算法的检测性能.

1. 机器人动力学建模

考虑 $n$ 自由度串联型机器人,采用欧拉-拉格朗日方法可得动力学方程:

${{M}}({{q}}){\ddot{ q}} + {{C}}({{q}},{\dot{ q}}){\dot{ q}} + {{G}}({{q}}) + {{{\tau }}_{\rm{F}}} = {{\tau }}.$

式中: ${{q}}$${\dot{ q}}$${\ddot{ q}}$ 分别为机器人各关节的角度、角速度和角加速度; ${{M}}({{q}})$ 为惯性矩阵,且为对称正定矩阵; ${{C}}({{q}},{\dot{ q}}){\dot{ q}}$ 项包含哥氏力和离心力; ${{G}}({{q}})$ 为重力矩; ${{{\tau }}_{\rm{F}}}$ 为摩擦力矩; ${{\tau }}$ 为关节的控制力矩. 由文献[6]可知,机器人动力学方程中矩阵 ${\dot{ M}}({{q}}) - 2{{C}}({{q}},{\dot{ q}})$ 具有反对称特性,因此可得到等效表达式:

${\dot{ M}}({{q}}) = {{C}}({{q}},{\dot{ q}}) + {{{C}}^{\rm{T}}}({{q}},{\dot{ q}}).$

由文献[17]可知,机器人动力学方程具有可线性化的性质,即存在 $n \times l$ 的函数 ${{Y}}({{q}},{\dot{ q}},{\ddot{ q}})$$l$ 维向量 ${{\theta }}$,使得机器人动力学方程可表示为

${{\tau }} = {{Y}}({{q}},{\dot{ q}},{\ddot{ q}}){{\theta }}.$

式中: ${{Y}}({{q}},{\dot{ q}},{\ddot{ q}})$ 为回归方程, ${{\theta }}$ 为参数向量.

实际应用中机器人的动力学参数一般从机器人的三维模型中获取,此时获得的机器人动力学方程:

${\hat{ M}}({{q}}){\ddot{ q}} + {\hat{ C}}({{q}},{\dot{ q}}){\dot{ q}} + {\hat{ G}}({{q}}) = {\hat{ \tau }}.$

式中: ${\hat{ M}}({{q}})$${\hat{ C}}({{q}},{\dot{ q}}){\dot{ q}}$${\hat{ G}}({{q}})$${\hat{ \tau }}$ 为对应式(1)中的模型参数值,而机器人关节摩擦 ${\tau _{\rm{F}}}$ 无法直接从模型中获得. 当机器人不受外部作用力时,由式(1)、(4)可得到机器人模型误差表达式:

$\Delta {{\tau }} = \Delta {{M}}({{q}}){\ddot{ q}} + \Delta {{C}}({{q}},{\dot{ q}}){\dot{ q}} + \Delta {{G}}({{q}}) + {{{\tau }}_{\rm{F}}}.$

式中: $\Delta {{M}}({{q}}){\ddot{ q}}$$\Delta {{C}}({{q}},{\dot{ q}}){\dot{ q}}$$\Delta {{G}}({{q}})$$\Delta {{\tau }}$ 为计算机辅助三维模型获得的动力学参数与真实值之间的偏差. 因此,机器人控制算法需要考虑模型误差的影响.

2. 卷积力矩观测器设计

常规工业机器人一般没有安装关节力矩传感器,其关节由伺服电机、传动机构和输出连杆等部分组成. 为了获得动力学方程(式(1))中的关节控制力矩,采用测量关节电机电流的方法,通过如下的关节力矩模型获得与关节力矩传感器等效的输出力矩. 机器人关节输出力矩的计算公式为

${{{\tau }}_{\rm{d}}} = {{\tau }} - {{{\tau }}_{\rm{F}}} = {N_{{\rm{har}}}}{T_{{\rm{dri}}}}{{{I}}_{\rm{m}}} - {{{\tau }}_{\rm{F}}}.$

式中: ${{{\tau }}_{\rm{d}}}$ 为连杆端的输出力矩, ${{{I}}_{\rm{m}}}$ 为电机的电流, ${T_{{\rm{dri}}}}$ 为电流转化为力矩的相关系数, ${N_{{\rm{har}}}}$ 为电机到关节输出端的传动比. 机器人关节力矩传递示意图如图1所示.

图 1

图 1   机器人关节力矩传递示意图

Fig.1   Schematic diagram of robot joint torque transfer


2.1. 动力学卷积模型

为避免因计算加速度而引入计算误差,采用卷积运算去除机器人动力学方程中的加速度信息. 机器人的广义动量定义为

${{P}} = {{M}}({{q}}){\dot{ q}},$

对广义动量求导可得

${\dot{ P}} = {\dot{ M}}({{q}}){\dot{ q}} + {{M}}({{q}}){\ddot{ q}}.$

因此,可将机器人动力学方程(式(1))改写为如下形式:

$\left. \begin{array}{l} {{\tau }} = {N_{{\rm{har}}}}{T_{{\rm{dri}}}}{{{I}}_{\rm{m}}} = {\dot{ P}} + {{Z}}, \\ {\dot{ P}} = {\rm d}{{}}({{M}}({{q}}){\dot{ q}}) /({\rm d} t), \\ {{Z}} = - {\dot{ M}}({{q}}){\dot{ q}} + {{C}}({{q}},{\dot{ q}}){\dot{ q}} + {{G}}({{q}}) + {{{\tau }}_{\rm{F}}}. \end{array} \right\}$

采用一个适当且稳定的滤波器对式(9)两边进行卷积滤波运算可得

${{{\tau }}_f} = f * ({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{{{I}}_{\rm{m}}}) = f * {\dot{ P}} + f * {{Z}}.$

式中: $f$ 为滤波器的单位脉冲响应,“*”为卷积运算符号. 由卷积运算特性[18]可推导出:

$f * {\dot{ P}} = \dot f * {{P}} + f(0) * {{P}} - f * {{P}}(0).$

式中:P(0)为机器人的初始广义动量,f (0)为滤波器的初始响应. 由式(10)和(11)可得动力学卷积方程为

${{{\tau }}_f} = \dot f * {{P}} + f(0) * {{P}} - f * {{P}}(0) + f * {{Z}}.$

将式(7)和(9)代入式(12)可得

$\!\!\!\! \begin{split} {{{\tau }}_f} =& \dot f * [{{M}}({{q}}){\dot{ q}}] + f(0){{M}}({{q}}){\dot{ q}} - \\ & f{{M}}({{q}}(0)){\dot{ q}}(0) + \\ & f * [ - {\dot{ M}}({{q}}){\dot{ q}} + {{C}}({{q}},{\dot{ q}}){\dot{ q}} + {{G}}({{q}}) + {{{\tau }}_{\rm{F}}}] . \end{split} $

${{P}}(0) = 0$,将式(2)代入式(13)可得

$\begin{split} {{{\tau }}_f} =& \dot f * [{{M}}({{q}}){\dot{ q}}] + f(0){{M}}({{q}}){\dot{ q}}{\kern 1pt} + \\& f * [ - {{{C}}^T}({{q}},{\dot{ q}}){\dot{ q}} + {{G}}({{q}}) + {{{\tau }}_{\rm{F}}}] . \end{split}\qquad\qquad $

式(14)在时域内可进一步表示为

$\begin{split} {{{\tau }}_f} =& \displaystyle\int_0^t {\dot f(t - r)} {{M}}({{q}}){\dot{ q}}{\rm d}r + f(0){{M}}({{q}}){\dot{ q}} + \\& \displaystyle\int_0^t {f(t - r)} [ - {{{C}}^{\rm T}}({{q}},{\dot{ q}}){\dot{ q}} + {{G}}({{q}}) + {{{\tau }}_{\rm{F}}}]{\rm d}r . \end{split} $

式中: $t$ 为时间变量, $r$ 为积分变量. 因此,由式(14)可以得到其等效的线性表达式:

${{{\tau }}_f} = {{{Y}}_f}({{q}},{\dot{ q}}){{\theta }}.$

式中:Yf为卷积运算后的回归方程. 对比式(16)与(3)可知,利用机器人广义动量可将动力学方程中的加速度参数项分离,然后通过卷积运算进一步滤除机器人动力方程中的关节加速度信息,避免了繁杂的加速度计算,为实现先进的机器人控制算法提供了便利.

2.2. 机器人碰撞检测

由第2.1节可知,卷积运算后获得的动力学卷积方程不需要加速度信息,常规工业机器人系统即可满足要求. 将该方法进一步扩展到机器人碰撞检测,当机器人与外部发生碰撞时关节控制力矩

${{\tau }} = {N_{{\rm{har}}}}{T_{{\rm{dri}}}}{{{I}}_{\rm{m}}} = {{{\tau }}_{\rm{d}}} + {{{\tau }}_{\rm{F}}} + {{J}}{({{q}})^{\rm{T}}}{{{F}}_{\rm{c}}}.$

式中: ${{{F}}_{\rm{c}}}$ 为外部的碰撞力, ${{J}}({{q}})$ 为雅克比矩阵, ${{{\tau }}_{\rm{c}}} = {{J}}{({{q}})^{\rm{T}}}{{{F}}_{\rm{c}}}$ 为碰撞力产生的等效力矩. 对关节控制力矩卷积运算可得

${{{\tau }}_f} = f * ({{{\tau }}_{\rm{d}}} + {{{\tau }}_{\rm{F}}} + {{{\tau }}_{\rm{c}}}) = {{{\tau }}_{{\rm{d}}f}} + {{{\tau }}_{{\rm{F}}f}} + {{{\tau }}_{{\rm{c}}f}}.$

由式(7)可得机器人广义动量的估计值:

${\hat{ P}} = {\hat{ M}}({{q}}){\dot{ q}}.$

同理,根据式(4)和(14),利用机器人三维模型可得到估计力矩的卷积滤波方程:

$\begin{split} {{{\hat{ \tau }}}_f} =& \dot f * [{\hat{ M}}({{q}}){\dot{ q}}] + f(0){\hat{ M}}({{q}}){\dot{ q}} + \\& f * [ - {{{\hat{ C}}}^{\rm{T}}}({{q}},{\dot{ q}}){\dot{ q}} + {\hat{ G}}(q)] . \end{split} $

当无外部碰撞力和关节摩擦力时,即 ${{{\tau }}_{\rm{c}}} = {\rm{0}}$${{{\tau }}_{\rm{F}}} = 0$,则 ${{{\tau }}_f} = {{{\tau }}_{{\rm{d}}f}} \approx {{\hat{ \tau }}_f}$. 因此,可将式(4)称为力矩估计器. 由式(5)可知,实际应用中一般很难获得机器人真实的动力学参数,关节也会存在较大的摩擦力,因此需要对摩擦力进行补偿,并设置合理的阈值避免误检测. 由此可推导出外部碰撞力矩的计算公式:

${{{\tau }}_{{\rm{c}}f}} = {{{\tau }}_f} - {{\hat{ \tau }}_f} = f*({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{{{I}}_{\rm{m}}} - {{{\tau }}_{\rm{F}}}) - f*{\hat{ \tau }}.$

当机器人与未知环境发生碰撞时,根据机器人雅克比矩阵的映射关系,对应关节会产生等效力矩 ${{{\tau }}_{\rm{c}}} \ne 0$,此时由式(21)可得

${\tau _{{\text{c}}f}} \! =\! {\left[\! {{\tau _{{\text{c}}f1}},{\tau _{{\text{c}}f2}}, \cdots ,{\tau _{{\text{c}}fi}},{\tau _{{\text{c}}f(i + 1)}},{\tau _{{\text{c}}f(i + 2)}}, \cdots, {\tau _{{\text{c}}fn}}}\! \right]^{\text{T}}},$

${\rm{Sign}} = \left\{ \begin{aligned} &{{{\tau _{{\rm{c}}fi}}} \bigg{/} {\left| {{\tau _{{\rm{c}}fi}}} \right|}},\;\;\;\;\left| {{\tau _{{\rm{c}}fi}}} \right| > {N_i};\\& 0,\quad\quad\quad\quad\;\left| {{\tau _{{\rm{c}}fi}}} \right| \leqslant {N_i}. \end{aligned} \right.$

式中: $i = 1,2, \cdots ,n$${N_i}$ 为关节 $i$ 的阈值,其可通过实验获取. 因此,利用式(22)从 ${\tau _{{\rm{c}}fn}}$${\tau _{{\rm{c}}f1}}$ 逐个比较 ${{{\tau }}_{{\rm{c}}f}}$ 内的元素,当 $\left| {{\tau _{{\rm{c}}fi}}} \right| > {N_i}$$\left| {{\tau _{{\rm{c}}f(i + 1)}}} \right| \leqslant {N_{i{\rm{ + }}1}}$ 时,即可判断第 $i$ 连杆发生碰撞,并可通过式(23)判断碰撞发生的方向. 由以上分析可知,通过观测卷积运算后关节的输出力矩与模型估计力矩的偏差值,即可实现机器人碰撞位置和方向判定. 因此,可将本文算法称为卷积力矩观测器,其工作原理如图2所示.

图 2

图 2   卷积力矩观测器工作原理图

Fig.2   Working principle diagram of convolution torque observer


在机器人从静止到运动的过程中,当关节电机的驱动控制力矩实时变化后,机器人的运动惯性等因素会使关节位置和速度产生滞后,可能导致误检测. 采用如下公式对观测力矩 ${ \tau _{{\rm{c}}f}}$ 进行修正:

${\kern 1pt} {\kern 1pt} {\kern 1pt} \Delta { \tau _{{\rm{c}}f}} = \alpha \cdot {\varPhi} + \beta \cdot {\varTheta} .$

式中: $\Delta {{\tau} _{{\rm c}f}}$ 为观测力矩的修正值, $\alpha $$\beta $ 为调整因子, $ \varPhi $ 为与关节电机和伺服驱动器相关参数, $ \varTheta $ 为机器人惯性相关参数. 当机器人由静止到运动时, $\alpha $$\beta $ 取值为正,其他运动状态可取值为0.

2.3. 滤波器选择

卷积力矩观测器中的滤波器是实现机器人碰撞检测的关键,选择合适的滤波器可以使算法得到优化,并减小系统噪声信号的干扰. 目前可选择的滤波器种类较多,已有研究表明选用先进的滤波器可获得较优的滤波效果,但是复杂的计算会影响算法的实时性. 为了简化计算,选用一阶低通滤波器,其传递函数在拉普拉斯域的表达式为

${f_1}(s) = f(s) = \frac{K}{{s + K}}.$

通过反拉普拉斯变换可得到时域函数表达式:

${f_1}(t) = f(t) = K{{\rm e}^{ - Kt}}.$

式中: $K$ 为滤波参数,用于滤除高频信号的干扰. 将式(26)分别代入式(14)和(20),通过拉普拉斯变换可得

$\frac{{{{ \tau} _{{f_1}}}(s)}}{{{ \tau} (s)}} = \frac{{{{\hat { \tau} }_{{f_1}}}(s)}}{{\hat { \tau} (s)}} = \frac{K}{{s + K}}.$

同理,对于式(14)和(20)中滤波器的导数,可直接由式(26)求导后通过拉普拉斯变换求得,其数学表达式和传递函数分别为

${f_2}(t) = \dot f(t) = - {K^2}{{\rm e}^{ - Kt}},$

${f_2}(s) = \dot f(s) - \frac{{{K^2}}}{{s + K}}.\quad$

3. 摩擦辨识与补偿

3.1. 关节摩擦模型

摩擦是发生在2个物体相对运动的接触面之间的一种复杂的非线性物理现象. 文献[19-20]的研究结果表明,由于摩擦力具有高度非线性的特点,已有的摩擦模型还不能完全描述产生摩擦的原理. 考虑到机器人关节一般包含电机、谐波减速器和输出连杆等部分,机器人关节摩擦用简单的黏性阻尼来表征并不合适,特别对于是机器人从静态到运动的转换过程,用线性阻尼表征摩擦往往会导致碰撞检测的误判. 为减小不当摩擦模型对关节力矩观测器的影响,采用LuGre摩擦模型对关节模型进行补偿. LuGre摩擦模型本质上把Stribeck效应、迟滞和弹簧特性等因素考虑在内,更符合机器人关节的摩擦学特征,可以提高碰撞检测算法的准确性. LuGre摩擦模型的基本表达式:

$\left. \begin{array}{l} {\tau _{\rm{F}}}(z,\dot q) = {\sigma _0}z + {\sigma _1}z{{{\rm d}z}}/{{{\rm d}t}} + {\sigma _2}\dot q , \\ {{{\rm d}z}}/{{{\rm d}t}} = \dot q - \displaystyle\frac{{{\sigma _0}}}{{g(\dot q)}}z\left| {\dot q} \right|, \\ g(\dot q) = {\alpha _0} + {\alpha _1}\,\exp\left({{ - (\dot q/{{\dot q}_{\rm{s}}})\delta }}\right). \end{array} \right\}$

式中: ${\tau _{\rm{F}}}(z,\dot q)$ 为摩擦力, $z$ 为模型的内部状态变量, ${\sigma _0}$ 为鬃毛刚度系数, ${\sigma _1}$ 为鬃毛阻尼系数, ${\sigma _2}$ 为黏性摩擦, $g(\dot q)$ 通常描述Stribeck效应, ${\alpha _0}$ 为库伦摩擦, ${\alpha _1}$ 为静态摩擦. ${\dot q_{\rm{s}}}$ 为Stribeck速度, $\delta $ 为与接触表面几何形状相关的参数,根据参考文献[19], $\delta = 0.5 \sim 2.0$. 由于LuGre模型内的 $z$ 状态量估计复杂,根据现有研究成果,为了对关节主要摩擦进行补偿,可以设定 $z $为常量. 当LuGre模型内 ${{{\rm d}z} / {{\rm d}t}} =$ 0时,可得到与速度相关的静态LuGre摩擦模型为

${\tau _{\rm{F}}}(z,\dot q) =\left\{ [{\alpha _0}z + {\alpha _1}{\rm{exp}}\,\,{{( - (\dot q/{{\dot q}_{\rm{s}}})\delta )}}]\right\}\operatorname{sgn} \,(\dot q) + {\sigma _2}\dot q.$

采用实验的方法离线辨识关节的摩擦参数,为了方便利用Matlab进行数据处理,首先将式(31)进一步简化为

${\tau _{\rm{F}}}(z,\dot q){\kern 1pt} = a + b\exp \,( - c\dot q) + d\dot q.$

式中:abcd为需要求取的参数. 为了获得真实的摩擦参数,通过实验测量机器人在不同速度下的摩擦力.

3.2. 摩擦参数辨识

已有的机器人关节摩擦力测量方法通常是直接测量关节控制力矩,然后通过重力补偿后获得,由此获得的测量值误差较大. 采用观测器获取的测量值包含了动力学参数误差,使关节正、反运动得到的摩擦力曲线不同. 本研究采用如下的实验方法减小机器人模型偏差、连杆重力和运动惯性等对关节摩擦力测量的影响. 控制机器人需要进行摩擦参数辨识的关节以恒定速度运动,同时固定其他关节,得到等效单连杆结构,实验原理如图3所示.

图 3

图 3   机器人的等效单连杆示意图

Fig.3   Schematic diagram of equivalent single link of robot


当如图3所示的单自由度机器人无外力作用时,关节加速度 $\ddot q = 0$$C(q,\dot q) = 0$,由式(1)和(6)可得

$G(q) + {\tau _{\rm{F}}} = {N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}}.$

此时等效关节输出力矩只包含连杆自身的重力矩和关节摩擦力. 控制机器人关节在运动区间 $\bar Q$ 内以恒定速度 $\dot Q$ 朝正、反2个方向运动,同时采集关节的速度和输出力矩,可得

$\sum {\left[ {G( + q) + {\tau _{\rm{F}}}( + \dot q)} \right]} = {\sum {({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}})} ^ + },$

$\sum {\left[ {G( - q) + {\tau _{\rm{F}}}( - \dot q)} \right]} = \sum {({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}}} {)^-}.$

式中: $G( + q)$$G( - q)$ 分别为关节正、反运动运动过程中的等效重力值. 运动过程中同一位置的重力 $G( + q) = G( - q)$ ,且摩擦力 ${\tau _{\rm{F}}}( + \dot q) = - {\tau _{\rm{F}}}( - \dot q)$. 将式(34)和(35)相减可得

$\sum {{\tau _{\rm{F}}}} = \sum {\frac{{\rm{1}}}{2}} \left[ {{{({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}})}^ + } - {{({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}})}^ - }} \right].$

$\varGamma $ 为关节 $i$ 的第 $j$ 组实验过程中系统采集的数据个数, ${\dot q_{ij}}$ 为正向或反向运动的速度, 可得到机器人实际的运行速度和摩擦力的平均值:

${ \bar{ \dot q}_{ij}} = \sum\; {{{\dot q}_{ij}}\Big/} \varGamma ,$

${\bar \tau _{{\rm F}ij}} = \sum {\frac{{\rm{1}}}{{2\varGamma }}} \left[ {{{({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}})}^ + } - {{({N_{{\rm{har}}}}{T_{{\rm{dri}}}}{I_{\rm{m}}})}^ - }} \right].$

因此,通过实验可以得到关节不同速度和摩擦力的数据组集合:

${{R}} = \left\{ {\left( {{{\bar {\dot q}}_{i1}},{{\bar \tau }_{{\rm{F}}i1}}} \right),\left( {{{\bar {\dot q}}_{i2}},{{\bar \tau }_{{\rm{F}}i2}}} \right), \cdots ,\left( {{{\bar {\dot q}}_{iN}},{{\bar \tau }_{{\rm{F}}iN}}} \right)} \right\}.$

式中: $N$ 为有效实验的数据组数量. 为减小测量和计算误差应尽量增大关节运动范围 $\bar Q$ 和采样速率. 在Matlab软件中运用最小二乘法法对式(32)中的参数进行离线估计. 可通过如下公式优化获取关节 $i$ 的静态LuGre摩擦参数:

$\min \Delta {\sum\nolimits_{j = 1}^N \;{\left[ {{{\bar \tau }_{{\rm{F}}ij}} - (a + b\exp\; ( - c{{\bar {\dot q}}_{ij}}) + d{{\bar {\dot q}}_{ij}})} \right]} ^2}.$

由以上实验过程可知,采用所提方法的关节摩擦力测量过程不会受到机器人位姿、重力和运动方向等因素的影响,提高了测量精度。

4. 实验结果

4.1. 机器人实验平台

为了验证本文算法的有效性,采用实验室一台六自由度工业机器人进行实验. 该机器人系统主要由计算机、控制软件、控制柜和机器人本体组成,其整体结构如图4所示. 控制柜主要包含DMC运动控制卡和电机伺服驱动器. 控制软件用于运动规划,同时将碰撞检测算法嵌入到控制软件中. 控制软件采用以太网与DMC运动控制卡通讯. 采用运动控制卡控制伺服驱动器进而控制机器人运动. 电机伺服驱动器与计算机采用串口通讯,计算机可通过串口直接对伺服驱动器进行设置,并可读取伺服驱动器的相关参数. 实验中选用机器人的第2、3连杆构成平面二自由度串联结构. 该机器人系统中具体的数据采集过程可参考文献[12].

图 4

图 4   机器人实验平台

Fig.4   Robot experiment platform


4.2. 关节摩擦参数辨识与补偿

以关节2为例,采用第3.2节的方法对其进行摩擦力参数辨识与补偿实验,控制关节2在区间[30°,120°]按不同的速度运动. 对采集的数据滤除奇异点后,获得的速度在0~20°/s内的40组有效数据和拟合结果如图5所示. 采用静态LuGre模型(式(32))拟合关节2的摩擦力,结果如下: $a $=7.046 1, $b $=3.022 4, $c $=2.267 4和 $d $=0.107 8. 同理可通过实验得到其他关节的摩擦参数.

图 5

图 5   静态LuGre模型拟合曲线

Fig.5   Fitting curve of static LuGre model


控制机器人的第2、3关节同时运动,并在机器人系统上运行提出的碰撞检测算法. 当无外部作用力时,观测到关节2有、无摩擦补偿采用的实验结果如图6所示. 由图6结果可知,无摩擦补偿时关节的观测值偏差较大,摩擦补偿后偏差值明显减小. 结合机器人初始运动状态的修正公式(式(24)),可设定补偿后关节2的检测阈值大小为8 N·m. 当有外力作用时,关节2有、无摩擦补偿的实验结果如图7所示. 由图67的实验结果可知,摩擦补偿有效减小了关节的碰撞检测阈值,有助于提高所提碰撞检测算法的检测灵敏度. 同理通过实验对关节3摩擦补偿后,可设定关节3的碰撞检测阈值为5 N·m.

图 6

图 6   无外力作用时关节2的观测结果

Fig.6   Observation results of joint 2 without external force


图 7

图 7   有外力作用时关节2的观测结果

Fig.7   Observation results of joint 2 with external forces


4.3. 机器人碰撞检测实验

为了验证碰撞检测算法的有效性,人与机器人共存环境下的碰撞检测实验结果如图8所示. 实验过程中机器人的实时运动参数如图9所示,卷积力矩观测器的观测结果如图10所示.

图 8

图 8   机器人碰撞检测实验截图

Fig.8   Screenshots of robot collision detection experiment


图 9

图 9   碰撞检测实验的机器人运动参数

Fig.9   Robot motion parameters in collision detection experiments


图 10

图 10   卷积滤波观测器观测结果

Fig.10   Observation results of convolution filtering observer


机器人在开放的环境下工作,如图8(a)所示. 如图8(b)所示为机器人在无外部干扰时按规划的路径完成指定任务,从图10可知,此时关节2、关节3的观测值都小于碰撞检测阈值. 如图8(c)所示为人体进入机器人的工作范围. 人与机器人共享有限的物理空间时一旦发生意外碰撞(如图8(d)所示),卷积力矩观测器的观测值会立刻迅速增大. 由图10可知,此时关节2、关节3的观测值都超过碰撞检测阈值. 观测结果与如图9所示的关节电机输出力矩变化相符. 根据式(22)可知,机器人的第3连杆发生了意外碰撞,由式(23)可进一步判断出碰撞发生在机器人运动的正方向. 如图8(e)所示,此时机器人控制系统会立即采取必要的安全措施,控制第3关节朝碰撞的反方向运动,保证人与机器人的安全. 图8(f)表示机器人运行到安全距离后停止运动,并等待操作人员检查和排除危险后重启机器人继续工作. 以上实验结果表明,提出的算法可实时对开放性环境下的机器人碰撞进行检测.

5. 结 语

本文提出了一种基于卷积力矩观测器与摩擦补偿的机器人碰撞检测算法. 该算法无需机器人关节加速度信息,避免了因获取加速度而增加成本和增大计算误差的缺点;无需安装专门的力传感器,只需获取机器人关节电机的驱动电流和关节的位置信息,有利于在常规的工业机器人系统中应用. 此外,设计了一种关节摩擦力测量方法,通过减小机器人运行过程中模型偏差和自身的重力等因素对关节摩擦力测量的干扰,避免了关节摩擦力过补偿和欠补偿的问题. 同时利用静态LuGre模型对摩擦进行补偿,减小机器人的模型误差,提高了碰撞检测算法的灵敏度. 实验结果表明:该算法工作性能稳定,可靠性高,机器人可实时检测人机交互过程中的意外碰撞. 另外,与已有的动量观测器相比,卷积力矩观测器可根据应用环境灵活选择滤波器,从而获得更优的观测效果. 因此,提出的碰撞检测算法具有潜在的应用前景. 后续工作将采用动力学参数辨识方法减小模型参数偏差,进一步提高该算法的碰撞检测性能.

参考文献

HADDADIN S, DE LUCA A, ALBU-SCHAFFER A

Robot Collisions: A Survey on Detection, Isolation, and Identification

[J]. IEEE Transactions on Robotics, 2017, 33 (6): 1292- 16312

DOI:10.1109/TRO.2017.2723903      [本文引用: 1]

MAURTUA I, IBARGUREN A, KILDAL J, et al

Human-robot collaboration in industrial applications: Safety, interaction and trust

[J]. International Journal of Advanced Robotic System, 2017, 14 (4): 1- 10

[本文引用: 1]

ZINN M, KHATIB O, ROTH B, et al

Playing it safe: human-friendly robots

[J]. IEEE Robotics and Automation Magazine, 2004, 11 (2): 12- 21

DOI:10.1109/MRA.2004.1310938      [本文引用: 1]

BUONDONNO G, DE LUCA A. Combining real and virtual sensors for measuring interaction forces and moments acting on a robot [C] // IEEE International Conference on Intelligent Robots and Systems. Daejeon: IEEE, 2016: 794–800.

[本文引用: 1]

ALBU-SCHAFFER A, HADDADIN S, OTT C, et al

The DLR lightweight robot: design and control concepts for robots in human environments

[J]. Industrial Robot, 2007, 34 (5): 376- 385

DOI:10.1108/01439910710774386      [本文引用: 1]

DE LUCA A, ALBU-SCHAFFER A, HADDADIN S, et al. Collision detection and safe reaction with the DLR-III lightweight manipulator arm [C] // IEEE International Conference on Intelligent Robots and Systems. Beijing: IEEE, 2006: 1623–1630.

[本文引用: 2]

SANTIS A D, SICILIANO B, DE LUCA A, et al

An atlas of physical human-robot interaction

[J]. Mechanism and Machine Theory, 2008, 43 (3): 253- 270

DOI:10.1016/j.mechmachtheory.2007.03.003      [本文引用: 1]

VILLANI V, PINI F, LEALI F, et al

Survey on human–robot collaboration in industrial settings: safety, intuitive interfaces and applications

[J]. Mechatronics, 2018, 55: 248- 266

[本文引用: 1]

LI Z J, WU H B, YANG J M, et al

A position and torque switching control method for robot collision safety

[J]. International Journal of Automation and Computing, 2018, 15 (2): 156- 168

DOI:10.1007/s11633-017-1104-9      [本文引用: 1]

INDRI M, TRAPANI S, LAZZERO I

Development of a virtual collision sensor for industrial robots

[J]. Sensor, 2017, 17 (5): 1148

DOI:10.3390/s17051148      [本文引用: 1]

钟琮玮, 项基, 韦巍, 等

基于扰动观测器的机械手碰撞检测与安全响应

[J]. 浙江大学学报: 工学版, 2012, 46 (6): 1115- 1121

[本文引用: 1]

ZHONG Cong-wei, XIANG Ji, WEI Wei, et al

Collision detection and safe reaction of manipulator based on disturbance observer

[J]. Journal of Zhejiang University: Engineering Science, 2012, 46 (6): 1115- 1121

[本文引用: 1]

吴海彬, 李实懿, 吴国魁

基于动量偏差观测器的机器人碰撞检测算法

[J]. 电机与控制学报, 2015, 19 (5): 97- 104

[本文引用: 3]

WU Hai-bin, LI Shi-yi, WU Guo-kui

Collision detection algorithm for robot manipulator based on momentum deviation observer

[J]. Electric Machines and Control, 2015, 19 (5): 97- 104

[本文引用: 3]

KERMANI M R, PATEL R V, MOALLEM M

Friction identification and compensation in robotic manipulators

[J]. IEEE Transactions on Instrumention and Measurement, 2007, 56 (6): 2346- 2353

DOI:10.1109/TIM.2007.907957      [本文引用: 1]

CHEN S X, LUO M Z, HE F

A universal algorithm for sensorless collision detection of robot actuator

[J]. Advances in Mechanical Engineering, 2017, 10 (1): 1- 10

[本文引用: 1]

LEE S D, KIM M C, SONG J B. Sensorless collision detection for safe human-robot collaboration [C] // IEEE International Conference on Intelligant Robots and Systems. Hamburg: IEEE, 2015: 2392–2397.

[本文引用: 1]

LEE S D, SONG J B

Sensorless collision based on friction model for a robot manipulator

[J]. International Journal of Precision Engineering and Manufacturing, 2016, 17 (1): 11- 17

DOI:10.1007/s12541-016-0002-3      [本文引用: 1]

DIXON W E, WALKER I D, DAWSON D M, et al

Fault detection for robot manipulators with parametric uncertainty: a prediction-error-based approach

[J]. IEEE Transactions on Robotics and Automation, 2000, 16 (6): 689- 699

DOI:10.1109/70.897780      [本文引用: 2]

DAMME M V, BEYL P, VANDERBORGHT B, et al. Estimating robot end-effector force from noisy actuator torque measurements [C] // IEEE International Conference on Intelligent Robots and Automation. Shanghai: IEEE, 2011: 1108–1113.

[本文引用: 2]

BITTENCOURT A C, GUNNARSSON S

Static Friction in a robot joint: modeling and identification of load and temperature effects

[J]. Journal of Dynamic Systems Measurement and Control, 2012, 134 (5): 1581- 1589

[本文引用: 2]

KENNEDY C W, DESAI J P

Modeling and control of the mitsubishi PA-10 robot arm harmonic drive system

[J]. IEEE Transactions on Mechatronics, 2005, 10 (3): 263- 274

DOI:10.1109/TMECH.2005.848290      [本文引用: 1]

/