  Development of applications related to closed-loop control requires either
testing on the field or on a realistic simulator, with the latter being more
convenient, inexpensive, safe, and leading to shorter development cycles. To
address that need, the present work introduces MVSim, a simulator for multiple
vehicles or robots capable of running dozens of agents in simple scenarios, or
a handful of them in complex scenarios. MVSim employs realistic
physics-grounded friction models for tire-ground interaction, and aims at
accurate and GPU-accelerated simulation of most common modern sensors employed
in mobile robotics and autonomous vehicle research, such as depth and RGB
cameras, or 2D and 3D LiDAR scanners. All depth-related sensors are able to
accurately measure distances to 3D models provided by the user to define custom
world elements. Efficient simulation is achieved by means of focusing on ground
vehicles, which allows the use of a simplified 2D physics engine for body
collisions while solving wheel-ground interaction forces separately. The core
parts of the system are written in C++ for maximum efficiency, while Python,
ROS 1, and ROS 2 wrappers are also offered for easy integration into user
systems. A custom publish/subscribe protocol based on ZeroMQ (ZMQ) is defined
to allow for multiprocess applications to access or modify a running
simulation. This simulator enables and makes easier to do research and
development on vehicular dynamics, autonomous navigation algorithms, and
simultaneous localization and mapping (SLAM) methods.
