[中文正文内容]

跳至内容

shadygm/ROSplat

一个基于在线 ROS2 的、支持 Gaussian Splatting 的可视化工具。

许可协议

GPL-3.0 license

59 stars 2 forks

分支 标签 活动

ROSplat

基于在线 ROS2 的 Gaussian Splatting 可视化工具

Shady Gmira

Project Image Demo Animation

概述

ROSplat 是首个基于在线 ROS2 的可视化工具,它利用 Gaussian splatting 来渲染复杂的 3D 场景。 它旨在通过使用自定义 ROS2 消息和 GPU 加速的排序和渲染技术来有效地可视化数百万个高斯分布。 ROSplat 还支持从 PLY 文件加载数据,并与 ROS2 工具(如 bag 记录)集成。

特点

安装设置

本项目在 Ubuntu 24.04 LTS 上使用 ROS2 Jazzy 开发和测试。 请注意:如果没有 NVIDIA 显卡,性能会显著下降。

依赖项

要单独安装可选的基于 GPU 的库:

pip install cupy-cuda12x # 安装 Cupy(将 12x 替换为您的 CUDA 版本)
pip install torch     # 安装 PyTorch

程序将自动按以下顺序优先排序方法:1) Torch → 2) Cupy → 3) CPU

要一次安装所有依赖项:

pip install -r requirements.txt    # 对于 GPU 加速
pip install -r requirements-no-gpu.txt # 没有 GPU 加速

基于 Docker 的设置

或者,您可以使用 Docker 设置项目。 设置脚本位于 docker 目录下。

在运行 Docker 之前,请确保已安装:

sudo apt-get install -y nvidia-container-toolkit

这使得主机和容器之间可以进行 GPU 通信。 如果您遇到任何其他问题,请按照以下链接中的说明进行操作。

然后,构建并运行 Docker 容器:

cd docker
./run_docker.sh -h  # 显示帮助和使用说明
./run_docker.sh -bu  # 构建 Docker 镜像并使用 docker-compose 启动容器

重要说明: 确保主机的 CUDA 版本与 Dockerfile 中指定的版本匹配。 如果您使用的是 12.6 以外的 CUDA 版本,请相应地更新 Dockerfile。

构建 Gaussian 消息

ROSplat 定义了两个自定义 ROS2 消息来处理 Gaussian 数据,这些消息位于 gaussian_interface/msg 文件夹中。

注意: Gaussian 消息基于 graphdeco-inria 的原始 Gaussian Splatting 实现

消息定义

1. SingleGaussian.msg

geometry_msgs/msg/Point xyz
geometry_msgs/msg/Quaternion rotation
float32 opacity
geometry_msgs/msg/Vector3 scale
float32[] spherical_harmonics

2. GaussianArray.msg

gaussian_interface/SingleGaussian[] gaussians

构建消息

a) 使用 colcon 构建您的工作区:

colcon build --packages-select gaussian_interface

b) 启动您的工作区:

. install/setup.bash

重要说明: 根据您使用的 shell,您可能需要调整这些命令。

用法

构建 Gaussian 消息后,您可以从项目的根目录启动可视化工具:

cd src
python3 main.py

贡献

欢迎贡献和反馈!

致谢

我很高兴能够从事这样一个具有挑战性的主题,并感谢我在整个项目中收到的宝贵建议和支持。

特别感谢 Qihao YuanKailai Li 的指导和鼓励,以及帮助塑造这项工作的建设性反馈。

该项目还受到了 limacvGaussianSplattingViewer 存储库实现的影响。

联系方式

如有问题或需要更多信息,请发送电子邮件至:shady.gmira[at]gmail.com