Simulation with Multiverse#
Multiverse Framework is a system that connects different robotics simulation and hardware components together. It serves as a unifying infrastructure that addresses the fragmentation across simulation and controller software. Instead of being a single simulator extended with controllers and reasoning modules, it provides an architectural foundation with interoperability mechanisms that allow simulators, controllers, and reasoning systems to remain independent while still operating together as a coherent ecosystem.
This package uses Multiverse Simulators (MultiSim) to provide a unified abstraction layer over different simulation engines. This high-level abstraction enables us to switch between multiple backends with minimal effort, while maintaining a consistent logic for world representation and manipulation. Communication between the simulator and other components running in separate processes is managed by the Multiverse Framework through its plugins.
Below is an example of how to set up an empty simulation using the Mujoco backend and run it for 5 seconds.
A MultiSim simulator takes a World object as input and synchronizes its state with the simulation engine,
a MultiverseViewer for reading and write data in run-time, and other configuration parameters.
You can spawn objects in the simulation in run-time just by changing the World object.
The world changes will be automatically synchronized with the simulation engine.