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

news/2024/11/22 10:03:37/

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.ppmy.cn/news/1549004.html

相关文章

同态加密技术与应用场景

【1】应用场景 同态加密(Homomorphic Encryption, HE)是一种加密技术,它允许直接对加密数据进行特定的操作,而不需要先将数据解密。这种特性使得同态加密在保护数据隐私的同时,还能支持数据的处理和分析,因…

Sourcetree登录GitLab账号

1. 在GitLab上创建个人访问令牌 在gitlab中点击右上角的头像图标,选择设置进入 Access Tokens(访问令牌) 页面填写令牌名称和到期时间,指定Scopes(范围)。一般选择read_repository和api点击 Create person…

如何在 Microsoft Edge 中设置代理: 快速而简单的方法

你知道在 Microsoft Edge 中设置代理可以大大提升浏览体验吗?无论您是想提高隐私保护、访问受地理位置限制的内容,还是想更高效地浏览网页,代理服务器都能改变一切。 本指南将介绍如何在 Microsoft Edge 中设置代理,解决常见的代…

一文了解钩子函数(Hook Functions)

钩子函数是一种允许在软件执行过程中插入自定义逻辑的机制。它为开发者提供了一种灵活的方式,在某些特定的生命周期阶段或事件发生时,执行用户定义的代码,而无需直接修改框架或系统的核心逻辑。 特性 动态扩展:通过钩子函数&am…

osgEarth+qt无法设置视点

一、问题 当我们使用的osgEarth和qt创建窗口时,利用setViewpoint()函数,没有反应。 二、解决方法 osg::ref_ptr<osgEarth::Util::EarthManipulator> em = dynamic_cast<osgEarth::Util::EarthManipulator<

Jenkins更换主题颜色+登录页面LOGO图片

默认主题和logo图片展示 默认主题黑色和白色。 默认LOGO图片 安装插件 Login ThemeMaterial Theme 系统管理–>插件管理–>Available plugins 搜不到Login Theme是因为我提前装好了 没有外网的可以参考这篇离线安装插件 验证插件并修改主题颜色 系统管理–>A…

大三学生面试经历(2)

继续昨天的内容&#xff0c;我面试的是一个Java实习岗&#xff0c;但是居然也问了我前端&#xff08;vue&#xff09;相关的问题 最大的感觉就是&#xff0c;现在真的越来越卷了&#xff0c;后端都把前端的东西卷完了&#xff0c;当时是线上面试&#xff0c;感觉答的不太好&…

中间件--laravel进阶篇

laravel版本11.31,这中间件只有3种,分别是全局中间件,路由中间件,控制器中间件。相比thinkphp8,少了一个应用中间件。 一、创建中间件 laravel创建中间件可以使用命令的方式创建,非常方便。比如php artisan make:middleware EnsureTokenIsValid。EnsureTokenIsValid是中间…