学习和复现RoboSplat的技术思路
文献阅读
本文仅作为本人阅读文献时的随记,充斥着和ai交流的产物以及个人粗浅的想法。
简而言之,RoboSplat 的技术流程主要包括重建预处理、自动化编辑增强和策略训练三个阶段。

高保真重建与帧对齐
基于3DGS的场景重建
- input:一组多视角RGB图像
- Layer1(COLMAP):基于特征点匹配计算拍摄时的相机位姿,生成一个稀疏的3D点云
- Layer2(Depth Anything):基于RGB图像预测其深度图效果
- Layer3(3DGS):将经过前面步骤得到点云和深度图数据作为3DGS算法输入,迭代得到由一组3D高斯椭球组成的3D场景,本质上地,输出了一系列球谐函数的列表,用球谐函数定义了高斯椭球的大小、位姿、颜色、透明度信息
- Layer4(ICP):由于 3DGS 生成的坐标系是随机的,需要将其与真实世界坐标系对齐。先用ICP算法即迭代最近点算法进行粗对齐,大意就是比较机器人URDF模型和3DGS点云数据,让两坨点尽可能靠近
- Layer5(可微对齐):3DGS 像神经网络一样,支持反向传播。此处准备基于URDF的标准影和基于3DGS的重建影,定义损失函数[L{align} = \frac{1}{N} \sum{i=1}^{N} (I{URDF,i} - I{Gaussian,i})^2],在迭代中尽量消除差值使得坐标系精密对齐

-Layer6(Grounded-SAM):场景分解,把一个死板的 3D 快照变成了一个可交互的 3D 积木箱,每个零件都可以被独立控制和替换
六维度的自动化增强
- 物体位姿(Object Pose):通过等变变换(Equivariant Transformations)调整物体位置,并同步更新关键帧的末端执行器位姿。
物体种类(Object Type):结合 GPT-4 生成物体名称,利用 3D 内容生成模型创建新物体,并使用 AnyGrasp 生成抓取位姿。 - 相机视角(Camera View):利用 3DGS 的新视角合成能力,在球坐标系内随机化相机位置。
- 机器人本体(Embodiment Type):将演示中的机器人高斯模型替换为其他型号(如从 Franka 切换到 UR5e),实现跨本体泛化。
- 场景外观(Scene Appearance):使用 COCO 数据集图像或重建的其他 3D 场景替换背景。
- 光照条件Lighting Condition:通过对每个高斯球的漫反射颜色进行随机缩放、偏移和添加噪声来模拟不同的光照。
策略训练
采用基于 Transformer 的架构,以 RGB 图像和机器人状态作为输入,通过行为克隆(BC)端到端预测动作序列,这一点还有待后续的阅读和理解。
环境配置踩坑记录
官方README的步骤已经足够详细,下面只记录关于平台、镜像、install时注意构建隔离等自己踩过的坑。
1. 平台选择
放弃 WSL (Windows Subsystem for Linux),转用原生 Linux 服务器。WSL 在涉及 CUDA 底层编译及 GPU 驱动调用时存在兼容性问题,原生 Linux 环境更稳定。
2. 代码获取
针对 GitHub 连接超时问题,使用镜像源配合 git clone --depth 1 命令,仅拉取最新 commit,显著减少下载体积并提高成功率。
3. 核心编译(关键)
- 依赖配置:编译 PyTorch3D 前,需手动下载 NVIDIA CUB 库并设置
export CUB_HOME=/path/to/cub环境变量。 - 构建隔离:安装
diff-gaussian-rasterization等 CUDA 扩展库时,必须添加--no-build-isolation参数。- 原因:pip 默认开启构建隔离,会创建临时的虚拟环境,导致无法调用当前环境中已安装的 GPU 版 PyTorch,从而引发编译失败。该参数强制使用当前环境依赖。
4. 数据准备
鉴于服务器无法直接访问 Google Drive,采用“本地下载 + SCP/FTP 传输”至服务器的方案。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 耄耋今天学什么?!




