【20250101】Nature正刊:纯仿真强化学习得到外骨骼机器人的自适应控制策略

基本信息 

论文标题:Experiment-free exoskeleton assistance via learning in simulation

发表期刊:Nature

发表时间:2024年6月12日

访问链接 

论文:https://www.nature.com/articles/s41586-024-07382-4?fromPaywallRec=true

代码:https://github.com/IntelligentRobotLearning/pseudocode_learning_in_simulation

科学问题 

该论文针对助力型外骨骼机器人在户外复杂地形场景中的自适应控制方法研究,以实现以下3个目标:

  • 提高开发效率:通过在仿真中进行学习,避免传统方法中繁琐的数据采集及曲线拟合的方式;

  • 提高适应性和通用性:适应多种运动模式(步行、跑步和爬楼梯)并在模式之间平滑过渡;

  • 提高外骨骼的助力效果:通过对人体代谢率的测量,验证外骨骼在三种运动模式下的助力效果。

核心思路 

1. 数据驱动的动态感知方法

利用人体运动捕捉数据和肌肉骨骼模型,构建了一个能够模拟人类运动和肌肉激活的仿真环境。通过将物理模型融入强化学习过程,提高仿真的精度和训练数据的效率,使得学习过程更加高效和真实。

656af714b7ee21e24a60193058a10de4.png
img

2. 引入强化学习框架

提出了3个相互关联的多层感知器神经网络(模拟运动神经网络、肌肉协调神经网络和外骨骼控制神经网络),分别用于模仿人类运动、协调肌肉活动和控制外骨骼。

通过在仿真中进行数百万次的迭代训练,这些神经网络能够学到有效的控制策略,并在不同运动模式下自动生成辅助力矩。

b2395a51a6345d06c3235e8174e692c7.png
img

3. 纯仿真环境的模型学习过程

提出了一种完全基于仿真学习的方法,不需要进行实际的人体实验,从而克服了传统方法中对大量人体实验的依赖。在仿真中进行学习的控制策略可以直接部署到实际的外骨骼设备上,并通过IMU传感器的数据进行实时控制,实现了仿真到现实的无缝迁移。

f6bfffac733e7eb0d0e97813208ec4ce.png
img

实验结果 

1. 实验仿真环境

人体肌肉骨骼模型:模型具有50个自由度和208个骨骼肌,能够模拟人体在不同运动状态下的生物力学反应。

外骨骼机器人模型:模型包括外骨骼的机械结构和动力学特性,能够模拟外骨骼在辅助人体运动时的行为。

0902bec97447731832a0c787b917a091.png
img

经过8小时都纯仿真学习(单机,RTX3090, NVIDIA),算法可以成功收敛,完全不需要在真实场景中进行模型的参数学习。

2. 在真机上的最终验证

外骨骼设备:髋关节助力型外骨骼机器人,重量约为3.2kg,能够产生最大18N·m的扭矩。

IMU传感器:在每条腿上安装一个九轴惯性测量单元(IMU)传感器(LPMS-B2, LP-Research)

67657e590f5beee9f463bf946402a5e4.png
img

在实验结果分析中,相比于其他方法,本论文提出的算法的最大特点是不需要对模型进行预训练,且所有的训练过程都是在仿真环境中完成的。

最终学习得到的模型也可以直接迁移到真实的外骨骼机器人上,并在户外的多种场景中进行步行、跑步、上下楼梯等场景测试。

4b7192ea69b96816f82fa58e57b44a29.png
img

实验展示视频如下:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【从零开始】11. LLaMA-Factory 微调 Qwen 模型(番外篇)

书接上回,在完成了 RAGChecker 测试后,离 RAG 应用真正发布还差最后一步 - 基础信息指令微调。考虑到模型还是需要具备一定程度的“自我认知”,因此需要将公司信息“嵌入”到模型里面的。为此,我选择了 LLaMA-Factory(…

PowerShell 信息,请参阅 https......_Execution_Policies

文章目录 1. 问题分析2. 检查当前执行策略3. 解决方案:更改执行策略4. 若问题依然存在5. 注意事项 信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about _Execution_Policies。 所在位置 行:1 字符: 3. D:\Users\Documents\WindowsPo…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview(概览)1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories(仓库)1 libusb_stm322 savedata3 Fi…

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…

青少年编程与数学 02-006 前端开发框架VUE 01课题、VUE简介

青少年编程与数学 02-006 前端开发框架VUE 01课题、VUE简介 一、前端开发一、前端框架二、Vue.js三、应用场景四、区别五、学习资源六、应用示例说明: 课题摘要:本文介绍了前端开发框架Vue.js的基本概念和特性。Vue.js是一个渐进式JavaScript框架,用于构…

STM32单片机芯片与内部57 SPI 数据手册 寄存器

目录 一、SPI寄存器 1、SPI控制寄存器 1(SPI_CR1)(I2S模式下不使用) 2、SPI控制寄存器 2(SPI_CR2) 3、SPI 状态寄存器(SPI_SR) 4、SPI 数据寄存器(SPI_DR) 5、SPI CRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用) 6、SPI Rx CRC寄存器(SPI_RXCRCR)(I2S模式下不…

QT-------------自定义插件和库

以下是一个使用 Qt 实现图表交互操作的示例,涵盖了自定义图表视图类、不同类型的柱状图和饼图等内容。 实现思路 自定义图表视图类:创建一个从 QChartView 派生的自定义类,用于处理图表的交互操作。主窗口设计初始化:在主窗口中…

【Python】闭包

闭包(Closure)是指一个函数记住了并可以访问它的词法作用域(lexical scope),即使这个函数在词法作用域之外执行。 闭包其实就是延伸了作用域的函数,包括被延伸函数主体中引用的非全局变量和局部变量。这些…

矩阵运算提速——玩转opencv::Mat

介绍:用Eigen或opencv::Mat进行矩阵的运算&#xff0c;比用cpp的vector或vector进行矩阵运算要快吗? 使用 Eigen 或 OpenCV 的 cv::Mat 进行矩阵运算通常比使用 std::vector<int> 或 std::vector<double> 更快。这主要有以下几个原因&#xff1a; 优化的底层实现…

FastDeploy部署paddlecls分类模型(windows)

目录 写在前面 总体步骤 C SDK编译库 方式1&#xff1a;编译安装 方式2&#xff1a;下载预编译库 准备模型、文件、代码和数据 模型文件类型 samples代码 待预测图像 使用 FastDeploy C SDK 将cpp源码编译为exe 编写cpp代码 cpp代码编译exe 运行可执行程序exe 将…

【第二部分--Python之基础】03 容器类型的数据

Python内置的数据类型如序列&#xff08;列表、元组等&#xff09;、集合和字典等可以容纳多项数据&#xff0c;我们称它们为容器类型的数据。 序列 序列&#xff08;sequence&#xff09;是一种可迭代的、元素有序的容器类型的数据。 序列包括列表&#xff08;list&#xff…

linux shell脚本 【分支结构case...in 、循环结构、函数】内附练习

1.思维导图 2.练习 1.定义一个find函数&#xff0c;查找ubuntu和root的gid 2.定义一个数组&#xff0c;写一个函数完成对数组的冒泡排序 bubble() {n${#arr[*]}for((i0;i<n-1;i));dofor((j0;j<n-1-i;j));doif ((arr[j]>arr[j1]));thentemp${arr[j]}arr[j]${arr[j1]}a…

基于SpringBoot和OAuth2,实现通过Github授权登录应用

基于SpringBoot和OAuth2&#xff0c;实现通过Github授权登录应用 文章目录 基于SpringBoot和OAuth2&#xff0c;实现通过Github授权登录应用0. 引言1. 创建Github应用2. 创建SpringBoot测试项目2.1 初始化项目2.2 设置配置文件信息2.3 创建Controller层2.4 创建Html页面 3. 启动…

从单点 Redis 到 1 主 2 从 3 哨兵的架构演进之路

一、前言 我们有个项目中用的 MySQL、Redis、ES、微服务都是单节点部署的&#xff0c;没有做集群模式部署&#xff0c;为了提高整体的可用性&#xff0c;对项目的部署架构进行了升级&#xff0c;支持高可用。 二、部署拓扑图 我们项目的测试环境 12 台服务器已经部署好了&am…

SQL 中的 EXISTS

我们先从 SQL 中最基础的 WHERE 子句开始。 比如下面这条 SQL 语句&#xff1a; 很显然&#xff0c;在执行这条 SQL 语句的时候&#xff0c;DBMS 会扫描 Student 表中的每一条记录&#xff0c;然后把符合 Sdept IS 这个条件的所有记录筛选出来&#xff0c;并放到结果集里面去…

大型概念模型:在句子表示空间中的语言建模

《Large Concept Models: Language Modeling in a Sentence Representation Space》这篇论文介绍了一种新的语言模型方法&#xff0c;它在句子表示空间中进行建模。该方法旨在改进传统语言模型的局限性&#xff0c;通过捕捉更高级别的语义信息来提高自然语言处理任务的表现。 模…

活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化

课程介绍 参加“Microsoft Power Platform 在线技术公开课&#xff1a;实现业务流程自动化”活动&#xff0c;了解如何更高效地开展业务。参加我们举办的本次免费培训活动&#xff0c;了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…

YK人工智能(三)——万字长文学会torch深度学习

2.1 张量 本节主要内容&#xff1a; 张量的简介PyTorch如何创建张量PyTorch中张量的操作PyTorch中张量的广播机制 2.1.1 简介 几何代数中定义的张量是基于向量和矩阵的推广&#xff0c;比如我们可以将标量视为零阶张量&#xff0c;矢量可以视为一阶张量&#xff0c;矩阵就是…

企业二要素如何用C#实现

一、什么是企业二要素&#xff1f; 企业二要素&#xff0c;通过输入统一社会信用代码、企业名称或统一社会信用代码、法人名称&#xff0c;验证两者是否匹配一致。 二、企业二要素适用哪些场景&#xff1f; 例如&#xff1a;信用与金融领域 1.信用评级&#xff1a;信用评级…

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计&#xff0c;具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发&#xff08;右边…