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

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

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

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

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

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

02

方法介绍

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

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

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

在这里插入图片描述

03

实验结果

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

04

总 结

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

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



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

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

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 基本结构