ZeroMQ remote API
The ZeroMQ remote API is one of several ways an application can connect with CoppeliaSim.
The ZeroMQ 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.). It offers all API functions also available via a CoppeliaSim script: this includes all regular API functions (i.e. sim.* -type functions), but also all API functions provided by plugins (e.g. simOMPL.*, simUI.*, simIK.*, etc.). The ZeroMQ remoteAPI represents a very thin Python wrapper around mentioned API functions, and can be used in the exact same way as from within a CoppeliaSim script.
The ZeroMQ remote API functions are interacting with CoppeliaSim via ZeroMQ and its interface plugin to CoppeliaSim and the ZMQ remote API add-on. All this happens in a hidden fashion to the user. The remote API can let one or several external applications interact with CoppeliaSim in a stepped (i.e. synchronized with each simulation step) or non-stepped way (i.e. the normal operation mode), and even remote control of the simulator is supported (e.g. remotely loading a scene, starting, pausing or stopping a simulation for instance).
Note: the ZeroMQ remote API also runs on CoppeliaSim V4.2.0, if you follow this procedure: clone the ZeroMQ remote API repository into your CoppeliaSim/programming folder. Then use this compatibility add-on and that script, and place them into your CoppeliaSim/ and CoppeliaSim/Lua folders respectively.
See programming/zmqRemoteApi folder or its related repository for examples.
ZeroMQ and CBOR are required packages:
Here a very simple example ZeroMQ remote API client code (run it in programming/zmqRemoteApi/clients/python/)
ZeroMQ is a required package:
Some examples can be found in programming/zmqRemoteApi/clients/cpp/. Build them with:
Here another very simple C++ ZeroMQ remote API client:
Connecting 2 or more CoppeliaSim instances can easily be achieved with following simple example of a child script: