There are several ROS interfaces available for V-REP. Each one offers a specific behaviour, feature, or a way to operate:
The RosInterface: this is the last ROS plugin developed for V-REP. Unlike the RosPlugin, 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.
The RosPlugin: this is the first ROS plugin developed for V-REP. Unlike the RosInterface, the RosPlugin does not duplicate the C/C++ ROS API. Instead it represents a higher-level abstraction, and applies subscribed messages and emits topics automatically on/from scene objects. This can appear a little bit confusing, but allows in several cases to simplify the interaction with ROS. On the other hand, the RosPlugin is not very flexible, and does not directly support many standard ROS messages. For that reason, it often makes more sense to use the RosInterface instead of the RosPlugin.
The ROS plugin skeleton: this represents a skeleton project that can be used to create a new ROS plugin for V-REP. Make sure to first have a look at the RosInterface and RosPlugin source code before attempting to edit this project.
ROS interfaces developed by others: those are not directly supported by us. For instance, the V-REP ROS bridge.
All ROS interfaces can normally operate side-by-side, but we highly recommend you to first try your hands on the RosInterface, since this is the most flexible and natural approach. The packages to the first three above listed ROS interfaces are located in programming/ros_packages. Use the catkin tools to build those packages, otherwise you might run into difficulties.
Also have a look at the ROS tutorial and the external controller tutorial.