SIGGRAPH 2022 | 筷子该怎么用? ——基于贝叶斯优化和强化学习的灵巧手握筷及控制方法

本文主要是介绍SIGGRAPH 2022 | 筷子该怎么用? ——基于贝叶斯优化和强化学习的灵巧手握筷及控制方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用仿生手灵巧地操作工具一直是计算机动画和机器人方向的一个长期具有挑战性的问题。工具使用的主要困难包括:手的高自由度;工具的欠驱动;以及手、工具和物体之间复杂的相互作用。操作的困难程度也取决于所涉及的工具类型。有些工具只需要牢牢地抓在手里,如锤子。有些工具需要用手来抓取和操纵,如剪刀。在本文中,我们考虑最具有挑战性的工具之一:筷子。

筷子是一双等长的棍子,这种简单的机械设计对控制任务带来了一些挑战。首先,手需要同时握住并操纵两根独立的棍子。其次,与剪刀之类的工具不同,筷子上没有明显的固定结构,以稳定手与工具的接触。最后,筷子与物体的接触位于筷子的前端,通常远离靠近筷子后端的筷子与手的接触点。另一方面,筷子的简单形式也确实使其具有多种功能,从而成为广泛使用的工具,而其使用方式也多种多样。据估计,世界上有33%的人口每天都在使用筷子,而每个人都可能有自己独特的使用筷子的方法。筷子可以被用来拿起和移动各种食物:米饭,肉,或面条。在机器人领域,已经开展的研究包括采用筷子来辅助进食,微操作,以及医疗手术等。

筷子的实用性和通用性得益于它简单的机械结构,但是同时使筷子的控制变得困难。在机器人领域,筷子通常被刚性地连接到自由度较低的机器臂上。在图形学领域中,我们的工作是第一篇关于使用筷子的研究,其代表的是更广泛的难以解决的多接触操纵和控制问题。受父母教孩子筷子技巧的启发,我们通过将其分解为两个子问题来解决这个具有挑战性的控制问题:如何正确地握住筷子?如何用筷子操纵物体?

几种握筷子的方法
在这里插入图片描述

02

方法介绍

如下图所示,我们通过结合深度强化学习和贝叶斯优化来优化特定样式的抓取姿势。贝叶斯优化是一种优化黑盒函数的方法,它可以利用少量采样点来优化计算昂贵的目标函数。在我们的方法中,针对每一种可能的抓取方式,我们利用贝叶斯优化计算最优的抓取姿势,从而让一只移动的虚拟手可以在物理模拟中牢牢抓住筷子,并实现一些基本的开合筷子的动作。
在这里插入图片描述

获得了握筷子的姿势之后,我们设计了一个两层控制系统来控制筷子夹着物体移动:首先对筷子的运动进行规划,然后通过深度强化学习方法训练基于物理的手部控制器。在运动规划过程中,我们训练了一个基于神经网络的抓取模型来估算抓取物体的最佳筷子配置,并根据物体的起始和目标位置,利用轨迹优化结合逆向运动学的方法生成无碰撞的筷子和手的运动轨迹。
在这里插入图片描述

之后所有规划好的参考轨迹和优化的抓握姿势被传递给强化学习系统,使用简单的跟踪奖励来训练底层的手部控制器。

在这里插入图片描述

03

实验结果

我们的贝叶斯优化方法可以根据输入的握持风格优化得到不同的抓握姿势。对于人手来说,去除明显不合理的方法,我们可以得到如下的17种不同的握持方法。
在这里插入图片描述

我们的动作控制器在确定了筷子握持姿势后可以控制手用筷子夹起物体,并挪到或扔到指定位置。

在这里插入图片描述

我们的算法框架可以控制各种形态的手去使用筷子,下面展示了一只两倍大的手和三指抓取器操作筷子进行夹取。

在这里插入图片描述

除了筷子以外,我们的算法可以训练手来操作其他物体,下面展示了手握毛笔写字和用镊子夹取物体。

在这里插入图片描述

更多细节与模拟结果可参见视频:

04

总 结

我们提出了一个基于物理仿真的学习和控制系统,可以控制手使用筷子进行物体操作。这个任务的挑战性在于它涉及到手、筷子和物体之间复杂的接触。算法的关键在于将任务拆分为两部分:通过贝叶斯优化获得符合既定风格的稳定握筷子姿势,和使用高层轨迹规划+底层动作控制的方法在给定握筷子姿势来完成物体的夹取和移动。我们的算法不需要动作捕捉数据,也有较高的动作质量和不错的鲁棒性。感兴趣的同学可以看我们的视频和文章来进一步了解我们的工作。

这篇关于SIGGRAPH 2022 | 筷子该怎么用? ——基于贝叶斯优化和强化学习的灵巧手握筷及控制方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508689

相关文章

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp