Skip to content
Vehicle dynamics simulator: ROS node and C++ library
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
externals Revert "box2d: ported to double" Aug 25, 2014
.clang-format Applied clang-format as everywhere in MRPT Aug 25, 2017
.travis.yml use docker in travis Dec 6, 2017
CHANGELOG.rst 0.2.0 Jun 28, 2018
CMakeLists.txt progress porting to latest mrpt 2.0 branch Jan 11, 2018
package.xml 0.2.0 Jun 28, 2018

  • Travis CI: Build Status
  • ROS build farm:
    • git master:
      • ROS Kinetic @ u16.04 Xenial Build Status
      • ROS Melodic @ u18.04 Bionic Build Status
    • Last released version:
      • ROS Melodic @ u18.04 Bionic: Build Status
      • ROS Kinetic @ u16.04 Xenial: Build Status

MultiVehicle simulator (libmvsim)

Lightweight, realistic dynamical simulator for 2D ("2.5D") vehicles and robots. It is tailored to analysis of vehicle dynamics, wheel-ground contact forces and accurate simulation of typical robot sensors (e.g. laser scanners).

This package includes the C++ library mvsim, a standalone app and a ROS node.

License: GNU General Public License version 3 Copyright (C) 2017 Jose Luis Blanco (University of Almeria) and collaborators

MvSim intro


  • The mvsim manual is the main reference document can be found in docs/user_manual.tex.
  • (TO-DO) ROS tutorials (Write me!!)

Main features

  • Lightweight in memory, CPU and library requirements.
  • Fully configurable via .xml "world" files.
  • World maps:
    • Occupancy gridmaps: input as images or MRPT binary maps (from icp-slam, rbpf-slam, etc.)
    • Elevation meshes.
  • Vehicle models:
    • Differential driven (2 & 4 wheel drive).
    • Ackermann steering (kinematic & dynamic steering, different mechanical drive models).
    • Ackermann steering with mechanical differentials of full grade.
  • Sensors:
    • Laser scanners: Robots see each other, their own bodies, etc.
  • Interface to vehicles: Choose among:
    • Raw access to forces and motor torques.
    • Twist commands (using internal controllers).

Compiling: standalone


  • A decent C++ compiler!
  • CMake >= 3.1
  • MRPT (>=1.5.4 from 1.5 series; or >=2.0.0): In Windows, build from sources or install precompiled binaries.
  • Box2D: Will use an embedded copy if no system version is found.

In Ubuntu, this will install all requirements:

 sudo apt-get install libmrpt-dev libbox2d-dev

ROS: Compiling & usage

  • Install: sudo apt-get install ros-$ROS_DISTRO-mvsim

  • Build: clone to your catkin workspace and build as usual

  • Usage: See docs and tutorials in

Compiling: MOOS / OpenMORA

This package is already included in OpenMORA.

You can’t perform that action at this time.