Robot Movement Interface overview¶
The Robot Movement Interface is a standardized way in drag&bot for communicating with industrial robots and therefore controlling them. The RMI provides a ROS interface based on topics, services and actions which is used to transform human friendly commands to robot-specific commands, as well as to access robot functionalities such as for example blending or force controlled commands without requiring a parallel independent or specific interface.
All robot drivers compatible with drag&bot must reproduce the topic and service definitions. A ROS Action is automatically constructed on top through a program called actionizer. This program can be found together with the RMI definition.
Some driver components templates are available as C++ and Python examples in dnb_ros_driver_templates repository
The first version was originally released as part of the ROS Industrial Consortium in 2016. Currently, the latest and maintained implementation can be found in our public repository.
Communication flow¶
In the following example you can see a sequence diagram how a 3rd party client can communicate with the drag&bot robot_movement_interface. Currently the interface is implemented by using the ROS (https://www.ros.org) middleware. This interface is reachable by using the ROS-Bridge with the WebSocket protocol.
More detailed information on the specific topics, services and messages can be found in the following chapters.