软体机器人动态手内笔旋转研究

人工智能咨询培训老师叶梓 转载标明出处

软体机器人因其在安全互动方面的优势而备受关注,但在高速动态任务中却面临挑战。最近,卡内基梅隆大学机器人研究所的研究团队提出了一种名为SWIFT的系统,旨在通过学习和试错来实现软体机器人手的动态任务,特别是手内笔旋转这一高难度动作。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。

1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。

CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987

方法

为了解决手内动态笔旋转的问题,研究团队构建了一个软体机器人手,使用了多指全方位末端执行器(MOE)。这个软体手由三个腱驱动的软体机器人手指组成,每个手指由两个伺服电机控制四个腱。图 2 展示了MOE未激活和被腱激活的状态。伺服电机拉动腱使手指在垂直平面上弯曲,通过组合伺服电机的运动,可以驱动每个手指尖端到达其半球形工作空间上的不同位置。两个手指(记为m1和m2)连接在手基座的一侧,最后一个手指(记为m3)连接在另一侧。MOE手被安装在一个六自由度的机器人臂上。图 2 还展示了MOE及其手指配置的更多细节。

在每次尝试旋转笔之前,首先手动将笔放置在桌子上的固定槽中(图 3 初始状态)。这个固定装置过程使得抓握动作可重复。然后机器人臂执行一系列固定动作,将MOE手移动到笔的大致中心位置。MOE手指随后闭合以抓住笔,机器人臂将笔带到预设的位置和方向,然后执行下一次旋转动作(图 3 抓握和预旋转姿势)。这个过程一致地重置了系统。轨迹使用位于机器人臂前方的RGB-深度相机捕获。相机设置使其z轴指向m3手指,当MOE手达到预旋转配置时。

笔旋转任务被分解为抓握动作、旋转动作和接住动作。而不是优化系统中的所有自由度,研究团队将笔旋转动作参数化为一组简化的变量:伺服目标,这些是每个伺服电机内部PD控制器达到旋转笔的目标角度。有三个手指,每个手指有两个伺服电机,总共有6个参数。这个组件记为s ∈ R^6。不是使用绝对的伺服目标,而是让s表示相对于当前伺服角度的伺服角度变化。

延迟时间,受到人类笔旋转的启发,只有手指m1需要向内弯曲以接住旋转的笔,而手指m2和m3可以保持静止。因此,不搜索接住动作的伺服目标角度。手指m1上的伺服电机移动到旋转动作期间使用的相反角度,即如果m1上的两个伺服电机在旋转期间执行了θ1, θ2,它们将在接住期间执行-θ1, -θ2。根据旋转动作,笔的角速度将不同,导致手指m1需要保持伸展的时间不同,以免阻挡旋转的笔。

因此,还包括一个可搜索参数,用于延迟旋转动作结束和接住动作开始之间的时间。这个参数记为d ∈ R。抓握位置,增加了一个可搜索参数来控制旋转前的抓握位置。这个单一参数控制从抓握位置到笔中心的位移。这个参数记为g ∈ R。机器人臂预先编程将手指移动到笔的中心,然后根据抓握位置参数水平调整末端执行器位置。MOE手指根据抓握位置按照固定的动作序列闭合以抓住笔。在评估中,包含旋转动作伺服目标和延迟时间的动作参数化记为**(s, d) ∈ R^7**。包含上述所有三个组件的动作参数化记为**(s, d, g) ∈ R^8**。

图 5 总结了完整的SWIFT管道。为了计算奖励,系统使用RGB图像和RGB-D相机捕获的点云观察笔的状态,每秒30帧。在每个轨迹的第一帧中,系统使用霍夫圆变换定位笔上的红色和绿色球形标记。Segment Anything v2然后使用球体中心的像素坐标作为初始关键点,在笔的轨迹的每一帧上创建密集的分割掩码。

分割掩码有助于选择属于笔的3D点。围绕MOE指尖的边界框过滤掉分割点云中的异常点,并指示笔是否靠近手指。如果过滤后的点云包含的点数少于阈值,则认为笔在某一帧中掉落。为了检索笔的旋转状态,系统随后对过滤后的点云应用PCA。笔的方向由第一主成分的方向表示。

选择PCA而不是直接使用球体中心的深度信息,是为了增加对嘈杂的RGB-D数据的鲁棒性。系统最终将第一主成分向量投影到x、y和z平面上,计算笔在相机坐标系中的欧拉角。目标函数包含一个奖励项和一个跌落惩罚项。

系统在轨迹的每帧t中计算目标,总共有T帧。旋转奖励是,其中θtz是笔在相机坐标系中围绕z轴的旋转角度。指示函数1∥pt∥>n如果笔在帧pt中的过滤点数大于阈值n,则评估为1;否则为0。深度相机的z轴指向并平行于手指m3,因此这种旋转奖励鼓励笔围绕手指m3旋转。惩罚项,惩罚笔根据指示函数的阈值从手指上移开太远的帧。应用权重因子λ将这两项合并为最终目标函数:

SWIFT使用协方差矩阵自适应进化策略(CMA-ES)优化动作参数。CMA-ES是一种无梯度进化策略,适用于优化非凸目标函数,如方程1。在每一代中,CMA-ES从多元正态分布中采样一组动作参数,由均值和协方差矩阵参数化,这些参数使用当前一代中表现最佳的候选者进行更新。为了防止机器人臂移动到笔外的抓握位置以及MOE手执行超出其机械限制的动作,限制优化算法的输出始终在变量的允许范围内。

评估

实验环境的设置(图 4)是为了实现可重复的笔抓取和相机观测。实验还包括一个笼子,以便在需要时由人工进行重置。研究者们测试了三种不同的笔配置,以评估SWIFT系统对物体物理属性变化的鲁棒性。所有三支笔长度均为304毫米,半径为4.25毫米,在视觉上是相同的。

Pen 1是平衡笔,其中心质量直接位于笔的长度中心,总质量为38克。Pen 2质量为26克,通过移除红色球形标记附近的可拆卸重物,使质量中心偏移。Pen 3则翻转,使质量中心朝向另一侧。此外,还测试了重量为38克、长度为216毫米的螺丝刀,以及重量为42克、长度为352毫米的刷子,其最大厚度为21.3毫米,最小厚度为6.7毫米。在10代的优化过程中调整动作参数,并在10次试验中评估这些参数的重复性。根据Hansen和Ostermeier的启发式方法,由于动作参数化最多有8个维度,因此选择CMA-ES的种群大小为4 + 3 log2 8 ≈ 13。对于刷子和螺丝刀的评估,优化持续到第一代结束时观察到成功的旋转或最多10代。

结果表明,同时优化抓握位置和旋转参数可以获得最佳性能,并在具有不同几何形状和质量分布的非笔物体上展示了泛化能力。

图 6展示了优化后成功的笔旋转。在优化过程中,所使用的奖励函数仅间接捕捉旋转动作是否成功。因此,由人工观察者标记试验的成功或失败。如果笔在旋转时越过手指m3并且没有从手指上掉落,则视为成功。

表 I报告了每种基线和消融方法的成功率。CMA-ES优化以启发式手工制作的动作参数初始化。然而,直接应用固定的动作初始化在所有三种笔设置中都没有成功,每种都以0/10的成功率失败(表中的第一行)。

结果表明,为MOE手特别优化动作对于任务成功至关重要。比较了SWIFT优化与不同动作参数化的结果,并在表 I中报告了结果。在“初始化”行中,SWIFT不优化抓握动作g,始终抓握笔的中心。在“无抓握优化”中,优化了(s, d),但不是抓握点g。机器人再次始终抓握笔的中心。通过这个实验,可以看到仅优化(s, d)的效果高度依赖于物体。在中心抓握的情况下,只能对笔2成功,成功率为7/10。抓握笔长度中心对笔2有效的原因可能是,笔2的最佳抓握点最接近笔的中心,如图 6所示。

这些结果强调了为系统优化抓握点和旋转动作参数对于适应不同笔属性的重要性。在“来自Pen 1的最佳动作”行中,展示了对笔1优化动作参数的结果,然后将动作应用于笔2和笔3。这表明了为每个新物体更新动作参数的必要性。直接使用来自笔1的最佳(s, d, g)参数对笔3的成功率为7/10,而相同的参数对笔2的成功率为0/10。

可以看到,在图 6中,笔1和笔3之间的最佳抓握点都在图像框架中笔的中心左侧。这可能解释了为什么来自笔1的最佳动作对笔3有一些成功。在这些实验中,所有三支笔在视觉上是相同的,因此取决于SWIFT与物体的互动来寻找最佳的动作参数。在“完全优化(提议)”行中,发现为每个物体优化(s, d, g)的成功率为所有笔的10/10。使用完全优化对笔2的成功率高于不优化抓握的成功率,也表明有能力搜索抓握位置可以寻找更稳健的旋转动作。

最后,实验还测试了SWIFT应用于两个其他物体:刷子和螺丝刀。图 7显示了这些泛化实验的结果。SWIFT分别实现了刷子和螺丝刀的10/10和5/10的成功率。螺丝刀由于其不规则的形状特别具有挑战性。然而,SWIFT优化的动作参数实现了成功的旋转,突出了SWIFT的多功能性。

论文链接:https://arxiv.org/pdf/2411.12734

项目链接:Soft Robotic Dynamic In-Hand Pen Spinning

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark实训

实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…

二叉树的深搜(不定期更新。。。。。)

二叉树的深搜 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉…

# 深入浅出 快速认识JAVA常用数据结构【栈, 队列, 链表, 数组】

快速认识JAVA常用数据结构【栈, 队列, 链表】 前言 什么是数据结构 一种用来存储和组织数据的方法,描述了数据之间的关系和操作方式。通过合理选择和使用数据结构,可以大幅提高程序的运行效率、存储效率以及代码可维护性。 数据结构的重要性 数据结构…

负载均衡OJ项目中遇到的问题

1、续行符问题 关于换行符 ,代码在使用了换行符后无法编译文件,也没有爆出任何错误,更没有按照我们的代码打印出如下类似内容 :[ERROR][compiler.hpp][66][1732635247]编译失败,没有形成可执行程序 随机排查才发现。 代码中的 \ …

android编译assets集成某文件太大更新导致git仓库变大

不知道大家有没有类似的困扰,你的工程assets文件过大,我曾经在某度车机地图团队工作过一段时间时候,每次发包会集成一个上百MB的文件。工作一段时间你的git仓库将会增加特别多。最后,你会发现你如果重新git clone这个仓库会非常大…

关闭windows11的“热门搜索”

win10搜索栏热门搜索怎么关闭?win10搜索栏热门搜索关闭方法分享_搜索_onecdll-GitCode 开源社区 注册表地址是:计算机\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\ 最后效果如下:

【数字电路与逻辑设计】实验五 4人表决器

文章总览:YuanDaiMa2048博客文章总览 【数字电路与逻辑设计】实验五 4人表决器 一、实验内容二、设计过程(一)设置变量(二)真值表(三)表达式 三、源代码(一)代码说明&…

Yeeco成长型一体化数智赋能平台:科技矩阵重塑企业数字生态

随着科技的飞速发展,我们正在步入一个被称为“数智化时代”的新时代。在这个时代中,数据处理和分析的能力被提升到一个前所未有的高度,而这种变化背后的重要推动力量就是各种新兴的技术趋势。 为了在激烈的市场竞争中脱颖而出,Yee…

PlantUML——类图

背景 类图是UML模型中的静态视图,其主要作用包括: 描述系统的结构化设计,显示出类、接口以及它们之间的静态结构和关系。简化对系统的理解,是系统分析与设计阶段的重要产物,也是系统编码和测试的重要模型依据。 在U…

LabVIEW热阻炉温度控制

在工业自动化和控制系统领域,温度的精确控制对于保障生产过程的稳定性和产品质量非常重要。热阻炉作为一个典型的受控对象,其温度控制系统的设计和实现涉及多个技术层面,包括硬件选择、控制策略的设计以及软件的实现。项目使用LabVIEW软件开发…

MongoDB在自动化设备上的应用示例

发现MongoDB特别适合自动化检测数据的存储。。。 例如一个晶圆检测项目&#xff0c;定义其数据结构如下 #pragma once #include <vector> #include <QString> #include <QRectF> #include <string> #include <memory>class tpoWafer; class tp…

day04-产品原型-学习计划

1. 分析整体业务流程 2. 提交学习记录-接口 2.1 需求 在课程学习页面播放视频时或考试后&#xff0c;需要提交学习记录到服务器保存&#xff0c;如用户播放视频的进度、学过的章节等。 2.1 接口详情 请求方式&#xff1a;POST 请求路径&#xff1a;/learning-record 请求…

基于Matlab的卷积神经网络(CNN)苹果分级检测系统

本研究提出了一种基于卷积神经网络&#xff08;CNN&#xff09;的自动化苹果分级系统&#xff0c;该系统根据苹果的视觉特征进行分类。系统采用了预训练的深度学习模型&#xff0c;使用包含不同等级苹果的图像数据集进行训练。研究方法包括图像预处理、特征提取和苹果等级分类。…

MySQL内置函数学习

引言 MySQL内置函数是MySQL数据库系统提供的预定义函数&#xff0c;用于执行特定的操作&#xff0c;如数学计算、字符串处理、日期和时间操作等。这些函数极大地简化了SQL语句的编写&#xff0c;提高了数据库操作的效率。 MySQL内置函数分类 MySQL内置函数可以大致分为以下几…

小程序入门学习(四)之全局配置

一、 全局配置文件及常用的配置项 小程序根目录下的 app.json 文件是小程序的全局配置文件。常用的配置项如下&#xff1a; pages&#xff1a;记录当前小程序所有页面的存放路径 window&#xff1a;全局设置小程序窗口的外观 tabBar&#xff1a;设置小程序底部的 tabBar 效…

【Web】AlpacaHack Round 7 (Web) 题解

Treasure Hunt flag在md5值拼接flagtxt的文件里&#xff0c;如 d/4/1/d/8/c/d/9/8/f/0/0/b/2/0/4/e/9/8/0/0/9/9/8/e/c/f/8/4/2/7/e/f/l/a/g/t/x/t 访问已经存在的目录状态码是301 访问不存在的目录状态码是404 基于此差异可以写爆破脚本 这段waf可以用url编码绕过 做个lab …

android studio 读写文件操作(应用场景三)

android studio版本&#xff1a;2023.3.1 patch2 例程&#xff1a;filesaveandread 其实我写这个都是我记录我要做后个数独小游戏&#xff0c;每一个都是为了解决一个问题。即是分享也是备忘&#xff0c;反正我什么都不会&#xff0c;就是一顿瞎改&#xff0c;不行就研究。这…

c++:timer

1.设置休眠时间sleep_for 添加头文件 #include <thread> #include <iostream> #include <chrono> #include <thread>int main(int argc, char const *argv[]) {// 休眠2秒std::this_thread::sleep_for(std::chrono::seconds(2));// 休眠500毫秒std:…

【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…