IEEE Trans. On Robotics ​“受护理人员启发的双臂机器人穿衣”研究工作

开发能够协助穿衣的辅助机器人,可以极大地改善老年人和残疾人的生活。然而,大多数机器人穿衣策略只考虑使用单个机器人,这大大限制了穿衣辅助的性能。事实上,专业护理人员是通过双臂来完成这项任务的。受其启发,我们提出了一种双臂合作的机器人穿衣辅助方案。在该方案中,交互式机器人与人类手拉手,从而在穿衣过程中支持/引导人类,而穿衣机器人则执行穿衣任务。我们分析了一个影响穿衣的关键特征:肘部角度,并利用该特征为交互式机器人提出了一个最佳策略。为了更好地学习穿衣策略,我们定义了基于手臂姿势的穿衣坐标,然后使用模仿学习得到机器人穿衣策略。我们通过大量的机器人实验验证了交互式穿衣方案。

英国约克大学机器人学助理教授朱吉鸿在机器人领域顶刊IEEE Transactions on Robotics上发表题为”Do you need a hand – a bimanual robotics assistive dressing scheme”的工作,颠覆了传统使用一个机械臂进行辅助穿衣的框架,首次提出了双臂协作穿衣的概念。

传统的机械臂穿衣大多采取单机械臂方案:

通常需要假定手臂姿态是静态的,或者需要额外的传感器和算法来跟踪手臂姿态,

在穿衣过程中,人的手臂会悬在空中,这通常会很累,

对于某些初始手臂姿势,可能会失败/卡在肘部

鉴于以上局限性,并受到护理专家所采取的策略的启发,我们设计了一种双臂辅助穿衣框架:

无需额外的传感器即可跟踪手臂姿势,

为穿衣服的手臂提供支撑和引导力,

在顺应的同时拉伸人体手臂,以获得便于穿衣的姿势。

首先我们看看护理专家如何帮助人穿衣?
在这里插入图片描述

我们的双臂硬件实现:

在这里插入图片描述

整个算法框架包含3个主要部分:交互机器人控制器、姿势估计和穿衣动作生成器,如下同所示:

在这里插入图片描述

交互机器人控制器是通过分析不同手臂姿势下的穿衣行为来设计的,以方便穿衣。交互机器人控制器将人类手臂的初始姿势与当前的手部位置结合起来,为交互式机器人提供运动策略。姿态估算模块受益于人与机器人牵手,可进行实时姿态跟踪,该模块接收与拉伸控制器相同的输入,并输出估计的当前手臂姿态。 该模块不依赖任何外部传感器(包括视觉)。利用估计的姿势,我们定义了与姿势相关的穿衣坐标系,并将笛卡尔坐标中的机器人运动转换为穿衣坐标,以便从人类示范中学习穿衣动作生成器。采用 模仿学习的好处之一是,非机器人专业的人也可以对运动进行编程。通过定义的穿衣坐标系,可以对穿衣策略进行灵活编码,以适应不同的手臂长度。穿衣动作生成器的输入是估计姿势和当前穿衣机器人的位置。利用这些输入,它可以生成下一步的穿衣策略。

由于这是首次在为人类穿衣时使用这种双臂装置,因此所提议的框架存在两大局限性:

我们在文章中假设穿衣过程中肩部保持静止,这并不总是正确的,因为交互式机器人在伸展手臂时,肩部更有可能向前移动。向前移动的肩膀会随之增加手臂的长度(因为现在完全伸展后,手可以伸得更远)。长度的增加可能会导致手臂姿态估计方案无法解决,从而导致整个方案失败。

肘部角度被认为是影响穿衣的关键参数,然而,穿衣机器人和交互机器人之间并没有明确的协调算法,以确保穿衣机器人在穿过肘部时,交互机器人已经使肘部角度足够大,从而避免被卡住。

纯粹从算法方面解决第一个限制是很困难的,一种可能性是将逆运动学与基于视觉的跟踪相结合,以获得更精确的姿势估计。第二个限制更为棘手,为了使协调明确化,需要对不同肘部角度的穿衣情况进行全面分析,以确定肘部角度的边界条件,此外,还需要对人类一方进行假设(例如被动假设),以确保交互式机器人总能在穿衣手臂到达肘部之前成功地将人类手臂带入有利姿势。

未来工作的另一个可能方向是安全分析。我们没有明确分析整个系统的安全性。但是,对于辅助机器人来说,确保机器人辅助过程中的人类安全至关重要。

尽管存在上述局限性,但我们的研究是第一个考虑使用双臂进行交互式穿衣辅助的。该框架的灵感来自于护理专家,这使得该方案能够更好的为人所接受。它代表了穿衣任务思维模式的转变,即从“单机器人对单臂”设置转变为“双机器人对单臂”。

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

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

相关文章

【YOLO v5 v7 v8 小目标改进】Non-local 注意力实现非局部神经网络,解决长空间和时间数据依赖问题

Non-local 注意力实现非局部神经网络,解决长空间和时间数据依赖问题 提出背景长距离技术对比Non-local Block是怎么设计Non-local 神经网络效果 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 提出背景 论文:https://arxiv.org/pdf/1711.07971.pdf …

用 tensor-parallel 多卡并发推理大模型

利用 tensor-parallel 把模型训练与推理的 workload 平均分布到多块 GPU,一方面可以提高推理速度,另一方面 vram 的负载平衡也让复杂的 prompt 能被轻松处理。 import 相关的 libs: # torch version 2.0.0 import torch # tensor-parallel …

抽象类与抽象方法

文章目录 抽象类抽象类的特点 抽象方法抽象方法的特点 模板设计模式模板设计模式能解决的问题示例 #抽象类与抽象方法 抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类。 public abstract 类名{... }抽象类的特点 1)抽象类不能被实例化。 2&…

AOP(黑马学习笔记)

AOP基础 学习完spring的事务管理之后,接下来我们进入到AOP的学习。 AOP也是spring框架的第二大核心,我们先来学习AOP的基础。 在AOP基础这个阶段,我们首先介绍一下什么是AOP,再通过一个快速入门程序,让大家快速体验A…

JAVASE初认识

1.初认识其结构 1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。 2.类:类中带有一个或多个方法。方法必须在类的内部声明。 3.方法&#xff1…

vue3创建h5 项目使用rem做响应式的配置

第一步 安装依赖: npm install amfe-flexible -S npm install postcss-px2rem -S第二步 main.ts文件中导入 import "amfe-flexible/index.js";第三步 进行配置: vue3 项目中创建 postcss.cinfig.js文件,这里是基于设计稿是750px…

gRPC知识归档

文章目录 gRPC知识归档gRPC原理什么是gRPCgRPC的特性gRPC支持语言gRPC使用场景gRPC设计的动机和原则 数据封装和数据传输问题网络传输中的内容封装和数据体积问题JSONProtobuf(微服务之间的服务器调用,一般采用二进制序列化,比如protobuf&…

精读《React Hooks 最佳实践》

简介 React 16.8 于 2019.2 正式发布,这是一个能提升代码质量和开发效率的特性,笔者就抛砖引玉先列出一些实践点,希望得到大家进一步讨论。 然而需要理解的是,没有一个完美的最佳实践规范,对一个高效团队来说&#x…

【airtest】自动化入门教程(二)airtest操作

目录 一、touch 二、wait 三、swipe 四、exists 五、text 六、keyevent 七、snapshot 八、sleep 九、断言 9.1 assert_exists 9.2 assert_not_exists 9.3 assert_equal 9.4 assert_not_equal 前言:本文主要针对aritest部分的基础操作,aritest是一个跨平…

网络编程第二天

1.基于TCP的通信(面向连接的通信) 服务器代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.91" #define PORT 9999 int main(int argc, const char *argv[]) {//1、创建套接字int sfd-1;if((sfdsocket(AF_INET,SOCK_STREAM,0))-1){perror(…

LeetCode 76 最小覆盖字串

LeetCode 76 最小覆盖字串 在本篇博客中&#xff0c;我们将探讨LeetCode上的一道算法题目——“最小覆盖子串”。这道题的主要目标是找到字符串s中包含字符串t中所有字符的最小子串。 问题描述 给定字符串s和t&#xff0c;要求在字符串s中找到一个最小的子串&#xff0c;使得…

5.36 BCC工具之ucalls.py解读

一,工具简介 ucalls工具总结了包括Java、Perl、PHP、Python、Ruby、Tcl和Linux系统调用在内的各种高级语言中的方法调用。它显示最常调用方法的统计信息,以及这些方法的延迟(持续时间)。 通过系统调用支持,ucalls可以提供关于进程与系统交互的基本信息,包括系统调用计数…

ES系列之Logstash实战入门

概述 作为ELK技术栈一员&#xff0c;Logstash用于将数据采集到ES&#xff0c;通过简单配置就能把各种外部数据采集到索引中进行保存&#xff0c;可提高数据采集的效率。 原理 数据源提供的数据进入Logstash的管道后需要经过3个阶段&#xff1a; input&#xff1a;负责抽取数…

C#单向链表实现:在当前节点后插入新数据的方法Insert()

目录 一、涉及到的知识点 1.插入算法 2.示例中current 和 _current 的作用 3.current 和 _current 能否合并为一个变量 4.单向链表节点类的三个属性 &#xff08;1&#xff09;Next属性&#xff1a; &#xff08;2&#xff09; Value属性&#xff1a; &#xff08;3&am…

【ArcPy】批量读取文件夹excel中XY并转为点shp

示例展示 代码 只读取excel中含有XY字段的文件&#xff0c;并将矢量命名为excel文件名称。 import os import pandas as pd import arcpy folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder…

SpringCloud gateway限流无效,redis版本低的问题

在使用springCloud gateway的限流功能的时候&#xff0c;配置RedisRateLimiter限流无效&#xff0c;后来发现是Redis版本过低导致的问题&#xff0c;实测 Redis版本为3.0.504时限流无效&#xff0c;改用7.0.x版本的Redis后限流生效。查了资料发现很多人都遇见过这个问题&#x…

RedisTemplate 序列化成功,反序列化失败List, Set, Map失败

RedisTemplate 序列化成功&#xff0c;反序列化失败List, Set, Map失败 异常信息RedisTemplate配置异常原因错误代码示例解决方法 序列化成功&#xff0c;反序列化失败 异常信息 Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve ty…

小程序事件处理

事件处理 一个应用仅仅只有界面展示是不够的&#xff0c;还需要和用户做交互&#xff0c;例如&#xff1a;响应用户的点击、获取用户输入的值等等&#xff0c;在小程序里边&#xff0c;我们就通过编写 JS 脚本文件来处理用户的操作 1. 事件绑定和事件对象 小程序中绑定事件与…

React之组件定义和事件处理

一、组件的分类 在react中&#xff0c;组件分为函数组件和class组件&#xff0c;也就是无状态组件和有状态组件。 * 更过时候我们应该区别使用无状态组件&#xff0c;因为如果有状态组件会触发生命周期所对应的一些函数 * 一旦触发他生命周期的函数&#xff0c;它就会影响当前项…

如何设置从小程序跳转到其它小程序

​有的商家有多个小程序&#xff0c;希望能够通过一个小程序链接到所有其它小程序&#xff0c;用户可以通过点击跳转链接实现从一个小程序跳转到另一个小程序。要怎么才能实现这样的跳转呢。下面具体介绍。 1. 设置跳转。在小程序管理员后台->分类管理&#xff0c;添加一个…