自适应柔顺性策略:扩散引导控制中学习近似的柔顺
24年10月来自斯坦福大学和 TRI 的论文“Adaptive Compliance Policy: Learning Approximate Compliance for Diffusion Guided Control”。
柔顺性在操作中起着至关重要的作用,因为它可以在不确定的情况下平衡位置和力的并发控制。然而,当今的视觉运动策略往往忽视柔顺性,而只注重位置控制。本文介绍自适应柔顺性策略 (ACP),这种框架,从人类演示中学习针对给定的操作任务在空间和时间上动态调整系统柔顺性,改进以前依赖预选择的柔顺性参数或假设均匀恒定刚度的方法。然而,从人类演示中计算完整的柔顺性参数是一个定义不明确的问题。相反,本文估计一个具有两个有用属性的近似柔顺性曲线:避免大的接触力和鼓励准确跟踪。该方法使机器人能够处理复杂丰富接触的操作任务,与其他视觉运动策略方法相比,性能提高 50% 以上。
机器人系统所需的柔顺性并不是静态属性;相反,它会根据任务目标和系统状态而发生巨大变化。例如,考虑如图 翻转任务,所需的柔顺性:
• 随时间变化。例如,系统在接触前需要较少的柔顺性以优先考虑精确的位置跟踪,而在接触时变得柔顺。
• 随空间变化。例如,在枢转阶段,系统应仅在推动方向(即 K2 方向)上柔顺,同时在其他方向上保持高刚度以跟随弧形运动(例如,K1 方向的低柔顺性)。
• 因任务而异。如果换成不同的任务,例如擦拭图(右)中的花瓶,柔顺性的时间和空间属性都会发生变化,以满足独特的 3D 运动和力要求。

这项工作引入自适应柔顺性策略 (ACP),这是一种感觉运动策略,它学习根据人类演示在空间和时间上动态调整系统柔顺性以适应给定的操作任务。
如图各种方法比较。[左图] 显示 a) 典型的视觉运动策略 [6]、b) 典型的基于力柔顺策略 [26] 和 c) 自适应柔顺策略之间的比较。[右图] 自适应柔顺策略推断的虚拟目标(橙色方块)和参考姿势(黄色圆圈)的可视化。虚拟姿势和参考姿势之间的方向差异(橙色箭头)编码柔顺方向。

机器人柔顺性建模。柔顺性扩展机器人的动作空间 [21, 32]。考虑一个由位置 x 和力 f 描述的 N 维系统。柔顺性是力和运动之间的弹性行为,通常由弹簧质量阻尼器系统建模:

右侧的三个项分别代表惯性力、弹簧力和阻尼力。x_ref 是参考位置,此时弹簧力为零。柔顺行为由惯性矩阵 M、刚度矩阵 K 和阻尼矩阵 N×N K_D 描述,如果柔顺性由控制实现,则可由用户指定。换句话说,它们可以添加到高级策略 [3、2、8] 的动作空间中,而低级柔顺控制器实现“虚拟”刚度/阻尼/惯性。当高级策略无法足够快地表现出柔顺性时,这是有益的。
对柔顺控制器使用导纳控制 [31],它接收力反馈并输出位置目标。这适用于高精度位置控制机器人 (UR5e)。具有力控制接口的机器人也可以使用阻抗控制 [14] 或一些混合力-运动控制方案 [32、37]。
操作建模。模拟一个操作系统如何与机器人交互,将机器人视为一个黑盒子。做出以下假设:
假设 I:接触力占主导地位。与接触力相比,其他类型的力,如惯性力、摩擦力和重力,可以忽略不计。
不要将这与机器人本身的柔顺控制相混淆,后者是快速和动态的。通过避免快速机器人运动和使用轻量级物体来确保假设 I。考虑一个具有 N 个自由度的机器人,与环境进行 n 次接触。将 λ 表示为接触法向力的矢量,在假设 I 下,牛顿第二定律可以写成以下形式:

其中 J 是接触雅可比矩阵,它将接触力映射到机器人广义力空间。虽然该方法用于推导,但它不需要计算它。将 v表示为广义速度矢量,雅可比矩阵 J 还可以描述接触施加的速度约束:

选择动觉教育而不是遥操作来收集人体演示,以便操作员在直接触觉反馈下轻松演示可变的柔顺行为(如图所示)。一只手臂的设置包括一个机器人操纵器以提供精确的位置反馈,一个 RGB 摄像头以记录视觉信息,以及一个安装在机器人手附近的力矩传感器。

在演示过程中,为机器人柔顺控制器指定低刚度、低阻尼和低质量,以便操作员可以自由移动机器人。由于人手提供自然的外部稳定性,因此在演示过程中可以实现低阻尼和低质量。在测试过程中,增加机器人阻尼和虚拟质量以保持导纳控制器的稳定性。有必要将工具中心点 (TCP) 设置在手柄附近,这样机器人就可以在外力作用下以操作员直观的方式旋转。
人类在操作过程中使用不同的刚度。高刚度可在力扰动下提供位置精度。低刚度也是必要的,因为高刚度控制施加的速度约束可能与公式(3)中定义的接触约束相冲突,在此期间可能会产生巨大的内力 [17]。
然而,由于缺乏变化,从单个人类演示中估计柔顺性参数通常是一个病态问题 [4]。先前关于刚度估计的研究 [13] 假设完全了解阻尼和虚拟质量以及力运动信号有足够的变化。这些要求在动觉教育中得不到满足,其中人手改变机器人手的有效阻尼和质量,并且演示可以在一段时间内保持恒定的力或位置。
为了简化问题,还使用预选择的质量和阻尼值。然后,找到具有以下属性的刚度矩阵,而不是估计真实的人体刚度:
它避免在操作中产生巨大的内力。
它有助于准确跟踪所需的运动。
C.1 刚度方向:采用以下简单的策略来选择广义空间中的刚度方向:在力反馈方向上使用低刚度 k_low,在所有其他方向上使用高刚度 k_high。
从刚体力学 [33] 中,接触雅可比矩阵 J 的行代表接触法向力的方向,它在广义力空间中形成一个多面体凸锥。再做两个假设:
假设 II:非零接触力:所有接触都应具有非零接触力。
假设 III:无挤压接触:接触雅可比矩阵 J 的行形成的锥体,包含在其对偶锥体中。
通过在演示中清晰地进行接触,可以满足假设 II。假设 III 意味着机器人上的接触不太严格。如图显示一些示例:

在这些假设下提出以下定理:
定理 1. 对于由公式(2)描述的外部接触机器人,只要它在广义空间中不控制其在反馈力 f 方向上的速度,就存在一个满足接触约束(3)的解 v。
以上定理 1 表明,一维低刚度控制足以避免约束违规,因此可以在其他方向上使用高刚度来改善位置跟踪。令 K_0 ∈ RN 为对角矩阵,其对角线上有 [k_low, k_high, …, k_high],S 为一个列构成正交基的矩阵,第一列为 f / |f|。
刚度矩阵可以写成:

C.2 刚度大小:高刚度 k_high 应支持这些方向上的精确位置跟踪,可根据经验设定。低刚度值应为零,但是,由于低刚度方向是根据嘈杂的力信号估计,让刚度随力大小连续减小会很有帮助。
下面将策略制定为参考动作和目标刚度的扩散过程。该策略以滚动-范围(receding- horizon)方式运行 [6],其中使用最近的观察结果预测动作轨迹:1)鱼眼 RGB 图像,2)机器人末端执行器姿势,以及 3)力/扭矩数据。
1)输入和编码:为力/扭矩数据实施两种编码策略:i)通过因果卷积进行时间编码 [35],这有助于从力等序贯数据中捕获因果关系。用过去 32 个时间步的力读数,并将它们通过 5 层因果卷积网络,输出 768 维向量;ii )FFT 编码,将 6D 力/扭矩读数的每个维度转换为 2D 频谱图。这些频谱图(6×30×17)被传递到 ResNet-18 模型,该模型的输入通道已修改为 6。在开头添加一个坐标卷积层 [28] 来处理平移不变性。过去两个时间步的图像被随机裁剪为 224×224,然后使用 CLIP 预训练的 ViT-B/16 模型 [10] 进行编码。
图像和力编码都传递到 transformer 编码器层,使用自注意来学习自适应视觉-力的表征。该表征与过去 3 个时间步的机器人末端执行器姿势连接在一起,并作为以下条件馈送到下游的扩散策略头 [6]。
- 输出和解码:策略输出将位置目标、刚度矩阵和参考力编码到每只机械臂的 19 维向量中:
- 参考姿势:遵循 [6] 中的约定的 9D 姿势向量,其中最后六个元素是旋转矩阵的前两行;
- 虚拟目标姿势:代表低级柔顺性控制器要跟踪的实际目标 9D 姿势;
- 表示低刚度方向的刚度大小标量值。
虚拟目标姿势的计算方式是,如果机器人在跟踪具有给定刚度的虚拟目标时达到参考姿势,它将施加参考力。它本质上将力目标转变为位置目标。这样做的好处,是可以在不同的机器人之间获得统一的目标表示:没有 FT 传感器的阻抗控制机器人,也可以执行虚拟目标。
在训练期间,首先将整个扳手数据 episode 通过具有一秒窗口大小的移动平均滤波器,然后从刚度矩阵公式(6)中计算刚度,最后计算 3D 机械弹簧后的虚拟目标。扳手的重度过滤有两个好处:1) 它使虚拟目标变得平滑;2) 它为动作标签提供即将进行接触的事后信息,这对于平滑的接触吸引力运动至关重要。
在推理时,按照公式(6)重建完整的刚度矩阵,将力的方向替换为从参考姿势到虚拟目标的方向。最后,刚度矩阵和虚拟目标都被发送到低级柔顺性控制器进行执行。
在两个接触丰富的操作任务中评估方法,这些任务的成功取决于维持合适的接触模式。用带有一个 GoPro RGB 摄像头和一个 ATI mini-45 力矩传感器的 UR5e 机器人。GoPro 摄像头以 60Hz 的频率传输图像,机器人以 500Hz 的频率接收笛卡尔姿势命令并发送姿势反馈,而 ATI 传感器以高达 7000Hz 的频率传输力矩数据。
评估以下四种策略,所有策略都在同一数据集上以相同的 epoch 数进行训练:
• ACP:自适应柔顺性策略,本文方法;
• 无 FFT 的 ACP:与 ACP 相同,但使用时间卷积 [35, 26] 而不是 FFT的力编码。
• 刚性策略:附加力输入的扩散策略 [6, 7],输出目标位置。
• 柔顺策略:与 [刚性策略] 相同,只是低级控制器具有均匀的刚度 k = 500N/m。在视觉运动策略中,依赖低级机器人柔顺性是很常见的 [26, 40, 44, 23]。
两种 ACP 变型都使用 3D 平移空间中的柔顺性,即 N = 3,尽管如果需要,该方法公式也适用于 6D 柔顺性。对于所有策略,使用两帧 RGB 图像和三帧末端执行器姿势。当这些数字较小时,策略对这些数字不敏感。[无 FFT 的 ACP] 使用以 250Hz 采样的 32 帧扳手数据,而其他所有三种策略都使用 7000Hz 的一秒数据。
相关文章:
自适应柔顺性策略:扩散引导控制中学习近似的柔顺
24年10月来自斯坦福大学和 TRI 的论文“Adaptive Compliance Policy: Learning Approximate Compliance for Diffusion Guided Control”。 柔顺性在操作中起着至关重要的作用,因为它可以在不确定的情况下平衡位置和力的并发控制。然而,当今的视觉运动策…...
python中所有内置类型
文章目录 数值类型序列类型集合类型映射类型布尔类型空类型代码汇总 在 Python 中,数据类型可分为内置数据类型和用户自定义数据类型。内置数据类型是 Python 解释器直接支持的类型 数值类型 整数(int):表示整数,可正…...
「Java-API帮助文档」
「Java-API帮助文档」,链接:https://pan.quark.cn/s/d7ced3b48f33 java.applet提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。java.awt包含用于创建用户界面和绘制图形图像的所有类。java.awt.color提供用于颜色空间的类。java…...
1204. 【高精度练习】密码
文章目录 题目描述输入输出样例输入样例输出数据范围限制CAC代码 题目描述 人们在做一个破译密码游戏: 有两支密码棒分别是红色和蓝色,把红色密码棒上的数字减去蓝色 密码棒上的数字,就是开启密码锁的密码。 现已知密码棒上的数字位数不超过…...
SVN简明教程——下载安装使用
SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…...
“智改数转”新风口,物联网如何重构制造业竞争力?
一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…...
从数据洪流到智能洞察:人工智能如何解锁大数据的价值?
引言:数据洪流时代,企业的机遇与挑战 在这个信息爆炸的时代,数据正以前所未有的速度增长。IDC预测,全球数据量将在未来几年内持续飙升,企业每天都会产生海量的用户行为数据、市场交易数据、设备传感数据等。理论上&…...
蓝桥杯 之 数论
文章目录 习题质数找素数 LCM报数游戏 快速幂数字诗意 组合数与错位排序小蓝与钥匙 同余取模 数论,就是一些数学问题,蓝桥杯十分喜欢考察,常见的数论的问题有:取模,同余,大整数分解,素数&#x…...
SpringBoot的启动原理?
大家好,我是锋哥。今天分享关于【SpringBoot的启动原理?】面试题。希望对大家有帮助; SpringBoot的启动原理? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot的启动原理主要是通过 SpringApplication 类来…...
从零开始搭建向量数据库:基于 Xinference 和 Milvus 的文本搜索实践
引言 在 AI 和大数据时代,向量数据库正成为处理非结构化数据(如文本、图像)的利器。最近,我尝试用 Xinference 和 Milvus 搭建一个简单的文本搜索系统,从读取本地文本文件到实现交互式查询和高亮显示匹配结果…...
音视频系列——Websockets接口封装为Http接口
模型服务示例:实时语音转文本服务 本示例展示一个支持双协议(WebSocket流式接口HTTP同步接口)的语音转文本模型服务,并提供将WebSocket接口封装为HTTP接口的代码实现。 一、服务架构设计 #mermaid-svg-nw0dMZ4uKfS4vGZR {font-fa…...
scrapy入门(深入)
Scrapy框架简介 Scrapy是:由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据,只需要实现少量的代码,就能够快速的抓取。 新建项目 (scrapy startproject xxx):新建一个新的…...
docker模拟Dos_SYN Flood拒绝服务攻击 (Ubuntu20.04)
目录 ✅ 一、实验环境准备(3 个终端) 👉 所以最终推荐做法: 2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务: 3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听&…...
使用 Ansys Fluent 评估金属管道腐蚀
金属管道的维护和完整性在石油和天然气、石化和供水等各个行业中都至关重要。腐蚀对这些管道构成了重大威胁,可能导致泄漏、结构故障和环境危害。Ansys Fluent 提供了一个强大的平台来建模和分析金属管道腐蚀。 腐蚀是一种自然过程,金属材料会因与环境发…...
firefly经典蓝牙和QProcess、QFileSystemWatcher记录
QProcess 默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。 QProcess的参数模式 QProcess 需要明确指定命令的可执行文件路径或参数列表。 如果命令是一个可执行文件的路径…...
基于PySide6的CATIA自动化工具开发实战——空几何体批量清理系统
一、功能概述 本工具通过PySide6构建用户界面,结合PyCATIA库实现CATIA V5的自动化操作,提供两大核心功能: 空几何体清理:智能识别并删除零件文档中的无内容几何体(Bodies)空几何图形集清理࿱…...
Blender配置渲染设置并输出动画
在Blender中,渲染设置和渲染动画的选项位于不同的面板中。以下是具体步骤: 渲染设置 渲染设置用于配置输出格式、分辨率、帧率等参数。 打开右侧的 属性面板(按 N 键可切换显示)。 点击 “输出属性” 选项卡(图标是…...
Spring 声明式事务应该怎么学?
1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写,它的设计如此巧妙,以至于在使用中几乎感觉不到它的存在,只需要优雅地加一个 Transactional 注解,一切就都顺理成章地完成了! 毫不夸张地讲ÿ…...
C++11 引入了的新特性与实例说明
C11 引入了许多重要的新特性,以下是一些关键特性及其对应的示例代码,用于体现这些特性的用法和优势。 1. 自动类型推导 (auto) auto 关键字允许编译器自动推导变量的类型,简化代码书写。 #include <iostream> #include <vector>…...
二手Mac验机过程
1.1 外观检查 螺丝是否拧过螺丝 1.2 关于本机中 序列号,盒子序列号,机器背部 核对参数 https://checkcoverage.apple.com/coverage 1.3 检查apple ID与查找 1 登出 iCloud、iTunes、FaceTime、iMessage 在 Mac 上打開「訊息」應用程式,從上方…...
从 0 到 1 掌握鸿蒙 AudioRenderer 音频渲染:我的自学笔记与踩坑实录(API 14)
最近我在研究 HarmonyOS 音频开发。在音视频领域,鸿蒙的 AudioKit 框架提供了 AVPlayer 和 AudioRenderer 两种方案。AVPlayer 适合快速实现播放功能,而 AudioRenderer 允许更底层的音频处理,适合定制化需求。本文将以一个开发者的自学视角&a…...
Android 13深度定制:SystemUI状态栏时间居中显示终极实战指南
一、架构设计与技术解析 1. SystemUI状态栏核心布局机制 层级结构 mermaid 复制 graph TDPhoneStatusBarView --> StatusBarContents[status_bar_contents]StatusBarContents --> LeftLayout[status_bar_left_side]StatusBarContents --> ClockLayout[Clock控件]Left…...
支持多系统多协议且可提速的下载工具
在网络下载需求日益多样的当下,一款好用的下载器能极大提升效率。今天就给大家介绍 AB Download Manager,它免费又开源,能适配 Windows 和 Linux 系统,带来超便捷的下载体验。 AB Download Manager 采用先进的多线程技术…...
【leetcode hot 100 22】括号生成
解法一:(回溯法)用两个整数记录左右括号数,以在回溯过程中保证先生成左括号,且左右括号数不能大于n。 class Solution {public List<String> generateParenthesis(int n) {List<String> result new Arra…...
如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同?
大白话如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同? 1. HTML 中有序列表和无序列表的基本概念 在 HTML 里,列表是一种用来组织信息的方式。有序列表就是带有编号的列表,它可以让内容按照一定的顺序呈现&#…...
【武汉·4月11日】Parasoft联合光庭信息研讨会|邀您共探AI赋能新机遇
Parasoft联合光庭信息Workshop邀您共探AI赋能新机遇 AI浪潮已至,你准备好了吗? 在智能网联汽车飞速发展的今天,AI技术正以前所未有的速度重塑行业生态。如何把握AI机遇,赋能企业创新? 4月11日,自动化软件…...
PHP PSR(PHP Standards Recommendations)介绍
PHP PSR(PHP Standards Recommendations)是 PHP 社区制定的一系列标准化规范,旨在统一 PHP 代码的编写方式、接口设计和开发实践,以提高代码的可读性、可维护性和互操作性。以下是核心 PSR 标准的解读和具体使用方法: …...
闻所闻尽:穿透声音的寂静,照见生命的本真
在《楞严经》的梵音缭绕中,"闻所闻尽"四个字如晨钟暮鼓,叩击着每个修行者的心门。这个源自观世音菩萨耳根圆通法门的核心概念,既是佛门修行的次第指引,更蕴含着东方哲学对生命本质的终极叩问。当我们穿越时空的帷幕&…...
F28335进入非法中断ILLEGAL_ISR定位
在非法中断函数中,再调用一个函数接口,比如save_illegal_error(),然后在save_illegal_error中实现如下代码: g_illegal_isr_sp 0;(这个是全局变量,需要先定义 ) asm( “ MOVW ACC, SP\n” " MOVL …...
PreparedStatement 和 Statement 从 功能、性能、安全性、适用场景 等维度详细对比分析
以下是 PreparedStatement 和 Statement 的对比分析,从 功能、性能、安全性、适用场景 等维度详细说明: 1. 核心区别 特性PreparedStatementStatement定义预编译的 SQL 语句,支持参数化查询执行静态 SQL 语句,不支持参数占位符安…...
