SoftwareX (Jul 2023)
MultiVehicle Simulator (MVSim): Lightweight dynamics simulator for multiagents and mobile robotics research
Abstract
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. To ease that need, this work introduces MVSim, a simulator for multiple vehicles or robots capable of running in real time 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. 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. An experimental performance benchmarking is provided against other state-of-the-art simulators showing significant less CPU usage. The project source code is freely available online under the BSD 3-clause license in https://github.com/MRPT/mvsim.