The RosInterface is part of the V-REP API framework and is courtesy of Federico Ferri. Make sure not to mix up the RosInterface with the RosPlugin, which is an older, deprecated interface in V-REP. The RosInterface duplicates the C/C++ ROS API with a good fidelity. This makes it the ideal choice for very flexible communication via ROS, but might require a little bit more insight on the various messages and the way ROS operates. You can recognize RosInterface API functions from the simExtRosInterface_ prefix.

ROS is a distributed pseudo operating system allowing for easy management and communication between multiple computers connected in a network. Please refer to the official ROS documentation for details about ROS.

V-REP can act as a ROS node that other nodes can communicate with via ROS services, ROS publishers and ROS subscribers.

The RosInterface functionality in V-REP is enabled via a plugin: or libv_repExtRosInterface.dylib. The code to the plugin is open source and is located in the programming/ros_packages folder. The plugin can easily be adapted to your own needs. The plugin is loaded when V-REP is launched, but the load operation will only be successful if roscore was running at that time. Make sure to inspect V-REP's console window or terminal for details on plugin load operations.

Have a look at following simulation scenes/model for a quick start with the RosInterface:

  • rosInterfaceTopicPublisherAndSubscriber.ttt
  • controlTypeExamples.ttt (focus on the red robot)
  • Models/tools/rosInterface helper tool.ttm (model allowing to operate V-REP in Synchronous mode, e.g. in order to manually step the simulation)
  • Also have a look at the ROS tutorial and the external controller tutorial.

    Recommended topics

  • RosInterface API functions
  • ROS tutorial