Skip to content

Connect your Gaussian splat with a simulator, enabling automated collection of visually realistic image data

Notifications You must be signed in to change notification settings

akhilsathuluri/sim_a_splat

Repository files navigation

sim_a_splat

Warning

The repo is still under heavy development and may not work as expected.

The repo allows one to attach a simulator to a Gaussian splat, in this case the Drake Robotics Toolbox to "simulate" the Gaussian splat. This can be helpful in automated data collection, especially of visually realistic camera data that is often necessary to train diffusion models.

Background

The repo relies on the Gaussian splat trained using the nerfstudio library. Follow the instructions here.

Installation

The repository can be easily accessed using pixi, an alternative to conda and pip. Installation instructions can be seen here.

Usage

Note

If you want to run the example, you can skip step-1.

Step-1

Once the Gaussian splat is trained and placed in the assets directory, run the match_splat.py as a notebook file to segment the elements in your Gaussian splat that are required to be connected to the simulator. In this repo an example is provided with a pre-trained environment. Upon extracting the necessary masks from the previous step, proceed to the next step.

Step-2

Now run the demo code to visualise the example. Two browser windows can be opened beside each other, one for viser, and another for the meshcat visualiser from Drake.

pixi r python examples/demo_pusht_splat.py

Upon running, you should see an interface similar to the one shown below,

sim_a_splat example

The demo uses Microsoft Edge browser with a split window functionality to view the two viewers simultaneously.

Next steps

The "digital twin" environment is wrapped as an env compatible with Gymnasium, meaning, that the Guassian splat can be used to perform training or for collecting data using the typical RL pipeline.

Acknowledgements

  • The repo uses the code from splatnav for loading and viewing the Gaussian splat.
  • The communication pipeline between Drake and the Gaussian splat is inspired from the rtxdrake project.
  • The pushT task and the teleoperation interface is implemented from the diffusion-policy repository.
  • Similar projects: SplatSim and Splat-Sim.

About

Connect your Gaussian splat with a simulator, enabling automated collection of visually realistic image data

Resources

Stars

Watchers

Forks

Packages

No packages published