Repolode
MRPT

MRPT/mvsim

Lightweight 2.5D dynamics simulator for wheeled mobile robots and vehicles, usable standalone, via ROS 1/2, or from C++ and Python.

Stars
421
Forks
64
Open issues
4
Last commit
yesterday

What is it?

MVSim, short for MultiVehicle Simulator, simulates wheeled robots and vehicles with dynamics, sensors and multi-agent interaction. Worlds are defined in XML files, so most experiments need no code changes. It runs as a standalone application, as a ROS 2 node, or embedded in a C++ or Python program, and supports headless operation for CI pipelines and Docker containers.

Vehicle models include differential drive, Ackermann steering with kinematic or dynamic control, and articulated trailer-style vehicles. The sensor set covers several 3D and 2D LiDAR models, RGB and RGBD cameras, IMU with noise and bias, and GNSS. Vehicles in the same world can detect each other through LiDAR.

Worlds can include occupancy grid maps, elevation meshes, textured 3D blocks, friction zones and multi-storey environments. Data is exposed through ROS 2 topics, TF and parameters, or through ZMQ and Protobuf for custom clients.

Key features

  • 01Vehicle models for differential drive, Ackermann steering and articulated vehicles.
  • 02LiDAR, camera, IMU and GNSS sensor simulation with configurable noise.
  • 03Multi-vehicle worlds where robots detect each other through LiDAR.
  • 04XML-based world configuration with maps, terrain and friction zones.
  • 05Standalone, ROS 2, C++ library and Python interfaces, with headless mode.

Use cases

  • Testing navigation or control algorithms for wheeled robots before hardware is available.
  • Running multi-robot or multi-agent experiments in warehouse or outdoor scenarios.
  • Generating simulated sensor data such as LiDAR or RGBD for perception research.
  • Running automated simulation tests in CI pipelines or Docker containers.

Quick start

  1. 1

    Install the ROS 2 package via apt

    sudo apt install ros-$ROS_DISTRO-mvsim
  2. 2

    Launch a standalone demo world

    mvsim launch mvsim_tutorial/demo_warehouse.world.xml

Things to know

  • Build from source requires the cmake or colcon steps described in the full installation guide.
  • The ROS 2 install path depends on your ROS 2 distro, and ROS 1 distros are end-of-life.

In collections

Topics

#robotics#simulation#ros2#vehicle-dynamics#lidar#autonomous-vehicles#mobile-robots#gazebo#mrpt#robots

FAQ

What is mvsim?
Lightweight 2.5D dynamics simulator for wheeled mobile robots and vehicles, usable standalone, via ROS 1/2, or from C++ and Python. MVSim, short for MultiVehicle Simulator, simulates wheeled robots and vehicles with dynamics, sensors and multi-agent interaction. Worlds are defined in XML files, so most experiments need no code changes. It runs as a standalone application, as a ROS 2 node, or embedded in a C++ or Python program, and supports headless operation for CI pipelines and Docker containers.
Is mvsim free to use? What license does it have?
mvsim is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is mvsim still maintained?
Actively maintained. The last commit to mvsim was on Nov 6, 2026.
What can I use mvsim for?
Testing navigation or control algorithms for wheeled robots before hardware is available. Running multi-robot or multi-agent experiments in warehouse or outdoor scenarios. Generating simulated sensor data such as LiDAR or RGBD for perception research. Running automated simulation tests in CI pipelines or Docker containers.
How do I install mvsim?
Install the ROS 2 package via apt: sudo apt install ros-$ROS_DISTRO-mvsim Launch a standalone demo world: mvsim launch mvsim_tutorial/demo_warehouse.world.xml
Where can I get mvsim?
The source code and installation instructions are on GitHub: https://github.com/MRPT/mvsim

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects