authors, similarly to this project, developed more than
50 functions divided into six categories to interface
with the KUKA LBR iiwa manipulators—creating
the first Toolbox to interface with the KUKA
Sunrise.OS with functionalities like networking, real-
time control, point-to-point motion, setters, getters,
and physical interaction (Safeea & Neto, 2019).
1.1 Project Goals
The main goal of this project is to develop an easy-to-
use toolkit capable of interfacing with the TM5_700
collaborative robot. Since this specific robot shares
the same software and communication protocols with
the rest of the TM series cobots, the methods
developed can be used for every TMRobot, which is
already a significant advantage of the TMRobot
Series Toolbox. Other advantages are:
1) It takes the user away from having to learn a
new software associated with this robot’s
controller TMFlow;
2) Easy and fast interaction between the robot
and an external computer;
3) External sensors/devices are integrated into
the computer, and data are transmitted to/from
the robot via TCP/IP;
4) Complex applications can be included in the
external device allowing for more advanced
robot manipulation (i.e. machine learning,
vision);
5) Supplementing the robot’s system
functionalities with simulation capabilities.
The functions and methods within the package,
much like the KST toolbox, are divided into different
categories depending on their role: connection, setters,
getters, point motion, simulation, and gripper. A deep
study of the TMRobot manuals was required to define
which types of communication with external devices
were most suitable for the different functions
(Software Manual TMflow_ Software Version:
1.68_Document Version: 1.01 i Software Manual
TMflow Original Instruction Software Version: 1.68,
n.d.). With that, for the acquisition and manipulation
of robot parameters like joint values, end-effector
position, IO connectors, and others, the Modbus TCP
protocol was picked since, by extensive testing, it
turned out to be simpler and provide more
information. For the motion control of the robotic arm,
the socket TCP/IP transport protocol was used
alongside the robot’s external script protocol, which
defines the specific command exchange format
(Expression Editor and Listen Node Software Version:
1.80 Expression Editor and Listen Node, n.d.).
2 SYSTEM ARCHITECTURE
This project is composed of two main subsystems: the
operational subsystem, which incorporates the
TMRobot and its controller; and the control and
monitoring subsystem defined by the external device
and its properties. Figure 1 shows how these two
components interact. After deliberation and research
on projects with similar goals, we choose MATLAB
as the software to associate with the external device.
This is a tool that is in constant improvement. It is
flexible, versatile, and supports a variety of
communication protocols which represent an
essential requirement for this development.
MATLAB has been commonly used on a big scale in
the academic environment, so its high-level
programming structure is well-known, allowing users
with minimal experience to easily understand and
utilize this work.
Figure 1: System architecture and communication scheme.
2.1 Operational Subsystem: Robot
Controller
This subsystem is mainly responsible for interpreting
the commands and requests coming from the external
device, following the instructions on those
communication messages, moving the robotic arm to
the requested poses, sharing and setting different
parameters in the controller, and even confirming
connections and states of movements. For this to be
possible, some steps must be performed on the side of
the robot’s software TMFlow. As the scheme in
Figure 1 shows, to control the real robot to the extent
required, both Modbus TCP and SocketTCPListenner
servers need to be set up. To start the Modbus TCP
server, the user only needs to login into the TMFlow
software, open the settings menu, go to connection,
open the Modbus slave tab, select the communication
type, TCP, and enable the service.
To run the Socket server, it is required to create a
new project in the project tab and place the Listen
Node after the start block. Ensure the timeouts are set
to zero in the node properties and run that project.
Figure 2 shows this simple setup.