imdsafi09 / mvsim

Vehicle dynamics simulator: C++ library, ROS1 & ROS2 nodes

Home Page:https://mvsimulator.readthedocs.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mvsim Documentation Status CI Linux CI Check clang-format

Distro Build dev Build releases Stable sync
ROS1 Melodic (u18.04) Build Status Build Status Version
ROS1 Noetic (u20.04) Build Status Build Status Version
ROS2 Foxy (u20.04) Build Status Build Status Version
ROS2 Humble (u22.04) Build Status Build Status Version
ROS2 Rolling (u22.04) Build Status Build Status Version

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-2023 Jose Luis Blanco jlblanco@ual.es (University of Almeria) and collaborators

screenshot-demo

MvSim intro

Docs

Launch demos

Standalone:

mvsim launch mvsim_tutorial/mvsim_demo_warehouse.world.xml
mvsim launch mvsim_tutorial/mvsim_demo_2robots.world.xml

mvsim launch mvsim_tutorial/test_mesh.world.xml

ROS1:

roslaunch mvsim mvsim_demo_depth_camera.launch

ROS2:

ros2 launch mvsim mvsim_demo_warehouse.launch.py
ros2 launch mvsim mvsim_demo_depth_camera.launch.py

Main features

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

Release checklist

  • catkin_generate_changelog
  • catkin_prepare_release
  • cmake . to update the version.h file.
  • commit
  • merge develop -> master
  • bloom-release

About

Vehicle dynamics simulator: C++ library, ROS1 & ROS2 nodes

https://mvsimulator.readthedocs.io/

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 85.4%Language:Python 8.3%Language:CMake 4.9%Language:Shell 1.0%Language:C 0.3%