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

开源Tacchi 视触觉传感器仿真器,为机器人与物体接触仿真提供高质量的Sim2Real性能!

Tacchi是一个基于Taichi编程语言开发的低计算成本弹性体形变仿真器,由方斌教授团队开发并已开源,为机器人与物体接触仿真提供高质量的Sim2Real性能!该仿真器以较低的计算资源消耗来模拟弹性体的物理形变,并生成与真实触觉图像相似的仿真图像。Tacchi通过粒子系统实现表面形变模拟,能够生成带有表面纹理的触觉图像。
在这里插入图片描述

1、功能特点低计算成本:相较于传统的有限元方法(FEM),Tacchi使用了材料点法(MPM),使计算量显著降低。高质量的触觉图像生成:通过粒子表面形变和光照模型,生成带有表面纹理的触觉图像,提高了Sim2Real精度。与机器人仿真器的集成:支持与Gazebo和MuJoCo等机器人仿真器连接,使得触觉传感器可以与机器人系统的其他组件协调工作。2、安装步骤安装Taichi:确保安装了Taichi编程环境,运行以下命令完成安装:pip install
taichi下载Tacchi代码:从GitHub仓库下载Tacchi项目:https://github.com/zixichen007115/Tacchi.git检查GPU支持:建议使用支持CUDA的GPU来加速仿真。3、核心概念Tacchi的仿真基于材料点方法(MPM),以粒子系统模拟弹性体的形变。Tacchi使用以下几个模块:弹性体仿真:通过粒子表示弹性体,将粒子状态(位置、速度等)传递到网格节点以模拟物理交互。触觉图像生成:基于生成的深度图,通过光照渲染生成带有真实感的触觉图像。机器人仿真器集成:支持通过Gazebo或MuJoCo连接,仿真器控制对象的运动,Tacchi获取对象位置和速度生成触觉反馈。4、使用步骤1)初始化设置粒子和网格初始化:将弹性体和接触对象(如压头)初始化为粒子系统,每个粒子表示弹性体的一部分。根据实际需求调整粒子密度和网格密度,保证仿真精度。材料属性配置:设置弹性体的材料属性,例如弹性模量(如1.45×10^5)和泊松比(如0.45),以匹配实际材料特性。 网格设置:Tacchi通过网格节点与粒子系统的交互实现仿真,因此选择合适的网格密度非常重要。通常应保证网格间距大于粒子间距,以避免粒子超出网格。2)弹性体形变模拟Tacchi使用材料点法(MPM)来模拟弹性体的接触形变过程:粒子到网格传递:粒子的位置、速度和质量信息传递给附近的网格节点,形成网格节点的质量和动量。网格节点的物理计算:Tacchi使用物理方程计算弹性体形变,并将作用力分配到每个粒子上。网格到粒子传递:根据计算出的网格状态,粒子更新其运动状态,包括速度和位置。粒子运动更新:Tacchi每个时间步更新粒子的位置,用于生成新的表面形变信息。3)触觉图像生成Tacchi提供了基于表面形变生成触觉图像的功能:深度图生成:使用2D插值方法,将离散粒子的表面形变信息转化为连续的深度图。图像裁剪:根据光学传感器(如Gelsight)的视场限制对深度图进行裁剪,使其与实际传感器图像尺寸匹配。光照渲染:采用Phong光照模型对深度图进行渲染,生成最终的触觉图像,图像中包含表面缺陷和细节纹理。4)与机器人仿真器集成Tacchi支持与Gazebo和MuJoCo等机器人仿真器进行集成,使得触觉传感器仿真可以与机器人运动同步进行。加载模型:在仿真器中加载对象和传感器模型,使其可以与环境交互。实时数据交换:从仿真器中获取传感器和对象的位置、速度信息,并将其传递给Tacchi,生成相应的触觉反馈。设置终止条件:可在仿真器中设定条件(如对象达到指定深度),满足条件后自动结束仿真。5、运行指南1)STL/PLY/PCD格式转换(0_stl2npy)此模块提供了将几何文件转换为Numpy格式的工具,便于加载并用于仿真:STL转PLY:stl2ply.pyPLY转PCD:ply2pcd.pyPCD转Numpy:pcd2npy.py注意:obj_1、obj_10和obj_100子目录包含预先转换的.npy文件,表示不同粒子密度下的几何对象模型。2)Gazebo和MuJoCo连接仿真(1_connection_simulation)该模块包含Gazebo和MuJoCo两种环境下的机器人仿真配置,具体包括触觉传感器和物体的模型、控制脚本和数据采集工具。Gazebo 连接仿真:可以通过修改fdm_printer_description和gelsight_description 文件夹下的模型文件定义机器人或传感器的外观和控制参数。MuJoCo连接仿真:进入1_connection_simulation/MuJoCo目录,运行press.py文件启动触觉仿真。xmls文件夹中包含MuJoCo的模型配置XML文件,通过修改XML文件可配置不同形状的接触物体。3)触觉图像生成(2_Tacchi_image_generation)该模块包含生成触觉图像的代码,基于弹性体表面形变模拟生成深度图和触觉图像。·深度图生成:运行depth_generation.py生成深度图。·触觉图像生成:运行particle_to_depth.py,并使用gel_press.py生成相应的触觉图像数据。4)对齐和对比实验(3_align_and_comparison)此模块用于对齐仿真生成的触觉图像,以便与真实触觉图像进行对比。主要包括两个对齐方式:全局对齐和逐对象对齐,此步骤可以帮助提高 Sim2Real 任务中图像的匹配度。·全局对齐:align_globally.py·逐对象对齐:align_per_object.py5)AA21 数据生成(4_AA21)此模块包含生成AA21数据集的代码,用于为Sim2Real任务提供训练数据。运行后会在指定输出路径生成图像数据。可以通过修改代码中的路径参数更改存储位置。6)Sim2Real 实验与训练(5_Sim2Real)该模块包含Sim2Real数据训练代码,利用ResNet-18模型进行图像识别训练,提高仿真图像的真实感和分类效果。·main.py:执行Sim2Real任务的主程序,使用ResNet-18进行分类训练。·solver.py:定义训练过程的超参数优化和求解方案。训练数据和模型参数可在main.py中配置。训练完成后,可以在指定目录查看生成的模型和日志文件。6、参数设置根据仿真需求,可以对Tacchi的参数进行优化设置:粒子密度:适当的粒子密度可以提升表面模拟精度,但过高的粒子密度会增加计算量。网格密度:网格密度决定了模拟的精确程度,应适当权衡仿真质量和速度。表面粗糙度模拟:通过减少粒子数量或调整粒子分布密度来模拟对象的表面纹理,从而提升Sim2Real性能。
7、应用示例Tacchi 可应用于多种机器人仿真任务,包括:a.机器人抓取仿真:Tacchi能生成带有缺陷的触觉图像,使机器人抓取任务中的物体识别更加接近真实情况。b.传感器标记跟踪:可以模拟光学传感器内的标记,通过粒子来表示标记位置并跟踪其运动。c. 滑动和旋转摩擦:未来可以拓展Tacchi以支持表面摩擦移动,以模拟在滑动和旋转接触下的真实摩擦效果。8、性能评估与FEM相比,Tacchi 在低计算资源情况下即可生成高质量触觉图像。Tacchi仅需1GB的GPU内存即可运行,而FEM通常需要高性能集群。实验结果表明Tacchi能在Sim2Real任务中取得更高精度的触觉图像生成效果,并在图像质量(SSIM、PSNR和MAE)上具有显著优势。


http://www.kler.cn/a/404777.html

相关文章:

  • @RequestBody、@Data、@Validated、@Pattern(regexp=“?“)(复习)
  • 【QT】绘图
  • 【智谱清言-注册_登录安全分析报告】
  • NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标
  • 面试小结(一)
  • .gitignore模板
  • 241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]
  • leetcode-18-四数之和
  • 【PDFBox】-初识
  • Java八股-MyBatis延迟加载
  • 提交git仓库时,如何关闭lint校验
  • 数据结构 (1)基本概念和术语
  • Easyexcel(4-模板文件)
  • 【QT - 1 - 】什么是QT?
  • LeetCode —— 字母异位词分组
  • Linux 定时任务全解析
  • Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系
  • 【docker】docker commit 命令 将当前容器的状态保存为一个新的镜像
  • RK3588开发笔记-sata概率性不能识别问题解决
  • 05_Spring JdbcTemplate
  • 【软件开发】如何理解异地多活?
  • 网络安全的学习路线
  • mysql安装---rpm包
  • Flutter-Web首次加载时添加动画
  • [STM32]从零开始的STM32 HAL库环境搭建
  • NuGet如何支持HTTP源