{"id":18623278,"url":"https://github.com/mrpt/mvsim","last_synced_at":"2025-05-16T09:06:39.139Z","repository":{"id":19549581,"uuid":"22798093","full_name":"MRPT/mvsim","owner":"MRPT","description":"Vehicle and mobile robotics simulator. C++ \u0026 Python API. Use it as a standalone application or via ROS 1 or ROS 2","archived":false,"fork":false,"pushed_at":"2025-05-12T21:10:31.000Z","size":10146,"stargazers_count":323,"open_issues_count":8,"forks_count":48,"subscribers_count":9,"default_branch":"develop","last_synced_at":"2025-05-12T22:24:53.368Z","etag":null,"topics":["gazebo","mrpt","robotics","robots","ros","ros-node","ros2","sensors","simulation","vehicle-dynamics"],"latest_commit_sha":null,"homepage":"https://mvsimulator.readthedocs.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MRPT.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-08-10T00:24:05.000Z","updated_at":"2025-05-11T15:58:28.000Z","dependencies_parsed_at":"2024-09-07T12:28:05.555Z","dependency_job_id":"af0081da-2acc-467a-9e42-7e6e189f95fc","html_url":"https://github.com/MRPT/mvsim","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRPT%2Fmvsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRPT%2Fmvsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRPT%2Fmvsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRPT%2Fmvsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MRPT","download_url":"https://codeload.github.com/MRPT/mvsim/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501558,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gazebo","mrpt","robotics","robots","ros","ros-node","ros2","sensors","simulation","vehicle-dynamics"],"created_at":"2024-11-07T04:22:22.099Z","updated_at":"2025-05-16T09:06:34.108Z","avatar_url":"https://github.com/MRPT.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![mvsim](https://circleci.com/gh/MRPT/mvsim.svg?style=svg)](https://circleci.com/gh/MRPT/mvsim) [![Documentation Status](https://readthedocs.org/projects/mvsimulator/badge/?version=latest)](https://mvsimulator.readthedocs.io/en/latest/?badge=latest)\n[![CI Linux](https://github.com/MRPT/mvsim/actions/workflows/build-linux.yml/badge.svg)](https://github.com/MRPT/mvsim/actions/workflows/build-linux.yml)\n[![CI Check clang-format](https://github.com/MRPT/mvsim/actions/workflows/check-clang-format.yml/badge.svg)](https://github.com/MRPT/mvsim/actions/workflows/check-clang-format.yml)\n\nMultiVehicle simulator (MVSim)\n======================================\nLightweight, realistic dynamical simulator for 2D (\"2.5D\") vehicles and robots.\nIt is tailored to analysis of vehicle dynamics, wheel-ground contact forces and accurate simulation of typical robot sensors (e.g. 2D and 3D lidars).\n\nThis package includes C++ libraries, standalone applications, and ROS 1 and ROS 2 nodes.\n\nLicense: 3-clause BSD License\nCopyright (C) 2014-2024 Jose Luis Blanco \u003cjlblanco@ual.es\u003e (University of Almeria) and collaborators\n\nPlease, refer to [the MVSim SoftwareX paper](https://www.sciencedirect.com/science/article/pii/S2352711023001395) (or the [ArXiV preprint](https://arxiv.org/abs/2302.11033))\nfor a gentle introduction to the project architecture.\nIf you want to cite MVSim in your work, please use:\n\n    @article{blanco2023mvsim,\n      title = {MultiVehicle Simulator (MVSim): Lightweight dynamics simulator for multiagents and mobile robotics research},\n      journal = {SoftwareX},\n      volume = {23},\n      pages = {101443},\n      year = {2023},\n      issn = {2352-7110},\n      doi = {https://doi.org/10.1016/j.softx.2023.101443},\n      url = {https://www.sciencedirect.com/science/article/pii/S2352711023001395},\n      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}\n    }\n\nROSCon talk\n------------------\nSpanish talk with English slides and subtitles ([slides here](https://docs.google.com/presentation/d/1jX8t1r82vp8MIQP5u1t9bVTtG0XgmjDTtLI7z3Yamzc/edit?usp=sharing)):\n\n[![MvSim ROSCon talk](https://img.youtube.com/vi/WNBqH6SWlRQ/0.jpg)](https://www.youtube.com/watch?v=WNBqH6SWlRQ)\n\n\nInstallation\n--------------------\n\nSee [installation documentation](https://mvsimulator.readthedocs.io/en/latest/install.html) for all the details and options. \n\nThe easiest way to install if you already have ROS 1 or ROS 2 is:\n\n    sudo apt install ros-$ROS_DISTRO-mvsim\n\nThen jump to [next steps](https://mvsimulator.readthedocs.io/en/latest/first-steps.html) to see how to launch some of the demo worlds.\n\n\nDemo videos\n--------------------\n\n![screenshot-demo](docs/imgs/mvsim-ros2-demo.gif)\n\n[![MvSim intro](https://img.youtube.com/vi/xMUMjEG8xlk/0.jpg)](https://www.youtube.com/watch?v=xMUMjEG8xlk)\n\n\nBuild matrix status\n--------------------\n\n| Distro | Build dev | Build releases | Stable version |\n| ---    | ---       | ---            | ---         |\n| ROS 1 Noetic (u20.04) | [![Build Status](https://build.ros.org/job/Ndev__mvsim__ubuntu_focal_amd64/badge/icon)](https://build.ros.org/job/Ndev__mvsim__ubuntu_focal_amd64/) |  amd64 [![Build Status](https://build.ros.org/job/Nbin_uF64__mvsim__ubuntu_focal_amd64__binary/badge/icon)](https://build.ros.org/job/Nbin_uF64__mvsim__ubuntu_focal_amd64__binary/) \u003cbr\u003e arm64 [![Build Status](https://build.ros.org/job/Nbin_ufv8_uFv8__mvsim__ubuntu_focal_arm64__binary/badge/icon)](https://build.ros.org/job/Nbin_ufv8_uFv8__mvsim__ubuntu_focal_arm64__binary/) \u003cbr\u003e armhf [![Build Status](https://build.ros.org/job/Nbin_ufhf_uFhf__mvsim__ubuntu_focal_armhf__binary/badge/icon)](https://build.ros.org/job/Nbin_ufhf_uFhf__mvsim__ubuntu_focal_armhf__binary/)  | [![Version](https://img.shields.io/ros/v/noetic/mvsim)](https://index.ros.org/search/?term=mvsim) |\n| ROS 2 Humble (u22.04) | [![Build Status](https://build.ros2.org/job/Hdev__mvsim__ubuntu_jammy_amd64/badge/icon)](https://build.ros2.org/job/Hdev__mvsim__ubuntu_jammy_amd64/) | amd64 [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mvsim__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mvsim__ubuntu_jammy_amd64__binary/) \u003cbr\u003e arm64 [![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mvsim__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mvsim__ubuntu_jammy_arm64__binary/) | [![Version](https://img.shields.io/ros/v/humble/mvsim)](https://index.ros.org/search/?term=mvsim) |\n| ROS 2 Jazzy @ u24.04 | [![Build Status](https://build.ros2.org/job/Jdev__mvsim__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Jdev__mvsim__ubuntu_noble_amd64/) | amd64 [![Build Status](https://build.ros2.org/job/Jbin_uN64__mvsim__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mvsim__ubuntu_noble_amd64__binary/) \u003cbr\u003e arm64 [![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mvsim__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mvsim__ubuntu_noble_arm64__binary/) | [![Version](https://img.shields.io/ros/v/jazzy/mvsim)](https://index.ros.org/search/?term=mvsim) | \n| ROS 2 Rolling (u24.04) | [![Build Status](https://build.ros2.org/job/Rdev__mvsim__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Rdev__mvsim__ubuntu_noble_amd64/) | amd64 [![Build Status](https://build.ros2.org/job/Rbin_uN64__mvsim__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uN64__mvsim__ubuntu_noble_amd64__binary/) \u003cbr\u003e arm64 [![Build Status](https://build.ros2.org/job/Rbin_unv8_uNv8__mvsim__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uNv8__mvsim__ubuntu_noble_arm64__binary/) | [![Version](https://img.shields.io/ros/v/rolling/mvsim)](https://index.ros.org/search/?term=mvsim) |\n\n\n| EOL distro | Stable version |\n| ---    | ---       |\n| ROS 1 Melodic (u18.04) | [![Version](https://img.shields.io/ros/v/melodic/mvsim)](https://index.ros.org/search/?term=mvsim) |\n| ROS 2 Foxy (u20.04) | [![Version](https://img.shields.io/ros/v/foxy/mvsim)](https://index.ros.org/search/?term=mvsim) |\n| ROS 2 Iron (u22.04) | [![Version](https://img.shields.io/ros/v/iron/mvsim)](https://index.ros.org/search/?term=mvsim) |\n\n\nDocs\n----------\n  * [Main documentation site](https://mvsimulator.readthedocs.io/en/latest/)\n\nIf you clone this repository, remember to checkout the git submodules too:\n\n    git clone https://github.com/MRPT/mvsim.git --recursive\n\nLaunch demos\n--------------\n\nSee more on first steps [here](https://mvsimulator.readthedocs.io/en/latest/first-steps.html).\n\nStandalone:\n\n    mvsim launch mvsim_tutorial/demo_warehouse.world.xml\n    mvsim launch mvsim_tutorial/demo_2robots.world.xml\n    mvsim launch mvsim_tutorial/test_mesh.world.xml\n\n\nROS 1:\n\n    roslaunch mvsim demo_depth_camera.launch\n\nROS 2:\n\n    ros2 launch mvsim demo_warehouse.launch.py\n    ros2 launch mvsim demo_depth_camera.launch.py\n\nMain features\n--------------\n  * Lightweight in memory, CPU and library requirements.\n  * Fully configurable via `.xml` \"world\" files.\n  * Headless mode, suitable for dockerized environments.\n  * World maps:\n    * Occupancy gridmaps: input as images or MRPT binary maps (from icp-slam, rbpf-slam, etc.)\n    * Elevation meshes.\n  * Vehicle models:\n    * Differential driven (2 \u0026 4 wheel drive).\n    * Ackermann steering (kinematic \u0026 dynamic steering, different mechanical drive models).\n    * Ackermann steering with mechanical differentials of full grade.\n  * Sensors:\n    * 2D and 3D Lidars: Robots see each other, their own bodies, etc.\n    * RGB cameras\n    * Depth cameras\n  * Interface to vehicles: Custom Python interface, or ROS. Choose among:\n    * Raw access to forces and motor torques.\n    * Twist commands (using internal controllers).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrpt%2Fmvsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrpt%2Fmvsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrpt%2Fmvsim/lists"}