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

用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析

在机器人领域,让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距,特别是基于 RGB 图像的操作策略,从模拟转移到现实时总是状况百出。

今天咱们就来聊聊 SplatSim 框架,看看它是怎么解决这个难题的。

工作链接:https://splatsim.github.io/assets/splatsim_paper.pdf

一、研究背景——sim研究的困境

在机器人的发展进程里,把在模拟环境中训练的控制策略应用到现实世界,也就是 “Sim2Real” 问题,一直是个大挑战。虽说最近在这方面有了些进展,像机器人能在复杂地形行走、灵活操作物体等,但大多是靠深度、触觉这些感知方式实现的。为啥 RGB 图像在机器人学习里不受重视呢?要知道,RGB 图像能捕捉颜色、纹理这些重要视觉信息,而且获取方便,和人类的视觉感知很接近,在很多任务里都很关键,比如挑水果的时候,看颜色就能知道熟没熟。

image.png

可问题在于,机器人在模拟环境里看到的 RGB 图像,和现实世界中的差别太大了。这就好比模拟世界是个 “理想国”,现实世界却是 “真实战场”,两个世界的图像分布完全不同。这使得基于模拟 RGB 图像训练的策略,一到现实世界就 “水土不服”,根本没法正常发挥作用。所以,怎么缩小这个差距,让机器人能靠 RGB 图像在现实里好好干活,就成了科研人员急需攻克的难题。

二、SplatSim :用高斯溅射 “改造” 模拟世界

为了让机器人在现实中能更好地依赖 RGB 图像执行任务,SplatSim 框架带来了新的思路。它的核心就是用高斯溅射(Gaussian Splatting)技术来生成超逼真的模拟数据,让模拟世界更接近现实。

image.png

2.1 高斯溅射技术的神奇之处

高斯溅射是一种很厉害的渲染技术,它用 3D 高斯原语来描绘场景,能把复杂的几何形状展现得既高效又逼真。和其他类似技术比起来,它有个很大的优势,就是结构像点云一样清晰明确,操作起来特别方便。这种特性让机器人领域的研究者们看到了希望,不少人开始把它应用到各种机器人任务里。

2.2 SplatSim 框架的具体实现步骤

image.png

  1. 定义问题与坐标框架 在 SplatSim 里,要解决的问题就是用现实场景的高斯溅射表示SrealSreal​,在模拟器(像 PyBullet)里生成超真实的渲染图像IsimIsim,然后用这些图像来训练基于 RGB 的操作策略。为了把现实世界、模拟器和溅射点云之间的关系搞清楚,研究人员定义了好几个坐标框架。现实世界坐标框架FrealFreal​是基准,模拟器坐标框架FsimFsim​和现实世界机器人框架FrobotFrobot​都和它对齐,而溅射坐标框架FsplatFsplat​表示场景高斯溅射里机器人底座的框架,它们之间的转换靠特定的矩阵来完成。
  2. 构建机器人溅射模型 想要得到不同关节姿势下机器人的渲染图,得经过三步。首先,用迭代最近点(ICP)算法把机器人相关的 3D 高斯和模拟器里的真实点云对齐,算出转换矩阵TFrobertFsplatTFrobert​Fsplat​​ ,这一步就像是给机器人在模拟世界里找准位置。接着,利用机器人 CAD 模型提供的链接边界框,把 3D 高斯和各个链接对应起来,分割出每个链接的 3D 高斯SreallSreall​。最后,用机器人的正向运动学,结合 PyBullet 里的正向运动学例程,算出每个链接的变换TfklTfkl​ ,再通过一系列矩阵运算得到 3D 高斯的最终变换,这样就能渲染出不同姿势的机器人啦。
  3. 处理物体溅射模型 和机器人渲染类似,物体的 3D 高斯SobjkSobjk​也要用 ICP 算法和模拟的真实点云对齐,得到转换矩阵TFk−obj,simFk−obj,sialtTFk−obj,sim​Fk−obj,sialt​​。根据物体在场景中的位置ptkptk​和方向RtkRtk​,算出物体在原始模拟器框架Fk−obj,simFk−obj,sim​的变换Tfkk−objTfkk−obj​,再通过矩阵运算得到在SrealSreal​框架下的变换,用高斯溅射渲染框架就能渲染出物体在新位置和方向的样子。
  4. 攻克铰接物体的分割难题 像平行夹爪这样的铰接物体,用普通的边界框分割可不行,因为它们的链接和标准轴对不上。这时候,研究人员训练了一个基于 K 近邻(KNN)的分类器,用模拟器点云的真实标签来训练。这样,就能准确判断对齐后的溅射里每个 3D 高斯属于哪个链接,解决了铰接物体的分割难题。
  5. 渲染模拟轨迹与训练策略 有了单个刚体的渲染能力,就可以用它来精确表示模拟轨迹了。把基于状态的变换和前面提到的方法结合起来,得到用于策略学习的演示数据τGτG​ 。在训练策略的时候,用的是扩散策略(Diffusion Policy),这是行为克隆领域很厉害的技术。考虑到模拟和现实环境还是有差异,比如模拟场景没有阴影,一些柔性部件渲染得不准确,所以在训练时会加入图像增强操作,像加高斯噪声、随机擦除、调整亮度和对比度等,让策略更能适应现实世界。

image.png

三、实验:SplatSim 真的靠谱吗?

为了验证 SplatSim 框架的效果,研究人员做了一系列实验,主要从数据收集、零样本策略部署、渲染量化和增强效果这几个方面来测试。

3.1 数据收集

在数据收集环节,现实世界里每个任务的演示数据都得靠人工收集,又费时间又费精力。但在模拟器里就方便多了,用基于特权信息的运动规划器,能自动生成数据。像有些任务,在现实世界收集数据要 20.5 小时,在模拟器里只要 3 小时,效率大大提高,而且数据质量还不错。这充分体现了模拟器在数据收集方面的强大优势,能为后续的训练提供充足的数据支持。

3.2 零样本策略部署

研究人员在四个和接触相关的现实任务里测试了零样本策略部署的效果,用任务成功率作为主要衡量指标。结果显示,SplatSim 框架训练的策略,零样本从模拟到现实的转移平均成功率能达到 86.25%,虽然比直接用真实数据训练的策略(97.5%)低了一些,但已经很厉害了。在 T - Push 任务里,机器人不用在现实数据上微调,就能在推物体的时候达到 90% 的成功率;Pick - Up - Apple 任务里,抓苹果的成功率也有 95%;Orange on Plate 任务和 Assembly 任务同样表现不错,说明这个框架真的能让模拟训练的策略在现实世界发挥作用。

image.png

3.3 量化机器人渲染

为了看看渲染出来的机器人图像有多逼真,研究人员对比了不同关节配置下的渲染图像和现实世界图像,用峰值信噪比(PSNR)和结构相似性指数(SSIM)这两个指标来衡量。结果发现,即使关节配置变来变去,渲染图像的平均 PSNR 能达到 22.62,SSIM 是 0.7845,这表明模拟图像在视觉质量上和现实世界的 RGB 观测很接近,生成的模拟数据确实能反映现实场景的特征。

3.4 增强的作用

点击用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析查看全文

相关文章:

用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析

在机器人领域,让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距,特别是基于 RGB 图像的操作策略,从模拟转移到现实时总是状况百出。 今天咱们就来聊聊 SplatSim 框架,看看它是怎…...

Transformer 架构 - 解码器 (Transformer Architecture - Decoder)

欢迎回到我们的 Transformer 系列教程!在上一篇中,我们详细探讨了 Transformer 的编码器,它负责将输入的源序列(比如源语言句子)转换为一系列包含丰富上下文信息的向量表示。 现在,我们将把目光投向 Transformer 的另一半——解码器 (Decoder)。解码器负责接收编码器的输…...

使用Intel Advisor工具分析程序

使用Intel Advisor工具分析程序 Intel Advisor是一款性能分析工具,主要用于识别代码中的向量化机会、线程化和内存访问模式等问题。以下是使用Intel Advisor分析程序的基本步骤: 安装与准备 从Intel官网下载并安装Intel Advisor(通常作为I…...

AI大模型学习十一:‌尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功

一、说明 用了ubuntu 25.04,内核为GNU/Linux 6.14.0-15-generic x86_64,升级了部分image,过程曲折啊 sealos 能干啥 对集群生命周期进行管理,一键安装高可用 Kubernetes 集群,增删节点清理集群自恢复等 通过 sealos…...

如何在 Python 项目中引入 Rust 函数

目录 1. 初始化 Python 项目2. 添加 Rust 开发工具3. 初始化 Rust 项目4. 开发模式构建5. 验证模块是否成功安装6. 测试 Rust 函数总结 (封面pid: 129416070) Python 是一门非常流行的编程语言,具有易于使用和开发的特点。然而,随着项目需求的增长和性能…...

聊聊SpringAI流式输出的底层实现?

在 Spring AI 中,流式输出(Streaming Output)是一种逐步返回 AI 模型生成结果的技术,允许服务器将响应内容分批次实时传输给客户端,而不是等待全部内容生成完毕后再一次性返回。 这种机制能显著提升用户体验&#xff…...

MySQL 8 自动安装脚本(CentOS-7 系统)

文章目录 一、MySQL 8 自动安装脚本脚本说明📌 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 📌 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 📌 适用场景 二、执行sh脚本1. 给予脚本执行…...

在Notepad++中使用NppAtyle插件格式化代码

参考链接:Artistic Style 使用教程(中文版) 1.下载NppAStyle插件(根据版本,选择32位或者64位) https://github.com/ywx/NppAStyle/releases 2.菜单栏中选择:插件->打开插件文件夹 创建文件夹…...

【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从

主机准备 结合前面的章节,这里需要5台机器,可以先创建一台虚拟机作为基础虚拟机。优先把5台机器的公共部分优先在一台机器上配置好 1、配置好静态IP地址 2、主机名宇IP地址解析 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…...

拼多多面经,暑期实习Java一面

项目中的设计模式 mysql连接过程,索引,分库分表场景,路由策略 redis使用场景,分片集群怎么搭建与路由,数据一致性 分布式锁怎么用的,具体使用参数 线程池怎么用的,过程 sql having 分布式事务 如…...

FramePack:让视频生成更高效、更实用

想要掌握如何将大模型的力量发挥到极致吗?叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其…...

ctfshow web8

前言 学习内容:简单的盲注脚本的书写 web8 这个题目题目手动注入很麻烦 主要是他过滤了 union 空格和 过滤了union的解决方法 1、使用盲注(报错注入和盲注) 2、使用时间盲注 3、堆叠注入 盲注脚本的书写 首先他是有注入点的 然后熟悉requests包的使用 …...

gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词所以用英语表达)

Current gem5-gpu Software Architecture 这是当前gem5-gpu软件架构的示意图。 Ruby是在gem5-gpu上下文中用于处理CPU和GPU之间内存访问的高度可配置的内存系统 CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) Wrapper for GPGPU-Sim shader_cor…...

TDengine 查询引擎设计

简介 TDengine 作为一个高性能的时序大数据平台,其查询与计算功能是核心组件之一。该平台提供了丰富的查询处理功能,不仅包括常规的聚合查询,还涵盖了时序数据的窗口查询、统计聚合等高级功能。这些查询计算任务需要 taosc、vnode、qnode 和…...

AOSP Android14 Launcher3——点击桌面图标启动应用动画流程

在Launcher3中,点击桌面应用图标时,会有一个从 图标位置起始到全屏的动画过程,使得应用的打开过程不是生硬的启动过程。 这个动画具体是怎么实现的呢?本文对这个过程进行一个梳理 在Launcher中,动画大体上可以分为两类…...

windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页

背景 对于一些只能在ubuntu上运行的脚本,并且这个脚本会在ubuntu上通过网页展示运行结果。我们希望可以使用windows远程操控ubuntu,在windows上查看网页内容。 方法 start cmd.exe /k "sshpass -p passwd ssh namexxx.xxx.xxx.xxx "cd /hom…...

【官方正版,永久免费】Adobe Camera Raw 17.2 win/Mac版本 配合Adobe22-25系列软

Adobe Camera Raw 2025 年 2 月版(版本 17.2)。目前为止最新版新版已经更新2个月了,我看论坛之前分享的还是2024版,遂将新版分享给各位。 Adobe Camera Raw,支持Photoshop,lightroom等Adobe系列软件&#…...

如何使用flatten函数在Terraform 中迭代嵌套map

简介 flatten 接受一个列表,并用列表内容的扁平序列替换列表中的任何元素。 > flatten([["a", "b"], [], ["c"]]) ["a", "b", "c"] > flatten([[["a", "b"], []], [&quo…...

原生 HTML 的`title` 属性修改触发事件为鼠标移入移出显示

HTML中title属性的适用范围 在 HTML 中,title 属性是全局属性(Global Attribute),这意味着它可以被应用到所有 HTML 标签上。无论是块级元素(如 <div>)、行内元素(如 <span>),还是表单元素(如 <input>),都可以添加 title 属性。 常见使用 title…...

【论文精读】Reformer:高效Transformer如何突破长序列处理瓶颈?

目录 一、引言&#xff1a;当Transformer遇到长序列瓶颈二、核心技术解析&#xff1a;从暴力计算到智能优化1. 局部敏感哈希注意力&#xff08;LSH Attention&#xff09;&#xff1a;用“聚类筛选”替代“全量计算”关键步骤&#xff1a;数学优化&#xff1a; 2. 可逆残差网络…...

jmeter中监控服务器ServerAgent

插件下载&#xff1a; 将ServerAgent上传至需要监控的服务器&#xff0c;mac/liunx启动startAgent.sh&#xff08;启动命令&#xff1a;./startAgent.sh&#xff09; 在jmeter中添加permon监控组件 配置需要监控的服务器IP地址&#xff0c;添加需要监控的资源 注意&#xf…...

网络结构及安全科普

文章目录 终端联网网络硬件基础网络协议示例&#xff1a;用户访问网页 OSI七层模型网络攻击&#xff08;Hack&#xff09;网络攻击的主要类别&#xff08;一&#xff09;按攻击目标分类&#xff08;二&#xff09;按攻击技术分类 网络安全防御 典型攻击案例相关名词介绍网络连接…...

JVM虚拟机-JVM调优、内存泄漏排查、CPU飙高排查

一、JVM调优的参数在哪里设置 项目开发过程中有以下两种部署项目的方式&#xff1a; 项目部署在tomcat中&#xff0c;是一个war包&#xff1b;项目部署在SpringBoot中&#xff0c;是一个jar包。 (1)war包 catalina文件在Linux系统下的tomcat是以sh结尾&#xff0c;在windows系…...

安全复健|windows常见取证工具

写在前面&#xff1a; 此博客仅用于记录个人学习内容&#xff0c;学识浅薄&#xff0c;若有错误观点欢迎评论区指出。欢迎各位前来交流。&#xff08;部分材料来源网络&#xff0c;若有侵权&#xff0c;立即删除&#xff09; 取证 01系统运行数据 使用工具&#xff1a;Live-F…...

FPGA开发流程初识

FPGA 的开发流程可知&#xff0c;在 FPGA 开发的过程中会产生很多不同功能的文件&#xff0c;为了方便随时查找到对应文件&#xff0c;所以在开始开发设计之前&#xff0c;我们第一个需要考虑的问题是工程内部各种文件的管理。如 果不进行文件分类&#xff0c;而是将所有文件…...

Docker 中将文件映射到 Linux 宿主机

在 Docker 中&#xff0c;有多种方式可以将文件映射到 Linux 宿主机&#xff0c;以下是常见的几种方法&#xff1a; 使用-v参数• 基本语法&#xff1a;docker run -v [宿主机文件路径]:[容器内文件路径] 容器名称• 示例&#xff1a;docker run -it -v /home/user/myfile.txt:…...

C# 类型、存储和变量(栈和堆)

本章内容 C#程序是一组类型声明 类型是一种模板 实例化类型 数据成员和函数成员 预定义类型 用户定义类型 栈和堆 值类型和引用类型 变量 静态类型和dynamic关键字 可空类型 栈和堆 程序运行时&#xff0c;它的数据必须存储在内存中。一个数据项需要多大的内存、存储在什么地方…...

基于深度学习Yolo8的驾驶员疲劳与分心行为检测系统

基于深度学习Yolo8的驾驶员疲劳与分心行为检测系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】疲劳检测模型与行为分析统计 【技术栈】 ①&#xff1a;系统环境&#xff1a;Windows/Mac/Linux ②&#xff1a;开发环境&#xff1a;P…...

AOSP Android14 Launcher3——远程窗口动画关键类SurfaceControl详解

在 Launcher3 执行涉及其他应用窗口&#xff08;即“远程窗口”&#xff09;的动画时&#xff0c;例如“点击桌面图标启动应用”或“从应用上滑回到桌面”的过渡动画&#xff0c;SurfaceControl 扮演着至关重要的角色。它是实现这些跨进程、高性能、精确定制动画的核心技术。 …...

Linux系统学习----概述与目录结构

linux 是一个开源、免费的操作系统&#xff0c;其稳定性、安全性、处理多并发已经得到业界的认可&#xff0c;目前很多企业级的项目 (c/c/php/python/java/go)都会部署到 Linux/unix 系统上。 一、虚拟机系统操作 1.网络连接的三种方式&#xff08;桥接模式、nat模式、主机模…...