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

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

软体机器人因其在安全互动方面的优势而备受关注,但在高速动态任务中却面临挑战。最近,卡内基梅隆大学机器人研究所的研究团队提出了一种名为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

相关推荐
@小匠1 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
山间小僧3 小时前
「AI学习笔记」RNN
机器学习·aigc·ai编程
网教盟人才服务平台4 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊5 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾5 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)5 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz5 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
GreenTea6 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
火山引擎开发者社区6 小时前
秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省
人工智能