专栏名称: 自动驾驶之心
自动驾驶开发者社区,关注计算机视觉、多维感知融合、部署落地、定位规控、领域方案等,坚持为领域输出最前沿的技术方向!
51好读  ›  专栏  ›  自动驾驶之心

穿梭虚实之间:3DGS与NeRF如何辅助机器人遥控操作?

自动驾驶之心  · 公众号  ·  · 2024-09-01 00:00

正文

作者 | Maximum  编辑 | 深蓝AI

点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号

戳我-> 领取 自动驾驶近15个 方向 学习 路线

>> 点击进入→ 自动驾驶之心 三维重建 技术交流群

本文只做学术分享,如有侵权,联系删文

导读:

本研究介绍了一种用于机器人遥控操作的新型辐射场可视化技术,研究者提出了一种在线训练辐射场的方法,能够实时从多个摄像头获取数据,支持多种辐射方法,包括NeRF和3DGS。该系统与现有的ROS遥控操作系统集成,并通过传统的工具和VR头显进行展示。通过与基于网格重建的基线方法进行定量比较,并进行用户研究,验证了不同可视化方法的效果。

NeRF和3DGS等辐射场方法已经彻底改变了计算机图形学和新视点合成领域。它们能够生成逼真的新视角图像,并捕捉复杂的体积效果和高光场景,使其成为机器人远程操作环境中理想的可视化工具。直接使用摄像机进行远程操作能够提供高保真度的图像,但代价是机动性较差。相比之下,基于重建的方法则能提供较高的场景控制性,但图像保真度相对较低。本研究采用在线辐射场取代机器人远程操作流程中的传统重建可视化方案,提供了具有逼真质量的高操作性场景。本研究使用来自多个摄像机的实时数据的辐光场的在线训练,支持各种辐射场方法,包括NeRF和3DGS,并对这些方法进行可视化,在虚拟现实场景进行展示。为了实现与现有设备的无缝集成,该方法在多种配置下与多个机器人进行了测试,并使用传统工具和VR头显进行了展示。
本研究还将相关结果定量地与网格重建方案进行比较,并进行用户研究以比较不同的可视化方法。
本研究的主要贡献如下:
●实时多摄像头数据融合:开发了一种创新性的在线训练框架,该框架能够实时从多个摄像头捕获数据,并将其融合为辐射场,从而为遥控操作提供高保真度和高机动性的三维场景表示;
●多样化辐射场方法的集成与优化:研究不仅涵盖了现有的神经辐射场(NeRF)技术,还引入了3DGS等新型辐射场渲染技术,并通过系统优化,实现了对这些先进方法的深度集成和支持;
●跨平台可视化工具的开发:设计并实现了一套兼容多种现有遥控操作平台的可视化工具集,包括对辐射场方法的虚拟实景(VR)场景展示,极大地增强了用户界面的沉浸感和直观性;
●推动遥控操作与辐射场技术的融合:本研究不仅在遥控操作领域提出了新的技术解决方案,还为辐射场技术在机器人学中的进一步应用开辟了新的研究方向。
理想的远程操作系统应向操作员提供场景的高保真、可操作和真实的表示。该系统应与机器人类型无关,并能够根据任务最佳地呈现环境数据——传感器数据流或重建数据。如图1所示, 一般遥操作可视化系统分为三个部分:机器人、重建方法、可视化。传感器和姿态数据从各种机器人组件(红色)流向重建方法(绿色),以创建在可视化器(蓝色)中显示给用户的场景表示。这种方法支持辐射场重建,如NeRF和3DGS,生成相对于固定位置的环境表示,通过可视化工具(RViz和VR可视化器)呈现给操作者。通过相对于固定点构建表示,即使机器人在空间中移动,也可以显示和对齐额外的数据。

图1|遥操作可视化系统

换言之,可以将该系统简化为三个组件:机器人及其传感器、重建方法和可视化系统。
本研究介绍了一个基于现有远程操作框架的系统,扩展基于辐射场三维重建方法的可能性,并提供了在屏幕和虚拟现实中可视化这些方法的手段,如图2中的紫色虚线框所示。该系统经过多种机器人测试,包括一个简单的静态配置、一个能够探索更大环境的移动四足机器人以及一个附带机械臂的四足机器人。机器人收集到的数据首先被用于现有的网格重建系统,作为基线处理,然后新增了一个支持NeRFs和3DGS辐射场的ROS节点。这些重建方法可以在多个可视化工具中使用,如屏幕上的2D RViz窗口以及VR头显中的2.5D和3D视图。根据部署和任务的不同,该系统的每个组件都可以交换或重新配置。

图2|Radiance Field VR场景与2.5D手持视差观看器(左)和完全沉浸360度(右)

2.1 机器人及其传感器

在本文所提出的系统中,机器人的主要目的是捕捉环境信息,并帮助用户了解场景。为实现这一目标,系统使用的数据主要来自以下三种形式:ROS的TF系统提供的姿态信息、机载相机捕获的彩色图像、以及包含深度和颜色信息的RGBD图像。
为了确保系统具有通用性,能够适应不同机器人的部署,这些数据源必须易于配置。图2和图3中的“机器人”框左侧展示了输入的数据源,其中红线表示图像数据,橙色表示点云数据,黄色表示来自TF系统的姿态信息。

图3|遥操作可视化系统数据流

最简单的机器人配置是一个固定在地面上的装置,如连接在桌子上的机械臂。这种机器人在扫描目标物体或大规模场景时,机动性有限。但机器人基座是固定的全局框架,因此能够提供更加精确的姿态信息。这种配置虽然在场景规模和视角上有所限制,但在重建精度方面具有极强的可靠性。对于需要捕捉更大、更复杂场景的应用,可以使用移动机器人。这类机器人能够在环境中移动,并从不同角度获取数据。然而,由于机器人与固定的全局框架之间的相对位置不确定,因此需要通过同步定位与地图构建(SLAM)系统,如CompSLAM,来对其在环境中的位置进行定位。由于移动机器人依赖于机载传感器,而这些传感器在运动过程中可能会产生漂移,导致姿态信息不总是可靠。尽管移动机器人覆盖的范围更广,但姿态精度可能会受到影响。一种既能确保高姿态精度,又具备机动性的方法是将机械臂安装在移动平台上。在这种配置下,机器人可以在场景中移动以获得不同的视角,主要依靠机械臂的运动来收集数据,而基座保持静止。因为基座是固定的,机械臂末端执行器的运动可以通过精确的关节传感器进行测量,避免了视觉或激光雷达定位可能带来的误差。这样既能覆盖更大的场景,又能保持数据的高精度。

2.2 重建方法

一旦机器人捕获相应数据后,随即将这些数据传递到一个重建系统中。该阶段的目的是将多个数据流整合为一个单一的数据流,供操作员来控制机器人。这一过程会涉及到创建一个几何和纹理上都高度保真的表示模型。本文比较了场景重建问题的两种主要解决方案:通过Voxblox进行的网格重建和通过NerfStudio进行的辐射场重建。在图2和图3中,这两个ROS节点在“重构方法”部分以绿色标示。Voxblox节点使用传入的姿态数据和点云生成输出网格,而NerfStudio节点则从姿态和图像数据中生成渲染的辐射场。由于网格重建难以捕捉复杂的体积场景,并且在快速重建和高保真度之间存在权衡,为此在机器人远程操作中使用辐射场重建方法更为合适,而辐射场重建主要是通过轻量级的机器学习算法来学习场景的表示。
为了确保与新方法的兼容性,系统中的辐射场训练节点可以配置为使用NerfStudio支持的几乎所有方法。为保证这种兼容性,NerfStudio节点中的自定义组件数量被尽量减少,只要所选方法不依赖于自定义数据集(如语义模型)或自定义DataLoader即可适配。
该节点支持NerfStudio的3DGS方法——Splatfacto,这是一种资源开销最小的方案。在初始化时,系统会为这个自定义数据集分配一个预设大小的缓冲区,用于存储所有训练所需的图像。接下来,节点会为每个相机订阅一组主题,以捕获其图像(无论是RGB还是RGBD),并记录其特征和姿态信息。如果所有相机都包含深度信息,那么系统将分配一个特殊缓冲区来存储深度图像,以便与深度监督模型集成。每张传入的图像都会经过筛选,以确保其不模糊,并且基于TF帧之间的平均距离,姿态差异足够明显。如果相机分辨率不同,所有图像将调整为最大相机的分辨率,并在批处理时统一缩小。在实验中,图像在训练前会以1440p存储,并将720p图像缩放至相应大小。根据当前的姿态数据和最新的CameraInfo消息,系统会存储每张图像在相应相机中的内参和外参。如果图像已被校正,系统将自动将相机的畸变参数设置为零,以避免重复校正。
为了确保与其他方法的兼容性,本研究使用了一个自定义的ROS变体覆盖DataLoader,该变体跳过了通常执行的缓存和整理过程,使用ROS Datasets函数来确保只提取最新的图像进行训练。还有一个特殊的评估DataLoader,它接受图像序列ID列表,以确保在多次运行中使用相同的图像。这在跨预录ROS包数据进行对比时尤其有用。此外,本方法还使用自定义的DataParser来设置ROS Dataset,并通过helper Sensor类管理ROS订阅者。Sensor对象负责管理图像和CameraInfo消息的订阅,并在每次捕获时同步姿态。
使用这个辅助类可以注册多个相机,每个相机以不同速率捕获数据。Sensor对象只会更新相关的数据条目,并将相应的相机参数传递给系统的其余部分。图3展示了整个数据流,其中所有自定义组件以紫色标示,Sensor辅助类以黄色标示。完成设置后,节点会捕获若干图像以创建初始批次,然后切换到在线训练模式。一旦节点进入在线训练模式,它将继续接收新图像直到达到指定的缓冲区大小,并启动一个ActionServer,使任何ROS进程都可以请求渲染数据。渲染请求包含视图姿态,发送到服务器后会返回渲染图像以及估计的场景深度。这些渲染图像随后会被发送到其中一个可视化器,供远程操作员进行交互。此外,请求与唯一的客户端ID关联,允许多个可视化器在ROS网络中使用单个辐射场节点请求不同的渲染数据。

2.3 可视化系统

系统的最后一个阶段是可视化器,它的作用是根据从重建方法获得的数据,为操作员提供一个准确的世界表示。在图2和图3中,这一部分以蓝色标示。本研究开发了自定义的Radiance Field RViz插件用于2D可视化,并利用VR场景实现2.5D和3D可视化。为了进行基线方法比较,还使用了Voxblox的RViz插件来展示网格重建的结果。

Rviz

RViz 是 ROS 的可视化套件,能够可视化各种传感器数据流,如点云、机器人模型和图像。此外,它还提供工具,帮助用户直接通过系统发送命令,例如设置姿态目标。RViz 支持第三方插件,这使得诸如 Voxblox 之类的重建方法可以实现自定义查看器,从而将新的环境数据与现有的机器人和远程操作系统无缝集成。
为了将在线生成的辐射场与ROS无缝集成,本研究开发了一个辐射场RViz插件。该插件作为RViz OpenGL场景中的自定义相机,每当相机移动(动态模式)或处在基于移动帧的渲染流状态(连续模式)时,都会向Radiance Field节点发送渲染请求。动态模式最适合从静止角度观看场景,例如用于导航的俯视图或检查的特写视图。相比之下,连续模式更适用于移动的基础框架,比如第三人称驾驶,或在需要观察新传入数据时使用。
在任何模式下,渲染速度通常主要取决于输出图像的分辨率,这可以通过视图面板中的设置进行调整。为了在动态模式下提供更快的响应,渲染首先以最终分辨率的10%进行预览,接着再发送50%的中等分辨率图像,最后再发送完整的高分辨率图像。
这种分步渲染方法使用户能够更快速地浏览场景,同时保持良好的视觉反馈。
RViz 和辐射场提供的深度数据可用于使渲染图像在场景元素中实现真实的遮挡效果,或以剪切模式显示,如图4所示。这通过将渲染中捕获的真实世界深度转换为OpenGL的z深度(一个从0到1的非线性比例)来实现。然后,这个转换后的深度可以与RViz的Ogre引擎(同样基于OpenGL)为特定相机视角使用的z深度相匹配。结果是,RViz中的所有对象(如机器人、传感器可视化、网格和姿态)都能准确地被遮挡,从而提供更逼真的可视化效果。这种方法旨在让操作员更好地理解环境中的深度,同时更容易在场景中定位RViz组件。在大型或室内场景中,还提供了一种剪切模式,在该模式下,渲染的图像始终显示在RViz元素的背后,使这些元素更容易被识别和定位。







请到「今天看啥」查看全文