V-REP Player Changelog

What's new in V-REP Player 3.6.2

Jun 26, 2019
  • Fixed several bugs. Thanks to Jacob Smith, Mohsen Moradi Dalvand, Simon Birrell, Mathias Thor, Jedrzej Orbik and Liu Dong for noticing them or helping to resolve them.
  • PyRep, built on top of V-REP and courtesy of Stephen James (Imperial College London), is a Python toolkit for robot learning research. Compared to the remote client approach, it displays great speed improvements since remote procedure calls or synchronization are not required. This makes PyRep the perfect solution for learning algorithms in the areas of reinforcement learning, imitation learning, state estimation, mapping, and computer vision.
  • V-REP now also offers shadows support with vision sensors, when rendering via the OpenGL3 renderer plugin, courtesy of Stephen James (Imperial College London). See also the updated rendererDemo.ttt scene.
  • The sandbox script is now loaded from system/sndbxscpt.txt at start-up, and can contain similar callback functions as add-on scripts.
  • The BØ-based remote API now also allows to discontinue publishers and subscribers, without the need of restarting the client: simxRemovePublisher and simxRemoveSubscriber.
  • Named command-line arguments are now supported via the -G option. Those can be queried (e.g. by plugins) via simGetStringNamedParam.

New in V-REP Player 3.6.1 Rev 0 (Mar 15, 2019)

  • Fixed several bugs. Thanks to Julian Mayer and Boris Bogaerts for noticing them or helping to resolve them.
  • Switched to Qt5.12.1 on all 3 platforms
  • Added API function simApplyTexture.
  • The shape import/export functionality is now handled by a V-REP Plugin (v_repExtAssimp), based on the Assimp library. See here for the new API functions.

New in V-REP Player 3.6.0 Rev 0 (Feb 18, 2019)

  • Fixed several bugs. Thanks to Leon Masopust, Michael Tong, Zhengxing Yang, Lenka Pitonakova, Thomas Gurriet, Hervé Frezza-Buet, Justus Rijke, Stefan Müller, Julien Lechalupe, Tristan Gahler, Robert Peck, William Jones, Benjamin Erdemann and Ulrich Viereck for noticing them or helping to resolve them.
  • Script execution/calling order has been adjusted, for a more consistent and overall logical behaviour. This may have an impact on how a simulation runs in certain situations. The user can revert to previous behaviour by replacing sim.handleChildScripts, sim.launchThreadedChildScripts and sim.resumeThreads in the main script with sim.handleChildScripts_legacy, sim.launchThreadedChildScripts_legacy and sim.resumeThreads_legacy. A better alternative would be to adjust the Tree traversal parameter for scripts that require it.
  • Dynamics callback functions have been implemented and are supported in non-threaded child scripts and customization scripts.
  • Added a system callback function for customization scripts and add-on scripts that allows, during simulation, to control the execution of the main script: sysCall_beforeMainScript. This is useful to easily implement step-by-step simulation, or to easily synchronize the simulation with an external application.
  • Added a simple script debug functionality that allows to monitor function calls and watching variables.
  • The Lua commander now has dynamic variable completion, history, explicitely prints any variable, etc. Type help() for details.
  • Added following API functions: sim.setDebugWatchList, sim.getUserVariables and sim.getPersistentDataTags.
  • The Open Mesh plugin for V-REP now uses the latest OpenMesh library (V6.3) on all 3 platforms
  • A new version of the remote API is available: the BØ-based remote API. It is easier, more intuitive to use and much easier to extend than the legacy remote API. For a quick test, use the demo scene B0-basedRemoteApiDemo.ttt and one of the simpleTest B0-remote API clients located in programming/b0RemoteApiBindings/
  • Added a MessagePack module for Lua: lua-MessagePack, courtesy of Francois Perrad.
  • Added a MessagePack encoder/decoder for C/C++: msgpack-c, courtesy of Takatoshi Kondo and several others.
  • Added a MessagePack encoder/decoder for Matlab: matlab-msgpack, courtesy of Bastian Bechtold.
  • Added a MessagePack encoder/decoder for Java: msgpack-java, courtesy of Sadayuki Furuhashi and several others.
  • Added a CBOR encoder/decoder for Lua: Lua-CBOR, courtesy of Kim Alvefur.
  • Added an add-on script that acts as the server-side of the BØ-based remote API: vrepAddOnScript-b0RemoteApiServer.lua
  • Added a model that acts as the server-side of the BØ-based remote API: models/tools/b0RemoteApiServer.ttm
  • Added sim.getRandom, math.random2 and math.randomseed2 in order to provide individual random number generators for each script (math.random and math.randomseed share the same generator, independent of which script is calling)
  • The script editor functionality is now provided via a plugin: v_repExtCodeEditor. It allows to easily search/replace, do/undo, jump to specific functions, restart a script, offers non-modal customization script edition, etc. Code included via the require directive can automatically be opened and modified via the popup menu. You can temporarily revert to the old script editor functionality by adjusting variable useOldCodeEditor in file system/usrset.txt.
  • Added sim.textEditorOpen, sim.textEditorClose, sim.textEditorShow and sim.textEditorGetInfo
  • A VR interface for V-REP was developed by Boris Bogaerts. It can visualize any V-REP scene in steamVR (openVR) compatible VR devices and return user manipulations to V-REP. Installer files are available here (no compilation required, windows only). Instructions on how to use the interface are provided here.
  • A ROS-enabled e-puck, courtesy of Andrei Florea and Catalin Buiu, was added to the model library. More details can be found here.

New in V-REP Player 3.5.0 Rev 1 (Feb 7, 2018)

  • Fixed several bugs. Thanks to Steffen Hemer, Fangyi Zhang, virgile Daugé, Riccardo Spica, Filipe Rocha, Jacob Huesman, Matthew Veres, Robert Lang and Florian Golemo for noticing them or helping to resolve them.
  • Switched to Qt 5.9.0 LTS on all platforms.
  • Added an interface plugin to the BlueZero middleware. BlueZero (or BØ) is a cross-platform middleware which provides tools for interconnecting pieces of software running in multiple threads, multiple processes and even multiple machines.
  • From within a script, print() now prints to the status bar, instead of the console. This can be reverted with print=printToConsole. printf() is now also supported. Both, print and printf will now also print the content of tables.
  • Added a Lua commander plugin (read-eval-print loop), that adds a text input to the V-REP status bar, which allows entering and executing Lua code on the fly, like in a terminal. The code can be run in a sandbox script, or any other active script in V-REP
  • Moved all the source code items related to V-REP to github.
  • Switched to a cleaner API notation for Lua scripts: V-REP function names have moved to the sim. namespace (e.g. simGetObjectHandle is now sim.getObjectHandle), plugin function names have moved to specific namespaces (e.g. simExtOMPL_createStateSpace is now simOMPL.createStateSpace). The old API functions remain functional for backward compatibility. Known API functions in embedded scripts are automatically adjusted for that notation change. This makes scenes and models saved with this V-REP version not compatible with older V-REP versions, so make sure to backup your scenes and models. This automatic API function adjustment can be disabled, with changeScriptCodeForNewApiNotation in file system/usrset.txt.
  • Switched to a cleaner way of calling script code, by using predefined functions (e.g. sysCall_init, sysCall_actuation, etc. Check out this example). Scripts should now contain nothing else than functions anymore. The old way of calling scripts is however still supported for the sake of backward compatibility (but make sure not to mix both methods).
  • New joint callback functions have been implemented and are supported in non-threaded child scripts and customization scripts. The old joint control callback script functionality should not be used anymore and is not accessible anymore via the GUI, but is still operational (you can temporarily make it accessible again via enableOldJointCallbackScriptEdition in system/usrset.txt)
  • A new contact callback function has been implemented and is supported in non-threaded child scripts and customization script. The old contact callback script functionality should not be used anymore and is not accessible anymore via the GUI, but is still operational (you can temporarily make it accessible again via enableOldCustomContactHandlingEdition in system/usrset.txt)
  • New widgets and API functions were added to the custom UI.
  • Updated the content of v-repNotepad++.zip, which contains all V-REP-related calltips and syntax highlighting keywords for Notepad++.
  • Each scene object now also has a unique alternative name, which can be used for custom application, and which doesn't interfere with V-REP's object handle retrieval for associated code: sim.getObjectName, sim.setObjectName and sim.getObjectHandle can now be used with sim.handleflag_altname.
  • Added sim.getShapeViz, that allows to retrieve a shape's mesh and texture information
  • Added a tool that allows to step through a simulation by triggering each individual simulation step. Can also be used in replacement of the remote API or ROS synchronous mode. The tool is located in Models/tools/simulation stepper tool.ttm.
  • Added a vision sensor model that extracts 3D positions from blob detections: Models/components/sensors/Blob to 3D position.ttm.
  • Added a plugin that wraps the LibICP (Library for Iterative Closest Point Matching, by Andreas Geiger)
  • Added a plugin that wraps the OpenCV library, offering basic image processing and drawing functionality
  • Broke compatibility of the OMPL API functions: most functions do not return any value anymore (but might trigger exceptions), others return slightly different values, namely: simOMPL.compute, simOMPL.solve, simOMPL.getData, simOMPL.getPath and simOMPL.readState.
  • Broke compatibility of the simExtSurfaceReconstruction_reconstruct API function, which was replaced with simSurfRec.reconstruct_scale_space.
  • Added support for shared memory communication in the remote API. The code is courtesy of Benjamin Navarro. By specifying a negative port number, shared memory will be used instead of socket communication.
  • Added following API functions: sim.executeScriptString, sim.getApiFunc, sim.getApiInfo, sim.setModuleInfo and sim.getModuleInfo.
  • A Lanelet plugin for V-REP was developed by Cándido Otero, available here.
  • Modern Robotics: Mechanics, Planning, and Control, a new textbook by Prof. Kevin M. Lynch and Prof. Frank C. Park is available for free download here, and also available for purchase as hardback copy. Several V-REP examples and scenes are available here.

New in V-REP Player 3.3.2 (Aug 30, 2016)

  • Fixed several bugs. Thanks to Hao Wang, Robert Lang, Riccardo Spica, Matias Nitsche, Sven Knüppel, Ndivhuwo Makondo, Yu Zhang, Paul Santiago Tumbaco Casa, DeKita G. Moon, Rodrigo Moreno Garcia, Federico Ferri and Arjun Narayanan for noticing them or helping to resolve them.
  • Improved the point cloud functionality. You can now specify a minimum distance tolerance which is used to avoid duplicate points. The tolerance can be specified in the point cloud properties dialog, or via simInsertPointsIntoPointCloud or simInsertObjectIntoPointCloud.
  • Added a simulation model of the Sawyer robot: models/robots/non-mobile/Sawyer.ttm. The original CAD data is courtesy of Rethink Robotics.
  • Added an infinite floor model, that allows to mimic an infinite floor: Models/infrastructure/floors/infiniteFloor.ttm.
  • Added the paths and to the Lua path variable of all scripts.
  • Improved the Qt-based custom UI plugin: widgets can now be enabled/disabled, and event messages supressed when setting a widget value. An editing finished event can now also be generated for edit boxes.
  • Added a G-code interpreter that can be found in lua/gcode.lua. A demo scene was also added: Scenes/gCode.ttt.
  • Added several new API functions: simOpenTextEditor, simPackTable and simUnpackTable.
  • Added a first version of a SDF format importer plugin, courtesy of Federico Ferri. The plugin source code is located in programming/v_repExtSDF.
  • An SDL2 library plugin, courtesy of Tobias Benz, is available in programming/v_repExtSDL2 or here.

New in V-REP Player 3.3.1 (May 18, 2016)

  • Fixed several bugs. Thanks to Ahmed Yacine, Korolyov Alexei, Graeme Neff Wilson, Daniel Angelov, Scott Hissam, Mohammed Talha and Mark Fink for noticing them or helping to resolve them.
  • Added a new ROS plugin (RosInterface), which supports most standard ROS messages, and which naturally duplicated the ROS C/C++ API. We highly recommend to use this new ROS interface, rather than the previous one (RosPlugin). Both however can run side-by-side. The scene controlTypeExamples.ttt was adjusted and now includes an additional robot, which is controlled via the new RosInterface. A new scene was created that also illustrates the new RosInterface: rosInterfaceTopicPublisherAndSubscriber.ttt.
  • Added a new object type: octrees. They represent a spatial partitioning based of voxels and can be used for various purposes (e.g. simplified shape representation, occupancy grid/space, etc.). Octrees are collidable, measurable, detectable and renderable. New API function related to octrees are listed here.
  • Added a new object type: point clouds. They represent points stored inside of an octree-like data structure and can be used for various purposes (e.g. point storage and manipulation, etc.). Point clouds are collidable, measurable, detectable and renderable. New API function related to point clouds are listed here.
  • Added a new scene (collisionDetectionDemo.ttt), which illustrates V-REP's collision detection capabilities on dummies, shapes, octrees and point clouds.
  • Added a new scene (minimumDistanceCalculationDemo.ttt), which illustrates V-REP's minimum distance calculation capabilities on dummies, shapes, octrees and point clouds.
  • Added a new scene (proximitySensorDemo2.ttt), which illustrates V-REP's proximity sensor capabilities on dummies, shapes, octrees and point clouds.
  • Added two new scenes: octreeGenerationDemo.ttt and navigationWithinAPointCloud.ttt.
  • Added a new OMPL plugin function, that allows to specify several goal states for a given task: simExtOMPL_addGoalState. Following demo scenes now use this new functionality: motionPlanningDemo1.ttt, motionPlanningServerDemo.ttt and motionPlanningAndGraspingDemo.ttt.
  • Added a new type of custom user interface, based on a plugin and Qt: Qt-based custom UIs. A demo scene can be found at scenes/customUI-QtBased.ttt.
  • Added a menu item that allows to compute the inflated convex hull of a shape. This is useful in order to generate simplified collision object that are slightly bigger than their original. The menu item is located at [Menu bar --> Add --> Inflated convex hull of selection...]
  • Added stack functions that allow to hold almost any type of data or data structure. This is useful for flexible communication between plugins and scripts. Following new API functions now use stacks: simCallScriptFunctionEx, simRegisterScriptCallbackFunction and simSetScriptVariable.
  • Added setter and getter API function for the physics engine properties.
  • Added a newer version of the Bullet engine (i.e. V2.83). The new version offers now 4 different solver types: sequential impulse, NNCG, Dantzig, and projected Gauss-Seidel. All physics engine's plugins have been reworked.
  • Added two additional spherical vision sensors: they now allow to retrieve spherical RGB images, spherical depth buffers, or spherical RGB images and depth buffers: Models/components/sensors/spherical vision sensor RGB.ttm, Models/components/sensors/spherical vision sensor depth.ttm, Models/components/sensors/spherical vision sensor RGB + depth.ttm.
  • Reworked the Velodyne sensors, which are now using the new point cloud object. This means that sensor points can now be collidable, measurable and detectable.
  • Added three new API functions: simLoadImage, simGetScaledImage and simTransformImage.
  • Added a model, allowing to start, pause, stop or step a synchronous simulation, from a ROS node. The model is based on the new RosInterface and is located in Models/tools/rosInterfaceHelperTool.ttm
  • An IMU ROS plugin, courtesy of Bartolomeo Della Corte, is available here.

New in V-REP Player 3.3.0 (Feb 19, 2016)

  • Fixed several bugs. Thanks to Federico Ferri, Tiago Malheiro, Raimund Krenmueller, Ahmed Yacine, Matthias Ploner, Indranil Sur, Sung Kyun Kim, Andrew Hundt, Rik Timmers, Matthew Veres and Graeme Neff Wilson for noticing them or helping to resolve them.
  • Added a first version of a plugin that wraps OMPL, the Open Motion Planning Library. The plugin is courtesy of Federico Ferri. The source code of the plugin is located in programming/v_repExtOMPL/. Following demo scenes are now using the OMPL plugin functionality: motionPlanningDemo1.ttt, motionPlanningAndGraspingDemo.ttt, 3DoFHolonomicPathPlanning.ttt and 6DoFHolonomicPathPlanning.ttt, motionPlanningServerDemo.ttt.
  • Added a new remote API function that allows to call script functions: simxCallScriptFunction: this function is very useful when a regular API function is not available in the remote API, or when a succession of complex commands need to be executed locally. The demo scene remoteApiCommandServerExample.ttt was updated, as well as the related complexCommandTest.* files in programming/remoteApiBindings.
  • Added a new ROS service, ROS publisher type, and ROS subscriber type: simRosCallScriptFunction, simros_strmcmd_receive_data_from_script_function and simros_strmcmd_send_data_to_script_function. These are very useful when a regular API function is not immediately available in the ROS interface, or when a succession of complex commands need to be executed locally. Have a look at the demo scene rosTopicPublisherAndSubscriber2.ttt, which illustrates the new functionality.
  • Improved and corrected the simCallScriptFunction API function.
  • Added a new API function that allows computing manipulator joint values from a random end-effector pose: simGetConfigForTipPose. This function replaces the deprecated simGetMpConfigFromTipPose. The demo scene ik_fk_simple_examples/8-computingJointAnglesForRandomPoses.ttt illustrates this new function. This function was also added to the external IK together with the demo scene externalIkDemo3.ttt.
  • Added a new API function that allows generating a straight-line path between a robot configuration and a target end-effector pose: simGenerateIkPath. This function replaces the deprecated simFindIkPath.
  • Added two API functions that allow to directly modify script variables from a plugin, or from the main client application: simAppendScriptArrayEntry and simClearScriptVariable.
  • simLoadModule and simUnloadModule can now also be used from a script, in order to dynamically load/unload a plugin. Certain restrictions apply: in particular, if the plugin registered custom lua functions via simRegisterCustomLuaFunction without specifying the function name as functionName@pluginName, a crash might occure during the dynamic plugin unload operation.
  • Added an API function that allows to compute the Jacobian of an IK group: simComputeJacobian.
  • The V-REP source code can now be compiled for headless operation, without any Qt dependency. In that case however, the vision sensors will only generate an image content when the rendering is handled via a plugin (e.g. POV-Ray or and external renderer).
  • Added following new API functions: simComputeMassAndInertia and simGetExtensionString.
  • Added a model of the uArm with gripper and inverse kinematic routine: Models/robots/non-mobile/uarm with gripper.ttm
  • A constrained optimization IK plugin for V-REP, courtesy of Andrew Hundt, is available here. Installation instructions for Linux / OSX are available here.

New in V-REP Player 3.2.3 (Dec 9, 2015)

  • Fixed several bugs. Thanks to Karol Mocniak, Ana Lucia, Ricardo Azambuja, Diego Daniel Santiago, Graeme Neff Wilson, Anto Ronson and Minson Lee for noticing them or helping to resolve them.
  • Added a simulation model of the ABB IRB 4600-40/2.55 robot, courtesy of ABB. The model is located at Models/robots/non-mobile/ABB IRB 4600-40-255.ttm
  • Added a scene illustrating workspace visualization: scenes/workspace.ttt
  • Added several new API functions: simGetQHull, simGetDecimatedMesh, simExportIk.
  • Added two simple add-on functions illustrating scene content export/import: minimalisticExporter and minimalisticImporter.
  • Improved the convex hull calculation routines.
  • Added several convenience functions to morph shapes into their convex hull repesentation, to decimate shapes, and to extract a shape's inside. The functions can be accessed with [Menu bar --> Edit --> ...].
  • Added a new tutorial on building clean and efficient simulation models. This tutorial is a must for everyone who wishes to create his/her own models.
  • Simplified the BubbleRob tutorial.
  • Added a section about joint controllers and how to implement them within V-REP, or inside of an external application (e.g. a remote API client, or a ROS node).
  • Added a model of the P-Arm robot, and two of its grippers. The CAD data is courtesy of F&P Robotics. The models can be found at models/robots/non-mobile/P-Arm.ttm, models/components/grippers/P-Grip-straight.ttm and models/components/grippers/P-Grip-right-angle.ttm.
  • Modified the external IK source code, in order to support handling several instances of the same robot/kinematics, via the simEmbSwitch function. The source code can now also be compiled in double-precision.
  • Added two new demo scenes that illustrate the external IK functionality: scenes/externalIkDemo1.ttt and scenes/externalIkDemo2.ttt. Refer also to the related source code in programming/externalIkDemo1 and programming/externalIkDemo2.
  • Added several simple example scenes that illustrate how to use the inverse kinematics calculation module. The scenes can be found in scenes/ik_fk_simple_examples.
  • Updated the webcam plugin for V-REP, using the newest ESCAPI library. A model using that plugin can be found in Models/other/webcam.ttm. The source code of the plugin can be found in programming/windowsOnlyProjects/v_repExtCam.
  • Added a simulation model of the Velodyne VPL-16. The model can be found in Models/components/sensors/velodyne VPL-16.ttm.
  • Added a new API function that allows to call a script function from a plugin: simCallScriptFunction.