当前位置: 首页 > news >正文

灵巧手——faive_gym

Getting the Ball Rolling: Learning a Dexterous Policy for a Biomimetic Tendon-Driven Hand with Rolling Contact Joints

  • 论文
    • 一、研究背景与动机
    • 二、Faive Hand 硬件设计
    • 三、仿真与训练框架
    • 四、实验结果
    • 五、局限性与未来工作
    • 六、总结
  • 代码
    • 安装
  • Training the policy
  • Relevant repositories
  • Software structure of IsaacGymEnvs
  • isaac-gym 和 IsaacGymEnvs
    • ​​1. Isaac Gym​​
    • 2. IsaacGymEnvs​​
    • 关键对比​​
    • ​​选择建议​​
    • 协同使用​​
    • 总结​​

for a Biomimetic Tendon-Driven Hand with Rolling Contact Joints)

project
github
paper(2024)

论文

这篇题为《Getting the Ball Rolling: Learning a Dexterous Policy for a Biomimetic Tendon-Driven Hand with Rolling Contact Joints》的论文,由苏黎世联邦理工学院(ETH Zurich)等机构的研究者合作完成,主要介绍了一种名为“Faive Hand”的仿生灵巧手机器人平台,并展示了如何通过强化学习(RL)训练控制策略,实现零样本(zero-shot)从仿真到实物的技能迁移。以下是主要内容总结:

一、研究背景与动机

  • 目标​​:开发能够执行人类水平灵巧操作任务的通用机器人手平台。
  • 现状​​:传统模型控制方法难以处理多指协调和复杂接触状态,而基于强化学习的方法(如OpenAI的Shadow Hand实验)虽取得突破,但训练成本高、硬件平台昂贵(如Shadow Hand售价约11万英镑),限制了研究的普及。
  • ​​本文贡献​​:提出低成本、易制造的​​Faive Hand​​,结合GPU并行仿真(IsaacGym)训练控制策略,实现实物上的灵巧操作任务(如球体旋转)。

二、Faive Hand 硬件设计

  • 仿生结构​​:采用​​肌腱驱动​​和​​滚动接触关节​​(rolling contact joints),模拟人类手指的解剖结构(如DIP、PIP、MCP关节)。

    • 关节由两个弧形接触面和交叉韧带构成(类似“Jacob’s ladder”玩具),具有抗冲击、低摩擦、大运动范围等优点。
    • 所有关节(除拇指CMC关节外)均采用滚动接触设计,通过3D打印制造,总重仅1.1kg,却能承受10kg负载(见图3)。
  • 驱动与传感​​:

    • 使用16个Dynamixel伺服电机控制肌腱,远端关节(DIP/PIP)通过耦合肌腱联动,近端关节(MCP)采用拮抗驱动。
    • ​关键挑战​​:滚动关节无固定旋转轴,无法直接使用编码器。通过几何模型计算肌腱长度与关节角度的映射函数 l=f(q),并采用​​扩展卡尔曼滤波(EKF)​​ 从电机角度估计关节状态。

三、仿真与训练框架

  • 仿真建模​​:在IsaacGym中构建Faive Hand模型,将滚动关节模拟为两个虚拟铰链关节的耦合运动(通过MuJoCo的肌腱约束实现)。

  • 训练流程​​:

    • 并行仿真​​:在单块NVIDIA A10G GPU上并行运行4096个环境,训练时间约1小时。
    • 算法​​:使用PPO(近端策略优化)和A2C(优势演员-评论家)框架,演员与评论家网络采用不对称观测(演员仅使用本体感知数据,评论家使用特权信息)。
    • ​任务设定​​:训练策略使手部旋转球体,目标为绕y轴达到特定角速度(-3至-1 rad/s或反向)。
  • ​​观测与动作空间​​:

    • 演员观测​​:仅包含关节位置历史(隐式包含速度),无需物体位姿信息,降低sim2real难度。
    • ​动作​​:输出关节角度的增量指令,通过低层控制器转换为电机指令。
  • 域随机化(DR)​​:对物理参数(如肌腱刚度、摩擦、物体质量等)进行随机化,提升策略的鲁棒性。

四、实验结果

  • ​​仿真训练​​:策略在10分钟内快速提升性能,30分钟后趋于稳定(见图5)。无DR的策略在仿真中表现更优,但有DR的策略在实物转移中更鲁棒。
  • 实物验证​​:
    • 策略选择​​:不同随机种子的策略性能差异显著,需筛选最佳策略。
    • ​改进措施​​:将关节观测值缩放0.5以补偿肌腱形变带来的估计误差。
    • 性能评估​​:通过内置IMU的球体测量旋转角速度,结果显示:
      • 无DR的策略在实物上仅能轻微晃动球体;
      • 有DR的策略能稳定实现目标旋转速度​​(见图6),反向旋转任务同样成功。

五、局限性与未来工作

  • ​​当前局限​​:
    • 仅能实现单轴球体旋转,更复杂的任务(如立方体重定向)因关节传感精度不足、sim2real差距而失败。
    • 手指缺乏外展/内收关节,限制多轴旋转能力。
  • 未来方向​​:
    • 增加关节传感器(如角度编码器)提升状态估计精度;
    • 改进系统辨识以缩小仿真与实物差距;
    • 扩展任务类型与硬件功能。

六、总结

本研究通过​​仿生硬件设计​​(Faive Hand)、​​滚动关节的仿真建模​​、以及​​高效的RL训练框架​​,实现了灵巧操作任务的零样本实物迁移,为低成本、高性能的仿人手机器人研究提供了可行路径。

代码

安装

Training the policy

import subprocess
# the command that will be kept the same for all runs
base_command = "python train.py task=FaiveHandP0_sphere wandb_activate=True wandb_entity=your_entity_name wandb_project=your_project_name capture_video=True force_render=False"
# create a for loop iterating through each condition you want to compare
# for example, try comparing relative control and absolute control
for rel_ctrl in [True, False]:# some name to distinguish runs in W&Bwandb_name = f"relctrl_{rel_ctrl}"command = f"{base_command} task.env.use_relative_control={rel_ctrl} wandb_name={wandb_name}"	print(command)subprocess.run(command, shell=True)# get the saved policy with the latest timestamplatest_file = subprocess.check_output(["ls", "-t", "runs/FaiveHand/nn/"]).decode("utf-8").split('\n')[0]# save the final trained weights so that it can be tested latersubprocess.run(f"cp runs/FaiveHand/nn/{latest_file} {wandb_name}.pth", shell=True)

Relevant repositories

  • faive_gym_oss
    RL environment for Faive Hand

  • faive-integration

    • Closed source SRL repo for low level control of the hand
    • Low-level controller for the hand
      • Dynamixel servo controller
      • Joint-level controller
      • etc
    • Simple controller for the hand
      • Teleoperation with Leap Motion
      • GUI for joint angle control
      • etc
    • MuJoCo model
  • isaac-gym

    • GPU-based physics simulation environment
    • Closed-source, must register to download the library (or download here isaacgym.zip )
    • Just for simulation, does NOT do reinforcement learning
    • The documentation is not online, but included in the downloaded files in docs/index.html
    • If there are issues, searching / asking in forum may be helpful: Latest Isaac Gym topics - NVIDIA Developer Forums
  • IsaacGymEnvs

    • RL environments for Isaac Gym, depends on isaac-gym being installed
    • The RL algorithm itself depends on rl_games
    • If there are issues, searching / asking in Issues may be helpful: Issues · NVIDIA-Omniverse/IsaacGymEnvs · GitHub
  • rl_games

    • “High performance RL library”
    • IsaacGymEnvs uses this for the RL algorithm (uses PPO), is pip installed during IsaacGymEnv installation
    • Quite messy to read through- at SRL we made a pared down version of it that still works for the base FaiveHandP0 example- https://github.com/srl-ethz/srl_games/
    • Has fun little comments like #TODO: Refactor this ugliest code of they year

Software structure of IsaacGymEnvs

请添加图片描述

isaac-gym 和 IsaacGymEnvs

Isaac Gym 和 IsaacGymEnvs 是 NVIDIA 提供的两个相关但不同的工具,用于机器人强化学习(RL)和物理仿真。以下是它们的对比分析:

​​1. Isaac Gym​​

  • 定位​​
    • 核心功能​​:基于 GPU 的高性能物理仿真引擎,专为并行 RL 训练优化。
    • 底层技术​​:基于 PhysX,支持大规模并行仿真(数千环境同步运行)。
    • 主要用户​​:需要自定义环境或底层控制的研究者/开发者。
  • 特点​​
    • 低层级 API​​:
      • 直接控制仿真参数(刚体、关节、传感器等)。
      • 需手动实现 RL 环境逻辑(如观测、奖励、重置)。
    • 高性能​​:
      • 支持在单 GPU 上运行数万环境实例。
      • 仿真速度远超传统 CPU 仿真器(如 PyBullet、MuJoCo)。
    • 灵活性​​:
      • 可自由定义机器人、物体和任务。
      • 支持自定义观测空间和奖励函数。
  • 典型用例​​
    • 开发全新的机器人任务(如自定义抓取、行走)。
    • 需要极致性能的大规模并行训练。
    • 研究底层物理交互(如接触力学、摩擦模型)。

2. IsaacGymEnvs​​

  • 定位​​
    • 核心功能​​:基于 Isaac Gym 的预构建 RL 环境库,开箱即用。
    • ​设计目标​​:简化 RL 训练流程,提供标准化基准任务。
    • 主要用户​​:希望快速实验 RL 算法的研究者。
  • 特点​​
    • 高层级 API​​:
      • 封装了常见任务(如四足行走、机械臂操作)。
      • 提供标准化的观测空间、动作空间和奖励函数。
    • 集成工具​​:
      • 内置 PPO 等算法实现(通过 RSLRL 库)。
      • 支持自动域随机化(ADR)和课程学习。
    • 易用性​​:
      • 无需手动实现物理仿真逻辑。
      • 配置文件驱动(YAML),参数可灵活调整。
  • ​​典型用例​​
    • 快速测试 RL 算法在机器人任务上的性能。
  • 复现论文结果(如 DeXtreme 灵巧操作实验)。
  • 教学或原型开发。
    ​​

关键对比​​

​​维度​​​​Isaac Gym​​IsaacGymEnvs
​​
抽象层级​​底层(物理引擎接口)高层(预构建 RL 环境)
​​使用难度​​高(需编码实现环境逻辑)低(配置 YAML 文件即可运行)
​​灵活性​​极高(完全自定义)中等(限于预定义任务)
​​性能​​极致优化(原生 GPU 并行)同 Isaac Gym,但额外有环境封装开销
​​适用场景​​研究新任务/机器人算法对比、基准测试
​​是否依赖第三方 RL 库​​否(可搭配任何 RL 库)内置 RSLRL(基于 PyTorch)

​​选择建议​​

  1. 选 Isaac Gym 如果​​
  • 需要实现非标准任务(如新型机器人或复杂奖励函数)。
  • 希望完全控制仿真细节(如传感器噪声、随机化策略)。
  • 追求最大性能(直接操作底层 API 减少开销)。
  1. 选 IsaacGymEnvs 如果​​:
  • 想快速验证算法在标准任务(如四足行走、手部操作)上的表现。
  • 不关心底层物理实现,专注 RL 算法开发。
  • 需要开箱即用的 ADR 或课程学习支持。

协同使用​​

  • 混合模式​​:用 IsaacGymEnvs 的环境作为起点,通过继承修改观测/奖励(如 AllegroHandDextreme任务)。
  • 扩展性​​:在 IsaacGymEnvs 中添加自定义任务时,仍需依赖 Isaac Gym 的底层 API(如创建新刚体或关节)。

总结​​

  • Isaac Gym 是“引擎”​​,提供物理仿真和并行化能力。
  • IsaacGymEnvs 是“工具包”​​,提供现成环境和算法实现。
  • 两者互补:IsaacGymEnvs 简化了 Isaac Gym 的使用,但后者仍是自定义需求的终极解决方案。
http://www.dtcms.com/a/525315.html

相关文章:

  • 亚马逊电子配件类目流量瓶颈突破:DeepBI智能优化策略助力流量增长
  • 桂市做网站的朋友自建电商网站有哪些
  • autoware源码编译
  • react nextjs 项目部署
  • 怎样建设网站 需要哪些条件免费的免抠图素材网站
  • FPGA学习笔记——用Vitis IDE生成工程(串口发送)
  • 烟台 o2o平台带动做网站行业平潭综合实验区交通与建设网站
  • GaussianShader
  • 昆山企业做网站好用的网站系统
  • javaScript事件委托
  • 广州营销型网站建设哪家好公司域名怎么起
  • 28.C++的IO流
  • 车载基础软件——基础软件验证平台典型案例(通信相关)
  • 【FPGA】设计流程——板级验证
  • 1Panel-1Panel中openresty网站目录更改为宿主机共享目录
  • 分支和循环语句
  • 自己做网站买株洲平台公司有几家
  • 2.2softmax回归
  • EtherCAT转PROFINET网关在饲料厂自动化系统整合中的关键作用
  • 公司网站建设泉州福田住房和建设局官网
  • 2018建设网站企业网站页脚信息
  • 【Frida Android】基础篇12:Native层hook基础——调用原生函数
  • gitlab上传新仓库,保留原仓库提交记录,原仓库远程地址已经失效,只有本机还有提交记录
  • wordpress最新文章加图标怎么做好网站搜索引擎优化
  • 操作系统 | Linux:第四章 Linux的实用操作
  • 数学概念 复习自用
  • 深圳做h5网站制作ui设计培训是什么
  • 第八章 惊喜18 高绩效辅导之二
  • 22-STM32F103C8T6的WS2812B驱动
  • 做编程网站沈阳做企业网站的