mvsim

Vehicle and mobile robotics simulator. C++ & Python API. Use it as a standalone application or via ROS 1 or ROS 2

https://github.com/mrpt/mvsim

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com
  • Committers with academic emails
    1 of 9 committers (11.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary

Keywords

gazebo mrpt robotics robots ros ros-node ros2 sensors simulation vehicle-dynamics
Last synced: 6 months ago · JSON representation ·

Repository

Vehicle and mobile robotics simulator. C++ & Python API. Use it as a standalone application or via ROS 1 or ROS 2

Basic Info
Statistics
  • Stars: 337
  • Watchers: 11
  • Forks: 51
  • Open Issues: 8
  • Releases: 8
Topics
gazebo mrpt robotics robots ros ros-node ros2 sensors simulation vehicle-dynamics
Created over 11 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation

README.md

mvsim Documentation Status CI Linux CI Check clang-format

MultiVehicle simulator (MVSim)

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. 2D and 3D lidars).

This package includes C++ libraries, standalone applications, and ROS 1 and ROS 2 nodes.

License: 3-clause BSD License Copyright (C) 2014-2025 Jose Luis Blanco jlblanco@ual.es (University of Almeria) and collaborators

Please, refer to the MVSim SoftwareX paper (or the ArXiV preprint) for a gentle introduction to the project architecture. If you want to cite MVSim in your work, please use:

@article{blanco2023mvsim,
  title = {MultiVehicle Simulator (MVSim): Lightweight dynamics simulator for multiagents and mobile robotics research},
  journal = {SoftwareX},
  volume = {23},
  pages = {101443},
  year = {2023},
  issn = {2352-7110},
  doi = {https://doi.org/10.1016/j.softx.2023.101443},
  url = {https://www.sciencedirect.com/science/article/pii/S2352711023001395},
  author = {José-Luis Blanco-Claraco and Borys Tymchenko and Francisco José Mañas-Alvarez and Fernando Cañadas-Aránega and Ángel López-Gázquez and José Carlos Moreno}
}

ROSCon talk

Spanish talk with English slides and subtitles (slides here):

MvSim ROSCon talk

Installation

See installation documentation for all the details and options.

The easiest way to install if you already have ROS 1 or ROS 2 is:

sudo apt install ros-$ROS_DISTRO-mvsim

Then jump to next steps to see how to launch some of the demo worlds.

Demo videos

https://github.com/user-attachments/assets/766db164-2d16-44f4-acbf-2f15b73c1ab3

screenshot-demo

MvSim intro

Build matrix status

| Distro | Build dev | Build releases | Stable version | | --- | --- | --- | --- | | ROS 2 Humble (u22.04) | Build Status | amd64 Build Status
arm64 Build Status | Version | | ROS 2 Jazzy @ u24.04 | Build Status | amd64 Build Status
arm64 Build Status | Version | | ROS 2 Kilted @ u24.04 | Build Status | amd64 Build Status
arm64 Build Status | Version | | ROS 2 Rolling (u24.04) | Build Status | amd64 Build Status
arm64 Build Status | Version |

| EOL distro | Stable version | | --- | --- | | ROS 1 Melodic (u18.04) | Version | | ROS 1 Noetic (u20.04) | Version | | ROS 2 Foxy (u20.04) | Version | | ROS 2 Iron (u22.04) | Version |

Docs

If you clone this repository, remember to checkout the git submodules too:

git clone https://github.com/MRPT/mvsim.git --recursive

Launch demos

See more on first steps here.

Standalone:

mvsim launch mvsim_tutorial/demo_warehouse.world.xml
mvsim launch mvsim_tutorial/demo_2robots.world.xml
mvsim launch mvsim_tutorial/test_mesh.world.xml

ROS 1:

roslaunch mvsim demo_depth_camera.launch

ROS 2:

ros2 launch mvsim demo_warehouse.launch.py
ros2 launch mvsim demo_depth_camera.launch.py

Main features

  • Lightweight in memory, CPU and library requirements.
  • Fully configurable via .xml "world" files.
  • Headless mode, suitable for dockerized environments.
  • 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:
    • 2D and 3D Lidars: Robots see each other, their own bodies, etc.
    • RGB cameras
    • Depth cameras
  • Interface to vehicles: Custom Python interface, or ROS. Choose among:
    • Raw access to forces and motor torques.
    • Twist commands (using internal controllers).

Owner

  • Name: MRPT
  • Login: MRPT
  • Kind: organization
  • Email: jlblanco@ual.es
  • Location: Almería (Spain)

Mobile Robot Programming Toolkit

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  title: "MultiVehicle Simulator (MVSim): Lightweight dynamics simulator for multiagents and mobile robotics research"
  doi: "10.1016/j.softx.2023.101443"
  year: "2023"
  type: article
  journal: "SoftwareX"
  url: https://www.sciencedirect.com/science/article/pii/S2352711023001395
  codeurl: https://github.com/MRPT/mvsim/
  authors:
    - family-names: Blanco-Claraco
      given-names: José-Luis
    - family-names: Tymchenko
      given-names: Borys
    - family-names: Mañas-Alvarez
      given-names: Francisco José
    - family-names: Cañadas-Aránega
      given-names: Fernando
    - family-names: López-Gázquez
      given-names: Ángel
    - family-names: Moreno
      given-names: José Carlos

GitHub Events

Total
  • Create event: 11
  • Commit comment event: 1
  • Issues event: 6
  • Watch event: 45
  • Delete event: 3
  • Issue comment event: 26
  • Push event: 89
  • Pull request review event: 2
  • Pull request event: 16
  • Fork event: 4
Last Year
  • Create event: 11
  • Commit comment event: 1
  • Issues event: 6
  • Watch event: 45
  • Delete event: 3
  • Issue comment event: 26
  • Push event: 89
  • Pull request review event: 2
  • Pull request event: 16
  • Fork event: 4

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,165
  • Total Committers: 9
  • Avg Commits per committer: 129.444
  • Development Distribution Score (DDS): 0.063
Past Year
  • Commits: 154
  • Committers: 4
  • Avg Commits per committer: 38.5
  • Development Distribution Score (DDS): 0.201
Top Committers
Name Email Commits
Jose Luis Blanco Claraco j****c@g****m 1,092
Borys Tymchenko t****r@g****m 35
finani 1****i@g****m 28
Michael Grupp g****p@m****u 3
Logrus i****s@g****m 2
Fernando Cañadas 1****a 2
kr-jschoi j****i@t****i 1
Shravan S Rai 8****2 1
Julian Lopez Velasquez j****2@e****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 27
  • Total pull requests: 43
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Total issue authors: 15
  • Total pull request authors: 10
  • Average comments per issue: 2.26
  • Average comments per pull request: 1.14
  • Merged pull requests: 36
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 14
  • Average time to close issues: 5 days
  • Average time to close pull requests: 3 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 2.5
  • Average comments per pull request: 1.93
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jlblancoc (9)
  • omerfarukadastec (3)
  • vinnnyr (2)
  • SRai22 (2)
  • racarla96 (1)
  • fpi684 (1)
  • Aposhian (1)
  • wegunterjr (1)
  • nocholasrift (1)
  • askkl (1)
  • finani (1)
  • r-aguilera (1)
  • francocipollone (1)
  • Logrus (1)
  • afrozsevenrobotics (1)
Pull Request Authors
  • jlblancoc (21)
  • finani (12)
  • spsancti (6)
  • MichaelGrupp (5)
  • FerCanAra (2)
  • Aposhian (2)
  • kr-jschoi (2)
  • Logrus (2)
  • SRai22 (1)
  • fpi684 (1)
Top Labels
Issue Labels
enhancement (1) help wanted (1)
Pull Request Labels

Dependencies

.github/workflows/build-linux.yml actions
  • actions/checkout master composite
.github/workflows/check-clang-format.yml actions
  • actions/checkout master composite
docs/requirements.txt pypi
  • sphinx >=4.3.0
  • sphinx_design *
  • sphinx_rtd_theme >=0.5.1
  • sphinxcontrib-bibtex *
requirements.txt pypi
  • protobuf *
  • protoletariat *