基于GS(Gaussian Splatting)的机器人Sim2Real2Sim仿真平台

项目地址:RoboGSim

背景简介

        已有的数据采集方法中,遥操作(下左)是数据质量高,但采集成本高、效率低下;传统仿真流程成本低(下右),但真实度(如纹理、物理)欠佳,质量低;为了兼顾成本效率和数据真实性质量,本工作提出RoboGSim(上图),它一个高效、低成本的仿真平台,具有高保真渲染能力。它通过新场景、新物体和新视角实现演示合成,从而促进Policy学习的数据扩展。此外,它能够执行闭环模拟仿真以便对不同policy模型进行安全、公平和现实的评估。兼具低成本、高真实度的优势。

方法介绍

RoboGSim由四个模块组成:Gaussian Reconstructor, Digital Twins Builder, Scene Composer, Interactive Engine,流程如下图所示:

Gaussian Reconstructor

        本方法采用3DGS方法重建静态场景,然后对机器人手臂的关节进行点云分割。随后,我们利用MDH动态模型控制对应于每个关节的点云,从而实现机器手臂的动态渲染。3DGS利用一组多视角图像作为输入,以实现高保真场景重建。其将场景表示为一组高斯分布,并利用可微分光栅化渲染方法来实现实时渲染,能获得非常逼真的渲染图像。

Digital Twins Builder

        通过 Real2Sim 布局对齐和 Sim2GS 稀疏关键点对齐可以数字化现实世界,使数字资产在现实、模拟和 GS 表现之间保持一致。

        3D Assets Generation: 现实世界的物体采用COLMAP+3DGS进行重建,网络上的物体则使用Wonder3D+GaussianEditor进行重建;

        Layout Alignment: 使用测量和几何的方法将重建3DGS场景与仿真器isaac-sim中的布局进行对齐

Scene Composer     

        场景编辑:基于相机和手臂之间的内外参,将场景转换到机械臂所在的坐标系;

        对象编辑:使用上述同样的方法将操作对象转换到机械臂坐标系。

Interactive Engine

        Synthesizer:使用引擎生成大量的训练轨迹,包括机械臂的运动和目标物体的轨迹。这些轨迹驱动3DGS生成大量的逼真模拟数据集,用于Policy学习。这些多样化的数据包括新颖视角的渲染、场景组合和物体替换。

        EvaluatorIsaac Sim 输出物体和机械臂的状态,GS据此进行渲染。渲染图像被送入Policy网络预测下一帧动作,该动作被传递给仿真系统进行运动学逆向解析、碰撞检测和其他物理交互。Isaac Sim再将解析出的六轴相对姿态发送给GS渲染器,后者将渲染结果作为反馈发送回策略网络。这作为预测下一动作的视觉反馈,整个过程不断迭代,直到任务完成。

实验验证:从数据合成验证到闭环仿真

Real2Sim Novel Pose Synthesis

该实验目标是验证Real2Sim重建的性能,特别关注机器人手臂运动的准确性和图像纹理的保真度。静态场景是使用来自GT第一帧的机器人手臂初始姿势重建的。从真实机器人手臂收集的轨迹被用作驱动力,我们采用运动控制进行新姿态的渲染。RoboGSim 实现了31.3 PSNR0.79SSIM的渲染性能,同时保证了10 FPS的实时效率。

Sim2Real Trajectory Replay

该实验中轨迹是通过Issac Sim收集的,然后该轨迹用于驱动GS渲染取可乐的场景,同一轨迹用于驱动真实机器抓取可乐罐。如上比较结果表明模拟policy与机械臂的实际物理行为之间存在强一致性,突显了本系统中Sim2Real转移的有效性。这些结果表明,我们的仿真能够可靠地模拟现实世界的动态,促进从仿真到现实世界的成功策略转移。

RoboGSim as Synthesizer

本实验是为了验证RoboGSim合成数据的有效性,在真实世界和RoboGSim环境中各采集了1000条数据,前者耗时40h,后者仅耗时4h,然后用来训练自研VLA,上表中展示了两者的成功率,从中可以看出,纯仿真数据训练后的VLA在真实环境中具有一定的成功率,具有明显效果。

RoboGSim as Evaluator

本实验主要探讨将RoboGSim作为Evaluator的有效性。给定经过训练的VLA,将其部署于真实世界的机器人和RoboGSim中,RoboGSim能够再现与真实世界相似结果。对于类似糟糕案例,也能够避免真实世界中存在的问题,如碰撞。因此, RoboGSim作为评估器为policy提供了一个公平、安全和高效的评估平台。

结论

基于3DGS和IsaacSim的Real2Sim2Real仿真能高效合成高质量数据,目前成功率虽不及实采数据,但因其成本低和效率高,合成大量数据后有望达到实采数据的成功率,为通用操作大模型验证了一条可行路径。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB部署模式

目录 单节点模式(Standalone) 副本集模式(Replica Set) 分片集群模式(Sharded Cluster) MongoDB有多种部署模式,可以根据业务需求选择适合的架构和部署方式。 单节点模式(Standa…

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞 1、 nacos2.x搭建 1,首先第一步查询下项目之间的版本对照,不然后期会…

npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported

vue 启动项目时,npm run serve 报下面的错: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…

Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)

redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…

算法-加油站问题

hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧! function canCompleteCircuit(gas, cost) {// 加油站的总数const n gas.length;// 记录总剩余油量,若总剩余油量小于 0,说明无法绕环…

【机器学习】深入探索SVM:支持向量机的原理与应用

目录 🍔 SVM引入 1.1什么是SVM? 1.2支持向量机分类 1.3 线性可分、线性和非线性的区分 🍔 小结 学习目标 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一个故事,故事是这样子的: 在很久以前的情人节&#xf…

pycharm 运行远程环境问题 Error:Failed to prepare environment.

问题排查 拿到更详细的报错信息: Help > Diagnostic Tools > Debug Log Settings section: 添加下面的配置 com.intellij.execution.configurations.GeneralCommandLine 重显报错,我这里是再次运行代码打开 Help | Collect Logs and Diagnosti…

一组开源、免费、Metro风格的 WPF UI 控件库

前言 今天大姚给大家分享一个开源、免费、Metro风格的 WPF UI 控件库:MahApps.Metro。 项目介绍 MahApps.Metro 是一个开源、免费、Metro风格的 WPF UI 控件库,提供了现代化、平滑和美观的控件和样式,帮助开发人员轻松创建具有现代感的 Win…

读写和解析简单的 nc 文件

NetCDF 文件格式在气象数据工程领域占据着举足轻重的地位,其结构灵活、强兼容性等优势使其成为该领域的一个标准。无论是从事学术研究还是工程实践,掌握这种数据格式变得越发重要。其次,我注意到目前社区中气象编程大多数课程都聚焦于某个特定…

Mac m1,m2,m3芯片使用nvm安装node14报错

使用nvm安装了node 12/16/18都没有问题,到14就报错了。第一次看到这个报错有点懵,查询资料发现是Mac芯片的问题。 Issue上提供了两个方案: 1、为了在arm64的Mac上安装node 14,需要使用Rosseta,可以通过以下命令安装 …

基于OpenCV实现的答题卡自动判卷系统

一、图像预处理 🌄 二、查找答题卡轮廓 📏 三、透视变换 🔄 四、判卷与评分 🎯 五、主函数 六、完整代码+测试图像集 总结 🌟 在这篇博客中,我将分享如何使用Python结合OpenCV库开发一个答题卡自动判卷系统。这个系统能够自动从扫描的答题卡中提取信…

Android AOP:aspectjx

加入引用 在整个项目的 build.gradle 中,添加 classpath "com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10" 可以看到测试demo的 gradle 版本是很低的。 基于 github 上的文档,可以看到原版只支持到 gradle 4.4 。后续需要使…

第84期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

MapReduce,Yarn,Spark理解与执行流程

MapReduce的API理解 Mapper 如果是单词计数:hello:1, hello:1, world:1 public void map(Object key, // 首字符偏移量Text value, // 文件的一行内容Context context) // Mapper端的上下文,…

如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt

文章目录 xps转txt方法一方法二 pdf转txt整页转txt提取pdf表格,并转为txt 总结另外参考XPS文件转换为TXT文件XPS文件转换为PDF文件PDF文件转换为TXT文件提取PDF表格并转为TXT示例代码(部分) 本文测试代码已上传,路径如下&#xff…

Day26-【13003】短文,什么是顺序表?顺序表和数组、内存地址的关系?顺序表的插入、删除操作如何实现?操作的时间复杂度是多少?

文章目录 第二节,线性表的顺序存储及实现概览什么是顺序表和链表?顺序存储的叫顺序表顺序表和数组还有内存地址的关系?顺序表的基本操作如何实现?1、插入操作如何实现?2、删除操作如何实现?3、赋值和查找操…

【含开题报告+文档+PPT+源码】基于SpringBoot的校园跑腿管理系统

开题报告 本文旨在探讨校园跑腿系统的设计与实现,通过深入研究与分析,实现了一套包含用户管理、发布跑腿单、跑腿抢单、跑腿单评论、在线留言以及用户在线充值等功能的综合性系统。该系统以提高校园内物品跑腿与配送效率为核心目标,为广大学…

zookeeper的介绍和简单使用

1 zookerper介绍 zookeeper是一个开源的分布式协调服务,由Apache软件基金会提供,主要用于解决分布式应用中的数据管理、状态同步和集群协调等问题。通过提供一个高性能、高可用的协调服务,帮助构建可靠的分布式系统。 Zookeeper的特点和功能…

二级 二维数组3

对角线之和 题目描述 输入一个矩阵&#xff0c;输出右上-左下对角线上的数字和 输入 输入1个整数N。(N<10)表示矩阵有n行n列 输出 对角线的和 样例 输入复制 4 1 2 3 4 2 3 4 5 4 5 6 7 1 2 3 4 输出复制 14 #include<iostream> using namespace std; int main() {i…

Java Web-Cookie与Session

会话跟踪技术 会话跟踪技术是一种在 Web 应用程序中跟踪用户会话状态的机制&#xff0c;它允许服务器在多个请求之间识别和关联属于同一用户的请求&#xff0c;以便在整个会话过程中保持用户相关的信息。以下是几种常见的会话跟踪技术&#xff1a; Cookie 概念&#xff1a;Cook…