CHANGELOG

Changelog for package mvsim

0.12.0 (2024-12-04)

  • DEM: add optional kernel filtering

  • document GPS sensors

  • Add new <marker> tag

  • Update README.md: Add link to ROSCon video

  • Fix loss of precision in box2d due to float in case of UTM coordinates

  • Merge pull request #57 from MRPT/wip/support_utm_coords Support UTM coords

  • Elevation queries: port float->double

  • Support world-wise coordinates offset for rendering

  • Elevation map: new input mode from DEM XYZRGB files

  • Moved Python and C++ tutorials directory to root level

  • Logger: show active logging status in GUI; better reordering of csv columns

  • Fix doxygen docs generation on RTD

  • ROS node: new argument “force_publish_vehicle_namespace”

  • Allow vehicle names to be parameterizable via expressions, environment variables, etc.

  • FIX: Wrong sensor pose rendering

  • Elevation map demo world: add GNSS sensor

  • LiDAR3D sensor: generate per-point timestamp (constants)

  • FIX: cmake export dependency on mrpt-topography

  • ROS node: publish NavSatFix messages

  • Add missing build dependency

  • Fix clang-format

  • Add new sensor: GNSS (GPS) devices

  • IMU C++ class: fix interface to replace the sensor with the GUI

  • imu.sensor.xml: Add a simple 3D model to visualize the sensor

  • Contributors: Jose Luis Blanco-Claraco

0.11.2 (2024-10-20)

  • Fix FTBFS in ROS 1

  • Contributors: Jose Luis Blanco-Claraco

0.11.1 (2024-10-17)

  • Great performance improvement for worlds with many (>100) block objects. Terrain elevation query function has been refactored to use a 2D hash-map instead of naively visiting all objects.

  • ROS node: use correct QoS for gridmap publication, and ensure it is published only once.

  • ROS 2: turtlebot demo: Fix RViz wrong camera topic name

  • ROS 2 1robot demo: update rviz config

  • ROS 2: Use correct QoS for (possibly namespaced) /tf & /tf_static

  • FIX: demo_1robot ROS2 launch error (wrong order in listing ros launch arguments)

  • version.h

  • Contributors: Jose Luis Blanco-Claraco

0.11.0 (2024-10-12)

  • docs: add new demo world

  • Add ros2 launch for new demo world

  • Colission fixed for elevation meshes at high speed

  • New world demo: road circuit

  • ElevationMap: Add option for rotating texture images

  • Implement cylinder ground bumps

  • demo_1robot: add launch arguments headless and use_rviz

  • HorizontalPlane: also supports elevation API now

  • Implement moving vehicles over ramps and blocks in general

  • Remove #if for older mrpt versions

  • FIXBUG: 2D LaserScanner sensor wouldn’t render custom visuals correctly if robot moves in 3D

  • Jackal robot model: Add new param “lidar2d_raytrace”

  • Finish texture partition of split meshes

  • Fix correct query point for determining elevation offset for blocks and vehicles

  • Automatically correct elevation of objects initialized on elevation maps

  • Move vehicle tilt calculation from ElevationMesh outside to World so it works with many other object types

  • source files: split simulation-related stuff into a new World_simul.cpp

  • CMake: prefer explicit file lists instead of file(GLOB …)

  • Add getElevationAt() virtual interface for all Simulable objects

  • Update README.md

  • Fix headless ros param name in demo params YAML file

  • Use new assimp feature to improve rendering of transparent meshes

  • elevation map demo: add trees

  • docs: add link to 3D objects repository

  • fix build for ROS 1

  • ROS: publish camera_info too for each camera sensor Backwards-incompatible change: Camera topics now are named as: veh/camera_name/image_raw instead of veh/camera_name, so the corresponding camera_info exists within its same namespace: veh/camera_name/camera_info.

  • Contributors: Jose Luis Blanco-Claraco

0.10.0 (2024-08-28)

  • Depend on new mrpt_lib packages (deprecate mrpt2)

  • Merge pull request #52 from finani/fix-fake-amcl Fix fake amcl topic (QoS Durability)

  • Update outdated copyright years in source files

  • Merge pull request #51 from finani/nav2-compatible Nav2 compatible

  • Update codebase to new clang-format style

  • Merge pull request #48 from finani/refactoring-node Refactoring node

  • Merge pull request #45 from finani/develop Add tf pub for each robot (support namespace)

  • Merge pull request #43 from kr-jschoi/fix-bug Fix namespace switching bug between mvsim.chassis_shape and mvsim.chassis_shape.wheel3 in /chassis_markers

  • Contributors: Inhwan Wee, Jose Luis Blanco-Claraco, finani, kr-jschoi

0.9.4 (2024-05-08)

  • Better detection of “in collision” flag.

  • Update to clang-format-14

  • Upgrade Joystick API so it works correctly with an arbitrary number of axes

  • ROS nodes: add collision state publishers for each vehicle

  • remove dead code

  • Contributors: Jose Luis Blanco-Claraco

0.9.3 (2024-04-24)

  • Fix usage of (new explicit) TPoint3D constructors

  • Contributors: Jose Luis Blanco-Claraco

0.9.2 (2024-03-21)

  • BUG FIX: 3D lidars should not ‘see’ XYZ corners of wheels

  • BUG FIX: gridmaps were published at a too high rate in the ROS 2 node

  • remove dead code

  • update header version

  • Contributors: Jose Luis Blanco-Claraco

0.9.1 (2024-03-05)

  • Fix use of mrpt bridge to publish XYZIRT point clouds too for ROS 1

  • Contributors: Jose Luis Blanco-Claraco

0.9.0 (2024-03-02)

  • Do not publish tf world->map

  • Expose do_fake_localization as ROS 2 launch file argument

  • fix build with older mrpt

  • 3D Lidar: also generate “ring” ID per point

  • Contributors: Jose Luis Blanco-Claraco

0.8.3 (2023-12-05)

  • Generate ground truth trajectory files in the TUM format

  • ROS nodes: add a timeout for cmd_vel commands, so the robots stop if input messages stop

  • Add rviz_plugin_tutorials dependency for ROS1

  • Contributors: Jose Luis Blanco-Claraco, Michael Grupp

0.8.2 (2023-10-06)

  • 3D LIDARs: Bilinear interpolation (when it makes sense) to obtain much smoother point cloud simulations

  • Add missing build dep on python3-pip. This was triggering errors on ROS 1 build farm dev builds.

  • Contributors: Jose Luis Blanco-Claraco

0.8.1 (2023-09-07)

  • Move the rawlog-generation option to the World global options instead of sensor-wise.

  • Create CITATION.cff

  • helios 32fov70 sensor.xml: Fix missing MVSIM_CURRENT_FILE_DIRECTORY tag

  • Fix crash in edge case with world file path in the current directory

  • Contributors: Jose Luis Blanco-Claraco

0.8.0 (2023-09-02)

  • Recursive “include”s are now possible.

  • All vehicle and sensor definitions are now exposed in public directory ‘definitions’ and are safe to be included from user worlds

  • ROS warehouse demos: fix wrong camera topicn ame in rviz

  • Add missing ROS 2 launch demo for greenhouse world

  • Add new variable: MVSIM_CURRENT_FILE_DIRECTORY

  • BUGFIX: In parseVars() in the XML parser

  • Debugging feature: MVSIM_VERBOSE_PARSE now also traces <variable> definitions

  • Contributors: Jose Luis Blanco-Claraco

0.7.4 (2023-08-30)

  • Add new LIDAR 3D models: Helios 32.

  • Removed LIDAR3D fbo_nrows parameter, automatically computed now from geometry solutions.

  • More optimal simulation of asymmetric 3D lidars.

  • Progress with RTD documentation.

  • Add proper bibliography; fix all docs warnings

  • ROS 2 warehouse demo: show 2D lidar in RVIZ too; add headless launch argument

  • New GUI editor feature: move sensor poses

  • Contributors: Jose Luis Blanco-Claraco

0.7.3 (2023-08-23)

  • Update python module install method to pip (fixes deprecation)

  • Improved docs

  • Contributors: Jose Luis Blanco-Claraco

0.7.2 (2023-08-12)

  • Joystick driving: added support for direct driving the vehicles with a joystick.

  • Fix rviz for ros1 demo

  • Better docs and more modern RST style.

  • More shadow tuning parameters.

  • IMU sensor now reads real vehicle linear acceleration.

  • Contributors: Jose Luis Blanco-Claraco

0.7.1 (2023-06-11)

  • ROS node: fix potential race condition creating publisher for highrate sensors

  • Add IMU sensors

  • New property <visual enabled=’true|false’>

  • lidar2d xml: add option “sensor_custom_visual”

  • FIX: Crash if launching an empty world

  • Trigger an error if using use_sim_time to avoid mistakes

  • Add new (fake) controller: twist_ideal

  • ROS 1: don’t enforce /use_sim_time

  • Add ROS 2 launch for the 2-robot demo

  • Fix cmake leftover

  • Contributors: Jose Luis Blanco-Claraco

0.7.0 (2023-04-21)

  • Automatic detection of collision shapes

  • Add turtlebot world demo

  • Rely on custom build of Box2D to increase the maximum polygon vertices count (8 to 12).

  • fix inconsistent use_sim_time value for ROS 2 (it should be false)

  • Expose shadow rendering parameters in the XML world file

  • Abort simulation on exceptions in headless mode too

  • ROS 1 and 2 nodes now quit cleanly and quickly with SIGINT

  • Add ros2 launch for turtlebot world demo

  • Automatic determination of zmin/zmax for blocks if not explicitly set in XML

  • Force c++17 for python module

  • Exit simulator on exceptions in GUI-related threads

  • More automated testing

  • Add unit tests in C++ too

  • Refactor collision shape determination

  • New UI checkbox: show collision shapes

  • Allow simply geometry definitions without external 3D model file for “blocks”

  • Light options are now under <light> XML tag.

  • Largest default physics simulation timestep changed from 50ms to 5ms

  • GUI: change light direction

  • Add GUI checkbox to enable/disable shadows

  • Add rplidar A2 sensor model

  • Contributors: Jose Luis Blanco-Claraco

0.6.1 (2023-03-04)

  • New XML parameters to enable and tune shadowmap generation

  • Use finer timestep for prevent wrong simulation of ramp sliding

  • Fix code notation

  • Temporary workaround to GH CI problem

  • Contributors: Jose Luis Blanco-Claraco

0.6.0 (2023-02-26)

  • Support for SkyBox rendering (requires MRPT >=2.7.0)

  • More camera options in world.xml files (initial azimuth, elevation, etc.)

  • Terrain elevation models now support repeated textures (requires MRPT >=2.7.0)

  • Faster 3D Lidar rendering (Requires MRPT >=2.7.0)

  • Add Ouster OS1 sensor file

  • Fix default friction coefficients; draw motor torques too

  • More accurate Velodyne simulation based on sensor_rpm parameter

  • Clearer code and code style conventions

  • Add “<static>” XML tag for large, static world objects

  • Support for XML tag <if …>

  • Refactor xml parser as a registry of tag->function

  • Examples renamed for conciseness: ‘mvsim_demo_*’ to ‘demo_*’

  • Added a “greenhouse” example world

  • Wheels: allow linked-yaw-objects in vehicle viz

  • Support several <visual> tags in custom visualization models

  • pybind11 sources simplification. Simplify into one single source tree with conditional compilation for different pybind versions.

  • Emit clearer warnings and earlier detection of wrong bounding boxes

  • Add reference to (preprint) paper

  • Controllers: Made threadsafe

  • Contributors: Fernando Cañadas, Jose Luis Blanco-Claraco

  • BUGFIX: program did not quit if using a non-existing launch file.

  • BUGFIX: unneeded friction coefficient for chassis body

  • BUGFIX: bbox for compound vehicle models

  • BUGFIX: <for> loops ignored more than one inner tag

  • BUGFIX: Add epsilon value for bbox determination in 3D models

0.5.2 (2023-01-27)

  • FIX build farm errors in armhf builds

  • Contributors: Jose Luis Blanco-Claraco

0.5.1 (2023-01-26)

  • FIX: Stuck unit test runs in armhf build farms

  • Add demo with a large number of robots (100) in a simple setup

  • Support <for> loops in world definition files

  • Contributors: Jose Luis Blanco-Claraco

0.5.0 (2023-01-09)

  • New warehouse demo world file, including ros2 launch.

  • New feature: download models from remote servers.

  • Add 3D Lidar sensor.

  • Add support for headless simulations (mvsim launch –headless), suitable for running inside docker containers

  • New world element: vertical planes.

  • Add <for /> loops in XML world files

  • Support for formulas in XML files via exprtk expressions

  • Fix naming convention; fix warnings

  • Move to clang-format-11

  • More consistent class member naming convention

  • Add simple Velodyne sensor DAE model

  • Add wget as build and runtime dep

  • PubSub system: Implemented the feature to notify subscribed clients about a new publisher for a topic

  • New 3D model: pioneer3

  • ROS: Add build and test dep python3-protobuf

  • Added unit tests

  • mvsim cli: add the –realtime-factor flag

  • more topic echo types

  • publish 2D lidar observations as custom protobuf msgs too

  • Add new protobuf msg type ObservationLidar2D.proto

  • add shutdown service

  • Fixed Python topic subscription and parsing

  • avoid potential crash during shutdown

  • FIX: Timelogger verbosity level is now copied from the main World object.

  • BUGFIX: Lidar sensors with ignore_parent_body=true should neither see the wheels

  • Tune PID parameters of examples

  • Refactoring and simplification of mutexes

  • cache GetServiceInfoRequest() calls (more efficient service calls in comms::Client)

  • factorize World services into its own .cpp file for clarity

  • Contributors: Jose Luis Blanco-Claraco

0.4.3 (2022-11-14)

  • add names to gl objects (useful to debug)

  • configurable gui open timeout

  • GUI: new button Editor->Export 3Dscene file

  • Add a warning if using a physics timestep is incompatible with the sensor periods

  • FIX: more accurate simulation of timesteps; more mutexes

  • automatic determination of timestep; FIX bug: constant offset in simul time

  • fix FBO api for mrpt 2.5.6

  • fix build against mrpt 2.5.6; fix infinite loop while hitting quit button

  • refactor TCLAP objects to avoid global object initialization fiasco crashes

  • handle old and new versions of tf_geometry_msgs

  • mvsim cli new command: topic hz

  • Fix ROS2 obsolete header

  • fix build for u18.04

  • fix for older zmq versions

  • fix newest zmq deprecated warnings

  • FIX: DAE file error to load on newer version of assimp

  • provide cmake config types for gcc sanitizers

  • fix zmq API in bionic

  • avoid zmq_message_t ctor; more parallel threads for ZMQ

  • make the get_pose() service to answer immediately without needing to acquire the main simulation mutex

  • fix escaping

  • more portable makefile comparison for libbox2d version

  • d/rules: auto detection of system libbox2d version

  • Contributors: Jose Luis Blanco-Claraco

0.4.2 (2022-10-19)

  • Disable Python wrappers for python <3.8

  • Honor DESTDIR when building and installing

  • Honor cli-provided PYTHON_INSTALL_DIRECTORY via cmake flags

  • Fix protobuf-generated broken Python3 imports (using protoletariat)

  • Add new WorldElement type: pointcloud

  • Add Python3 example for teleop twist

  • Contributors: Jose Luis Blanco-Claraco

0.4.1 (2022-10-13)

  • Add more documentation, demo files, and screenshots

  • Support animations from keyframe list for blocks and vehicles

  • Refactor common xml params in Simulable interface

  • Support PARENT_NAME usage in sensor definition files; add “<publish>” tags to tutorial sensors

  • 2D lidar sensor: new XML parameter maxRange

  • change threshold to decimate sensors preview subwindows

  • BUGFIX: Uninitialized quaternion in rviz marker (Closes #14)

  • Allow expressions in include tags

  • Expose more lidar params in its XML

  • Contributors: Jose Luis Blanco-Claraco

0.4.0 (2022-09-27)

  • Major new release with tons of new features.

  • New sensors: RGB, depth, RGB+D cameras

  • Support for ROS1 and ROS2.

  • Sensors now can have 3D models.

  • New GUI controls to customize visualization.

  • New 3 and 4 wheels differential kinematic models.

  • Allow “include”s in XML files.

  • Add 3D Jackal robot model.

  • ROS nodes: publishers in parallel thread

  • mvsim-cli new flag to enable full profiling

  • Use new nanogui feature to limit GUI refresh rate

  • Fix running faster than real-time

  • More consistent timestamping of simulated sensors

  • mvsim now shows program version info

  • get_pose() service now also gets twist

  • Fix elevation maps

  • pybind11 per-version directory

  • Remove trailing ‘/’ in tf frame names for consistency with modern conventions.

  • Rename COPYING -> LICENSE

  • Contributors: Jose Luis Blanco-Claraco

0.3.2 (2022-06-21)

  • Install models/ subdirectory too

  • Changes towards building for both ros1 & ros2

  • Copyright date bump

  • Fix build and dependencies for ROS1.

  • Fix build w/o python

  • Fix consistent include path for installed targets

  • BUGFIX: Fix random SIGSEGV due to unsafe shared global object for random number generation

  • Fix no installation of mvsim_msgs python module

  • Fix demo robot starts out of the map

  • Contributors: Jose Luis Blanco-Claraco

0.3.1 (2022-04-25)

  • update 2 robots demo

  • Add pybind11 as build dep

  • fix ros node compilation

  • fix build w/o ros

  • Fix compilation of the ROS1 node against the latest mvsim libraries

  • Fix cmake policy error in pybind11

  • Add missing ros deps

  • Add missing build dep box2d-dev

  • Update README.md

  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

0.3.0 (2022-03-04)

  • RGBD camera simulation

  • MRPT 2.x is now required to build mvsim.

  • Update build dep to mrpt2

  • License changed to 3-clause BSD.

  • Merge pull request #11 from SRai22/patch-1 Update install.rst: needs libprotobuf-dev and libpython3-dev for building from source

  • New checkboxes to see sensor poses and FOVs

  • Lidar: ignore parent body option

  • Lidar: realistic 3D raytrace mode

  • enable textures in planes

  • add support for ground and ceiling planes

  • clean elevation mesh code

  • save_to_rawlog option

  • register callbacks instead of virtual functions

  • New command “topic echo NAME”

  • Add support for intangible blocks; publish relative poses

  • Add support and example for standalone sensors

  • allow changing the server IP or address

  • add optional profiler to Client

  • Protect main socket with mutex

  • fix walls rendering; add new walls demo xml

  • allow custom user 3D objects

  • timelog format fix

  • show class name in timelogger

  • World: expose GUI object

  • GUI and minor tweaks

  • much faster models loading

  • fix wrong collision resetting

  • safer report collisions

  • Fix usage of the update_fps parameter

  • Fix build against mrpt 2.1.8

  • force build against python3

  • more standard python3 deb pkg generation

  • solved python pkg problem in bionic

  • fix python in bionic

  • debian: fix python3 install dir

  • add missing python3 dep

  • fix deb python packaging

  • remove useless cmake include

  • first fully-working set_pose from python

  • Progress with python wrappers

  • Enhance python wrapper

  • Document a minimum size limitation in box2d.

  • small preliminary test for camera sensor

  • Use newer mrpt-gui window manager

  • Fix wallHeight wall parameter correct usage

  • editor: basic rotate and move objects

  • refactor gui code into smaller methods

  • fix rendering of non-custom objects

  • functional replace by coordinates

  • Progress with replace GUI

  • progress with bbox rendering

  • progress with mouse move UI

  • refactor: unify all simulable objects in one list

  • update asserts to latest mrpt2 names

  • Better service response

  • safer multithread gui

  • avoid possible exception in serialization

  • Return collision state

  • Detect and report collisions

  • add setStatic method

  • progress debugging ramps

  • Add incremental set_pose srv

  • add get_pose() service

  • Import walls working

  • walls progress

  • progress loading wall models

  • Start doxygen integration in docs

  • fix not seeing the robot owns body

  • subscription works; example updated

  • Feature: XML variables parsing

  • update pybind11

  • done topic subscriptions; fix proper thread joinable checks.

  • basic subscription works

  • progress subscribe topics

  • fix crash upon exit due to unjoined threads

  • use -dbg postfix for debug libraries

  • implemented command topic list

  • docs on world xml parameters

  • fix visualization of sensors in custom viz models

  • add missing file

  • Add ZMQ monitor to connections

  • fix install include dir

  • fix copy pb hdr files

  • clear leftover traces

  • auto bbox from visuals

  • More modular debian packaging

  • services and set_pose() is working

  • progress implementing services

  • Blocks and vehicles publishes their pose

  • Large code refactor: - Use mrpt::math types for twist and points - Use smart pointers - Remove duplicated code via new methods in base class Simulable

  • done with publishTopic()

  • advertise topics

  • done list nodes command

  • implement query node list

  • refactor Client without parallel thread

  • refactor mvsim-cli sources

  • progress server

  • fix cmake exported targets

  • fix install

  • unregister nodes

  • basic python bindings

  • refactor into modules

  • progress with server parsing messages

  • verbosity levels in client

  • ignore files

  • refactor into one main cli tool: mvsim

  • zmq forwards header

  • add thread names

  • fix build against zmq<4.4

  • First zmq message interchanges

  • basic server thread infraestructure

  • progress defining client/server protocol

  • Add alternative 3D visualization to blocks and vehicles

  • start refactor for visual objects

  • fix -Werror error in u18.04

  • Add zmq and protobuf

  • prefer std::move

  • Enforce override keyword

  • use system logger instead of cout

  • avoid raw pointer for box2d instance

  • refactor param structures

  • fix opengl memory leak

  • Port to nanogui

  • done port to mrpt2

  • prefer nullptr

  • narrower mrpt dependencies

  • port docs to sphinx

  • add circle-ci

  • reorganize badges

  • fix main doc file

  • fix debian installed files path

  • use system libbox2d

  • add debian packaging files

  • modernize: cmake exported targets

  • show box2d system library version

  • cmake commands to lower case

  • Contributors: Jose Luis Blanco-Claraco, Shravan S Rai

0.2.1 (2019-04-12)

  • Fix build against latest mrpt-master & 1.5.x versions.

  • add ROS build farm badges

  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco, Julian Lopez Velasquez

0.2.0 (2018-06-28)

  • fix build against mrpt1

  • update to package XML format 2

  • fix build in mrpt 2.0

  • use docker in travis

  • Allow mvsim to be built w/o ROS again

  • Merge pull request #10 from spsancti/master GSoC contribution to mvsim See discussion thread: https://github.com/MRPT/GSoC2017-discussions/issues/2

  • Added description of world files

  • Added description of loggers and Ward-Iagnemma friction model

  • Added refernce to Torsen-defferntial

  • Added desctiption of Ackermann-drivetrain dynamics

  • Added Doxyfile

  • Added user manual with basic friction model described

  • Added text logger for CSV format

  • Add mvsim slam demo.

  • fix catkin deps: it now requires mrpt_bridge

  • LaserScanner: new option to make all fixtures invisible

  • Contributors: Borys Tymchenko, Jose Luis Blanco Claraco, Logrus

0.1.2 (2015-05-24)

  • Cleaner build against mrpt 1.3.0

  • Fix build against mrpt 1.3.0

  • Contributors: Jose Luis Blanco

0.1.1 (2014-12-28)

  • First public release.

  • Contributors: Jose Luis Blanco