Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ual-arm-ros-pkg/mvsim.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-16 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ual-arm-ros-pkg/mvsim.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-16 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ual-arm-ros-pkg/mvsim.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-16 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_tutorials | |
| mrpt_path_planning |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ual-arm-ros-pkg/mvsim.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-16 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MRPT/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]
Messages
Services
Plugins
Recent questions tagged mvsim at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ual-arm-ros-pkg/mvsim.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-02-23 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
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-2026 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):
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

https://github.com/user-attachments/assets/93c95aeb-71e9-4c35-b1dc-ba895c79daf7
Build matrix status
| Distro | Build dev | Build releases | Stable version |
|---|---|---|---|
| ROS 2 Humble (u22.04) | amd64 arm64 |
||
| ROS 2 Jazzy @ u24.04 | amd64 arm64 |
||
| ROS 2 Kilted @ u24.04 | amd64 arm64 |
||
| ROS 2 Rolling (u24.04) | amd64 arm64 |
| EOL distro | Stable version |
|---|---|
| ROS 1 Melodic (u18.04) | |
| ROS 1 Noetic (u20.04) | |
| ROS 2 Foxy (u20.04) | |
| ROS 2 Iron (u22.04) |
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
File truncated at 100 lines see the full file
Changelog for package mvsim
1.1.0 (2026-02-16)
- Merge pull request #91 from MRPT/fix/lidar-3d Lidar3D: fix min clip bug; add real intensity color
- Lidar3D: fix min clip bug; add real intensity color
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2026-02-08)
- Merge pull request #89 from MRPT/fix/elevation-2-wheels Fix elevation maps for 2-wheels vehicles
- Merge pull request #88 from MRPT/feat/human-actors Add: human actors
- Merge pull request #86 from MRPT/feat/publish-log-to-ros Optional publish to ROS2 all CsvLogger entries
- Merge pull request #85 from MRPT/feat/per-block-scale Feat/per-block-scale
- Implement per block scale (Fixes #38)
- Merge pull request #84 from MRPT/fix/box2d-bugs Fix/box2d-bugs
- docs: add ROS2 topics
- fix bug in setTwist()
- Fix wrong collision detection (Fixes #42)
- Fix linear acceleration
- Merge pull request #83 from MRPT/feat/new-joints Implement joints between archors
- Demo worlds: update to add RGBD camera in greenhouse
- ROS node: fix missing publication of RGBD CameraInfo for RGB channel
- Merge pull request #82 from MRPT/feat/rgbd-publish-new-types RGBD cameras: implement publishing depth and RGB clouds
- RGBD cameras: implement publishing depth and RGB clouds
- Merge pull request #81 from MRPT/fix/py-bytes Fix: use py-bytes
- Fix trying to decode strings as utf-8 (Closes #62)
- Merge pull request #80 from MRPT/feat/imu-noise IMU: add random walk and fix bug in acceleration
- Fix g sign
- Bump copyright year
- BUG FIX: Fix wrong linear acceleration in IMU readings
- Implement IMU noise model with random walk biases
- Rename ROS1 launch files so they don't interfere with autocomplete for ROS2
- indoor_outdoor demo: add IMU to robot
- Contributors: Jose Luis Blanco-Claraco
0.16.0 (2026-01-29)
- docs: add new demo worlds
- Remove debian leftover
- Merge pull request #78 from MRPT/feat/new-indoor-outdoor-world Feat/new-indoor-outdoor-world
- fix: ros node didn't publish CGenericPointsMap
- Functional walls with doors and windows with thickness
- Update vertical plane to have doors, windows, and thickness
- fix: lidar3d error with latest mrpt api
- docs: improve vehicles and physics docs
- CircleCI: update to build for u22.04
- Remove #if pragmas for too old mrpt versions
- Implement GNSS honor 'gps_no_coverage' property
- Add new world element: PropertyRegion
- misc clang-tidy fixes
- fix warnings for deprecated mrpt classes
- Merge pull request #70 from MRPT/feature/noisy-odometry Implement noisy odometry
- Implement noisy odometry
- Contributors: Jose Luis Blanco-Claraco
0.15.0 (2025-12-29)
- Fix build against upcoming mrpt 2.15.4
- Implement missing visualization of 3D LiDAR FOV 'frustrum'
- Merge pull request #69 from MRPT/feat/imu-with-heading IMU sensor: add support for optional global heading sensor
- Implement IMU sensor orientation mode
- Fix clang-tidy style warnings
- Fix misused get parameter API usage for use_sim_time
- cmake now builds embedded box2d using --parallel
- Contributors: Jose Luis Blanco-Claraco
0.14.2 (2025-11-10)
- Fix cmake requested mrpt 2.5.6, made version-less for forward compatibility
- Contributors: Jose Luis Blanco-Claraco
0.14.1 (2025-11-01)
- Fix build against mrpt >2.15.0
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_path_planning | |
| mrpt_rbpf_slam |
Launch files
- launch/launch_world.launch
- Generic ROS1 launch file
-
- world_file
- headless [default: False]
- do_fake_localization [default: True]
- publish_tf_odom2baselink [default: True]
- force_publish_vehicle_namespace [default: False]
- use_rviz [default: True]
- rviz_config_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.rviz]
- mvsim_tutorial/ros1_1robot.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_1robot.world.xml]
- mvsim_do_fake_localization [default: true]
- mvsim_tutorial/ros1_2robots.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_2robots.world.xml]
- mvsim_tutorial/ros1_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_camera.world.xml]
- mvsim_tutorial/ros1_depth_camera.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_depth_camera.world.xml]
- mvsim_tutorial/ros1_greenhouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_greenhouse.world.xml]
- headless [default: false]
- mvsim_tutorial/ros1_jackal.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_jackal.world.xml]
- mvsim_tutorial/ros1_turtlebot_world.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_turtlebot_world.world.xml]
- mvsim_tutorial/ros1_warehouse.launch
- ROS1 launch file. See *.launch.py files for ROS2 launch files
-
- world_file [default: $(find mvsim)/mvsim_tutorial/demo_warehouse.world.xml]

