Skip to content

Introduction for developers


The developers section covers how to use drag&bot for developing and running new software components. It also includes a comprehensive view of the concepts and processes involved.


Experience with Linux, basic knowledge of git, programming skills in C++ or Python as well as a basic knowledge of ROS are expected to fully understand the concepts.

From a developer point of view, drag&bot can be understood as a modular and extensible software platform based on ROS. There are two main ways to extend drag&bot with new functionalities:

  • Function Blocks: Basic operations such as opening a gripper usually wrapping ROS service calls. Also logic functions, openCV algorithms, etc. They just run once each time they are executed in a program. As they are python snippets, they are very polyvalent.
  • Components: Drivers for new hardware. They can be installed in a robot system and remain active after starting. A component may include Function Blocks. For example, a component for a gripper contains function blocks for opening and closing, Modbus component contains Function Blocks for writing and reading registers.

drag&bot Studio offers an in-built IDE for Function Block programming. Components are programmed similarly to how ROS nodes are. ROS IDE section explains how to set up a working environment.

Developing a drag&bot compatible robot driver requires to support the RMI interface (Robot Movement Interface) which is public in our github repository. This section also includes some examples.

Please read our frequently asked questions for further useful information.

Examples, libraries and further useful source code can be found in our public github repository.