Architecture

Please, refer to the MVSim paper for a gentle introduction to the project architecture.

_images/arch_overview_programs.png

Overview of the different possibilities to communicate with a running MVSim instance.

The project comprises:

  • C++ libraries: libmvsim_comms, libmvsim_msgs, libmvsim_simulator.

  • A ROS 1 and ROS 2 node (both in the same git branch).

  • Python3 wrappers.

  • mvsim-cli: A standalone program to run the simulation and, optionally, displaying a GUI live view of the world, accept keyboard/mouse orders, etc. It also uses ZMQ+protobuf as a communication system for user programs to interact with the simulation (for example, from a C++ or Python program).