自适应阻抗案例分析(上)

news2024/11/27 4:17:54

案例分析一

Duchaine,V.,Gosselin,C.(2009).Safe,stable and intuitive control for physical human-robot interaction.In IEEE international conference on robotics and automation,2009.ICRA'09(pp.3383-3388).IEEE.

主要贡献

  • 1.利用外力反馈调整阻尼系数,同时对人的意图实现预判
  • 2.稳定性分析
  • 3.估算人的阻抗系数

核心思想

        当接触力在当前速度的方向上急剧增大时→人期望在该方向加速→机器人应减小该方向上的阻抗系数以顺应人的意图,减小接触力,反之亦然。 

具体分析

机器人阻抗模型:

f=M\ddot{x}+C_{vi}\dot{x}\quad C_{vi}=C-\boldsymbol{S}\quad s_{ij}=\alpha\delta_{ij}\mathrm{sgn}(\dot{x}_i)\dot{f}_i\left ( 1.1 \right )

        构建机器人阻抗模型时,省略了和弹簧相关的项,即Kx。一般情况下,我们认为和弹簧相关的项用来维持机器人在空间当中的某个位置,像类似于拖动施教、康复训练和远程操作之类的协作任务当中,我们往往不要求机器人一定要维持在某个事先定义好的位置。在这种情况下,可以考虑简化机器人的阻抗模型,也就是说删去和弹簧相关的这一项。

        这里的阻尼系数矩阵Cvi是基准值减去另外一个S矩阵,S矩阵中的元素和机器人运动速度的方向和力变化的方向是相关的。举例来说,当机器人运动方向为正,力的方向为正,表明人希望在这个方向进行加速,对应的s_{ij}增加,这个方向的阻尼系数减小。\delta_{ij}克罗内克函数,当i=j时,\delta_{ij}=1,否则\delta_{ij}=0\mathrm{sgn}(\dot{x}_i)\dot{x}_i的符号函数。

人的阻抗模型:

f=Kx+b\left ( 1.2 \right )

文章中将人近似的看为了弹簧系统,即人产生的力和当前位置是线性关系。

        蓝色椭圆曲线为人体实际刚度矩阵,将实际刚度矩阵进行奇异值分解并绘制椭圆曲线。

        人的阻抗模型通过经典的参数辨识的方法在线去估算,也就是我们数值的线性回归。

参数辨识(线性回归):

\min\left(\boldsymbol{K}\boldsymbol{X}+\boldsymbol{B}-\boldsymbol{F}\right)^T\left(\boldsymbol{K}\boldsymbol{X}+\boldsymbol{B}-\boldsymbol{F}\right)\left ( 1.3 \right )

        通过机器人阻抗模型计算出来的力的大小和力它实际的测量值之间的误差,估算刚度矩阵的K值,上图红色椭圆曲线展示了通过参数辨识的方法,基于平面(二维工作空间)的真实实验得出的较差估计的情况。

稳定性分析:提出“最小阻尼系数“的概念

1.系统方程

        机器人的阻抗模型是线性的,人的阻抗模型也是线性的。两个模型通过接触力耦合,整个系统方程是一个二阶的线性方程

f=M\ddot{x}+C_{vi}\dot{x}=Kx+b\left ( 1.4 \right )

2.状态空间方程

        将二阶线性方程改写为状态空间方程

\dot{X}=AX\left ( 1.5 \right )

\boldsymbol{A}=\frac1{\boldsymbol{M}T}\begin{pmatrix}0&\boldsymbol{M}T&0\\0&0&\boldsymbol{M}T\\-\boldsymbol{K}&-\boldsymbol{C}&-(\boldsymbol{M}+\boldsymbol{C}T)\end{pmatrix}\left ( 1.6 \right )

        得到3×3的系统矩阵A,这里多出来的矩阵阶数,是因为在进行力的测量时,通常需要通过力传感器或转矩传感器来实现。然而,这些传感器的测量结果往往会受到高频噪声的干扰。为了减小甚至消除这些干扰对测量结果的影响,对原始的力测量信号进行滤波处理是必要的。最简单的滤波方法是使用一阶低通滤波器。

        在进行系统稳定性分析时,这个实际存在的低通滤波器的动态特性也需要被考虑进去。因此,系统模型中会多出一个参数 T,它代表一阶低通滤波器的时间常数。这个参数的引入是为了更准确地描述整个系统的动态行为,确保稳定性分析的准确性和可靠性。

3. 由系统矩阵特征值的实部小于0,可推导出矩阵C的最小值

        这里的其他参数均与机器人和人的阻抗模型有关,若熟悉线性控制理论,则可知当系统矩阵 A的所有特征根的实部均小于零时,系统即为稳定系统。根据这一条件,若我们使系统矩阵的行列式等于零,则可以得到系统的边界稳定条件。

        其中,M矩阵是预先定义的矩阵,而 K则与人类的阻抗模型相关。最终变化的参数为阻抗模型中的阻尼系数 C。基于上述边界条件,即当 A矩阵的行列式等于零时,我们能够得到 C的最小值。

        因此,在在线调整阻尼系数时,必须确保 C大于由线性控制理论推导出的最小值,以在理论上保证整个机器人的控制系统保持稳定。

案例分析二

F.Ficuciello,L.Villani and B.Siciliano,"Variable Impedance Control of Redundant Manipulators for Intuitive Human-Robot Physical Interaction,"in IEEE Transactions on Robotics,vol.31,no.4,pp.850-863,Aug.2015

主要贡献

1.利用操作空间内的速度反馈调整阻尼系数,提高人在拖动示教时的舒适性。
2.利用机器人的冗余自由度(Redundancy Resolution)在不影响主要任务执行的情况下,机器人能够自主优化姿态,远离奇异点。(Singularity)
3.稳定性分析:提出“稳定区域”(Stability Region)的概念,用实验的方法确定其范围。——当确定了一部分阻抗系数时,其他阻抗系数所允许变化的最大范围,文章作者用实验方法确定了稳定区域的大致范围。

具体分析

阻尼系数变化准则:

\boldsymbol{D}\left(\dot{\boldsymbol{x}}\right)=\min\left(\boldsymbol{a}\text{exp}\left(-b\|\dot{\boldsymbol{x}}\right\|\right),\boldsymbol{D}_{max})\left ( 2.1 \right )

  • \boldsymbol{D}\left(\dot{\boldsymbol{x}}\right):表示阻尼系数,它是一个向量,其中的每个元素对应于系统中一个特定状态变量的阻尼系数。

  • \dot{\boldsymbol{x}}:表示系统状态变量的导数,也就是系统的速度向量。

  • a 和 b:是模型参数,决定了阻尼系数随速度变化的非线性特性。

  • \left\|\dot{\boldsymbol{x}}\right\|:表示速度向量的范数,即速度的大小。

  • \exp(-\|\dot{\boldsymbol{x}}\|):是一个随着速度增加而减小的指数衰减函数。

  • D_{max}:是阻尼系数可能的最大值,表示阻尼系数不会超过这个值。

        整个公式的意思是:阻尼系数D(\dot{\boldsymbol{x}})随速度的增加而呈指数型减小,但有一个上限,即Dmax。和案例一中的思想类似,当机器人末端速度增大时,希望机器人的阻尼减小。

        采用文章中提出的方法,并得到了相应的结果。实验中,我们设定了两种不同的阻尼系数:一种是较低的阻尼系数,用绿色叉表示;另一种是较高的阻尼系数,用方框表示。我们使用两个标准来评估协作性能:一是完成任务所需的总时间;二是累积控制误差。

        实验结果表明,采用自适应阻抗控制方法在执行时间和完成精度两方面均表现最佳。如果阻尼系数设置过低,虽然可以缩短执行时间,但会导致较大的控制误差。相反,如果增大阻尼系数,虽然可以在一定程度上减少误差,但会增加完成任务所需的时间。因此,从实验结果来看,自适应阻抗控制在完成任务的效率和精度上都达到了最优效果。

        此外,在执行任务过程中,我们还可以观察人在操作中所需施加的力。观察结果表明,当使用高阻尼系数时,操作者需要施加较大的力来驱动机器人的运动。而低阻尼系数虽然减少了操作者所需施加的力,但如前图所示,这会导致较大的轨迹跟踪误差。因此,在这种情况下,自适应阻抗控制能够在减少操作者所需外力的同时,保证机器人在运动过程中的轨迹跟踪精度。这种控制策略实现了在降低操作者劳动强度和提高机器人运动精度之间的良好平衡。

利用冗余自由度的二次优化:

关节转矩输入函数

\tau_c=\tau_{imp}+\left(\boldsymbol{I}-\boldsymbol{J}^T\boldsymbol{J}^{\dagger T}\right)(\boldsymbol{u}-k_D\dot{\boldsymbol{q}})\left ( 2.2 \right )

        \tau_{imp}维持我们所设定的机器人阻抗特性所需要的转矩(首要任务),u是任意的输入力矩。

        通过乘以零空间矩阵(I-J^TJ^{\dagger T}) ,我们可以将控制力矩中的分量分解为两部分:一部分位于雅可比矩阵的列空间(直接影响末端执行器速度),另一部分位于雅可比矩阵的零空间(不影响末端执行器速度)。这样可以在不影响末端执行器任务性能的情况下,对关节进行额外的控制,例如实现柔顺控制或避免关节的奇异配置。

两种零空间中设计控制输入u方法:

1.考虑机器人的可操作性(Manipulability)

m\left(\boldsymbol{q}\right)=\sqrt{\det\left(\boldsymbol{J}\boldsymbol{J}^T\right)}\quad\boldsymbol{u}=k_m\left(\frac{\partial m\left(\boldsymbol{q}\right)}{\partial\boldsymbol{q}}\right)\left ( 2.3 \right )

     m\left(\boldsymbol{q}\right)反映了机器人和奇异点之间的距离,值越大越反映离奇异点举例越远。因此我们可以在机器人的可操作性梯度方向上定义控制输入。使其沿着增加机器人可操作性的梯度方向进行调整,从而在理论上实现可操作性的最大值。

2.考虑阻抗控制的误差

\omega\left(\boldsymbol{q}\right)=\frac{1}{2}\boldsymbol{E}^{T}\left(\boldsymbol{q}\right)\boldsymbol{W}\boldsymbol{E}\left(\boldsymbol{q}\right)\quad\boldsymbol{u}=-k_{\omega}\left(\frac{\partial\omega\left(\boldsymbol{q}\right)}{\partial\boldsymbol{q}}\right)\left ( 2.4 \right )

        如前所述,机器人在执行任务过程中,由于各关节间不可避免的耦合作用,实际展现的阻抗特性与预设的阻抗特性之间存在一定的偏差。这种偏差即由误差矩阵 e所表示,其中W为各关节的权重。在此基础上,我们可以定义一个新的量,称之为 \omega,用以量化这一误差的大小。控制输入u为沿着误差梯度减小的方向,最后可以达到理论上的误差小值。

基于实验方法的稳定性分析:
目的:给定阻抗模型中某一个参数,确定其他参数允许变动的范围
方法:利用阻抗控制,让机器人停留在某个姿态。改变阻抗参数,同时晃动机器人末端,直到出现大幅度振动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2228058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql进阶篇

1.更新记录 AC&#xff1a; update examination_info set tag replace(tag, "PYTHON", "Python") where tag "PYTHON";2.删除记录 AC&#xff1a; DELETE FROM exam_record WHERE timestampdiff(minute, start_time, submit_time) < 5AND…

RustRover加载Rust项目报错

问题描述&#xff1a; 昨天还可以正常使用的RustRover今天打开Rust项目一直报错&#xff1a; warning: spurious network error (3 tries remaining): [7] Couldnt connect to server (Failed to connect to 127.0.0.1 port 51342 after 105750 ms: Couldnt connect to server…

Vue 权限管理

vue 中&#xff0c;比较常见的需要进行权限管控的权限控制实现思路有四条&#xff1a;、 菜单的控制 在登录请求中&#xff0c;会得到权限数据&#xff0c;当然&#xff0c;这个需要后端返回数据的支持&#xff0c;前端根据权限数据&#xff0c;展示对应的菜单&#xff0c;单…

三十二、2024年交通管理专业知识测试题

你还在为自己的学习发愁吗?你还在为你还在为自己面对枯燥无味的教科书、一层层叠叠的试卷复习而发呆吗?如何提高的学习兴趣,如何摆脱枯燥乏味的书本和试卷,采用一种全新的方式去努力复习功课、增进知识呢,如何激自己的学习热情,接触更广阔的知识面,争取在期末考试中考出…

国际版同城服务同城信息任务发布平台系统小程序源码

国际版同城服务同城信息任务发布平台系统&#x1f30d;&#x1f4e2;&#xff1a;连接世界的每一个角落 &#x1f310; 开篇&#xff1a;跨越国界的同城服务 在这个全球化的时代&#xff0c;我们不再局限于自己的城市&#xff0c;而是渴望与世界每一个角落建立联系。为了满足…

Docker 命令指南:详细概述与示例应用

Docker 命令指南&#xff1a;详细概述与示例应用 Docker 是一个强大的容器化平台&#xff0c;为容器的创建、管理和运行提供了广泛的支持。通过 Docker 的命令行工具&#xff0c;用户可以从基本的镜像管理、容器操作到复杂的网络和数据存储管理执行各种任务。本节将详细介绍 D…

【问题记录】解决VMware虚拟机中鼠标侧键无法使用的问题

前言 有项目需要在Linux系统中开发&#xff0c;因为要测试Linux中相关功能&#xff0c;要用到shell&#xff0c;在Windows中开发太麻烦了&#xff0c;因此我选择使用UbuntuXfce4桌面来开发&#xff0c;这里我用到了Linux版本的IDEA&#xff0c;除了快捷键经常和系统快捷键冲突…

【vue3|第29期】Vue3中的插槽:实现灵活的组件内容分发

日期&#xff1a;2024年10月24日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉在这里插入代码片得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不…

【Linux系统编程】第三十九弹---探索信号处理的奥秘:阻塞信号与sigset_t的深入剖析及实战

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、信号处理 2、阻塞信号 2.1、信号其他相关常见概念 2.2、在内核中的表示 2.3、sigset_t 2.4、信号集操作函数 3、完整…

IDEA解决 properties 文件乱码问题

博主介绍&#xff1a; 计算机科班人&#xff0c;全栈工程师&#xff0c;掌握C、C#、Java、Python、Android等主流编程语言&#xff0c;同时也熟练掌握mysql、oracle、sqlserver等主流数据库&#xff0c;具有丰富的项目经验和开发技能。提供相关的学习资料、程序开发、技术解答、…

三款护眼台灯测评推荐:书客、松下、米家护眼台灯好用吗?

最近护眼台灯非常火&#xff0c;赶上儿子需要换一个学习台灯&#xff0c;于是我开始仔细研究护眼台灯怎么挑&#xff0c;刚好选了三款市面上认可度比较高的三款护眼台灯进行全面详细的护眼测评&#xff0c;书客、松下、米家护眼台灯好用吗&#xff1f;我们通过外观设计、光谱结…

虚拟机桥接模式连不上,无法进行SSH等远程操作

说明&#xff1a;以下情况在window10上遇到&#xff0c;解决后顺便做了个笔记&#xff0c;以防后续再次用到&#xff0c;也给同道中人提供一个解决方案 一、首先按照以下步骤进行检查 1、是否连接了对应的wifi 2、是否设置了桥接模式 3、上述1、2确认无误的情况下请查看右上…

filebeat+elasticsearch+kibana日志分析

1 默认配置 1.1 filebeat filebeat-7.17.yml,从网关中下载k8s的配置&#xff0c;指定es和kibana的配置 通过kibana查询可以查询到日志了&#xff0c;但此时还不知道具体怎么用。 1.2 kibana 在Discover中创建索引格式&#xff1a;filebeat-*&#xff0c;得到如下图&#xf…

HTML练习题:彼岸的花(web)

展示效果: 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>彼岸の花</title><style…

数据结构 之 二叉树的遍历------先根遍历(五)

提示&#xff1a;本篇章主要讲解数据结构中树的相关知识。 文章目录 二叉树的遍历为什么要提出这么多遍历方法&#xff1f;先根遍历二叉树&#xff08;TLR&#xff09;先根遍历二叉树的递归算法&#xff08;重点&#xff09;先根遍历二叉树的非递归算法(了解&#xff0c;但是得…

【jvm】堆的内部结构

目录 1. 说明2. 年轻代&#xff08;Young Generation&#xff09;2.1 说明2.2 Eden区2.3 Survivor区 3. 老年代&#xff08;Old Generation&#xff09;3.1 说明3.2 对象存放3.3 垃圾回收 4. jdk7及之前5. jdk8及之后 1. 说明 1.JVM堆的内部结构主要包括年轻代&#xff08;You…

开源一款前后端分离的企业级网站内容管理系统,支持站群管理、多平台静态化,多语言、全文检索的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一款前后端分离的企业级网站内容管理系统&#xff0c;支持站群管理、多平台静态化&#xff0c;多语言、全文检索的源码。 前言 在当今的数字化时代&#xff0c;企业网站和个人博客已成为信息传播和品牌建设的重要渠道。…

OpenCV视觉分析之目标跟踪(4)目标跟踪类TrackerDaSiamRPN的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::TrackerDaSiamRPN 是 OpenCV 中用于目标跟踪的一个类&#xff0c;它实现了 DaSiam RPN&#xff08;Deformable Siamese Region Proposal Net…

雷池社区版配置同步试用

雷池社区版配置同步试用 雷池社区版在 7.0.0 版本引入了多节点配置同步 使用步骤 1. 获取连接命令 在主节点点击成为主节点后&#xff0c;会出现一个地址&#xff0c;该地址用于从节点连接主节点&#xff0c;获取主节点的配置&#xff0c;所以要保障从节点能够连接到主节点…

【动手学电机驱动】 STM32-FOC(1)IHM03 电机控制套件的介绍

STM32-FOC&#xff08;1&#xff09;IHM03 电机控制套件的介绍 STM32-FOC&#xff08;2&#xff09;IHM03 电机控制套件的使用 【动手学电机驱动】 STM32-FOC&#xff08;1&#xff09;IHM03 电机控制套件的介绍 1. IHM03&#xff1a;基于 STM32 的电机控制套件1.1 X-NUCLEO-IH…