Legacy remote API

The legacy remote API, or just remote API, should not be mixed-up with the BØ-based remote API, which is a newer version of the remote API that is more flexible, easier to use and most importantly, much simpler to extend.

The remote API is part of the V-REP API framework.

The remote API allows to control a simulation (or the simulator itself) from an external application or a remote hardware (e.g. real robot, remote computer, etc.). The V-REP remote API is composed by approximately one hundred specific functions and one generic function, that can be called from a C/C++ application, a Python script, a Java application, a Matlab/Octave program, or a Lua script. The remote API functions are interacting with V-REP via socket communication (or, optionally, via shared memory). All this happens in a hidden fashion to the user. The remote API can let one or several external applications interact with V-REP in a synchronous* or asynchronous* way (asynchronous by default), and even remote control of the simulator is supported (e.g. remotely loading a scene, starting, pausing or stopping a simulation for instance).

The word Synchronous is used in the sense that each simulation pass runs synchronously with the remote API application (i.e. the simulator will wait for a trigger signal from a client to start next simulation pass at a time t+dt). This is different from synchronous/asynchronous in the sense of blocking/non-blocking operation. The remote API also supports blocking and non-blocking operations.

Make sure you understand how the remote API is operating by reading this section. Also have a look at the external controller tutorial.

The remote API functionality comes in 2 separate entities, that are interacting via socket communication:

  • the client side (i.e. your application): the remote API on the client side is available for many different programming languages. Currently following languages are supported: C/C++, Python, Java, Matlab, Octave and Lua. Bindings for other languages can easily be created by yourself. Instructions on how to enable the remote API on the client side are given here.
  • the server side (i.e. V-REP): the remote API on the server side is implemented via a V-REP plugin that is loaded by V-REP by default: v_repExtRemoteApi.dll, libv_repExtRemoteApi.dylib or libv_repExtRemoteApi.so. The plugin project files are located here. Instructions on how to enabled the remote API on the server side are given here.

  • Recommended topics

  • Enabling the remote API - client side
  • Enabling the remote API - server side
  • Remote API modus operandi
  • Remote API function list
  • Remote API constants