ROS 2 Interface

The ROS 2 Interface is part of the CoppeliaSim API framework and is courtesy of Federico Ferri. The ROS 2 Interface duplicates the C++ ROS 2 API with a good fidelity. This makes it the ideal choice for very flexible communication via ROS 2. You can recognize ROS 2 Interface API functions from the simROS2- prefix.

ROS 2 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 2 documentation for details about ROS 2.

CoppeliaSim can act as a ROS 2 node that other nodes can communicate with via services, topics and actions.

The ROS 2 Interface functionality in CoppeliaSim is enabled via a plugin: libsimExtROS2.*. The plugin can easily be adapted to your own needs. The plugin is loaded when CoppeliaSim is launched. Make sure to inspect CoppeliaSim'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 ROS Interface:

  • ros2InterfaceTopicPublisherAndSubscriber.ttt
  • controlTypeExamples/controlledViaRos2.ttt
  • models/tools/ros2Interface helper tool.ttm (model allowing to operate CoppeliaSim in stepped mode, e.g. in order to manually step the simulation)
  • Also have a look at the ROS 2 tutorial and the external controller tutorial.