ware designs (Costantini et al., 2021; Dyoub and De
Gasperis, 2017).
In this scenario, we introduce our extension of the
SkRobot server application (Di Ottavio, 2024b) to
foster effective data transfer between agents and in-
troduce rigorous production rules and reasoning.
2 RELATED WORKS
Designing a cognitive robot requires a multidisci-
plinary approach that combines many areas of ex-
pertise: systems and network engineering, physical-
environmental sciences, control systems and electron-
ics. Actual important stems of research are: (i) robot’s
operability and relative hardware resource manage-
ment, (ii) software control both at high and low level,
(iii) integration of multiple complex programs that in-
terface with environmental inputs such as audio or
video, and (iv) objects or sounds recognition.
2.1 Middleware Solutions
Researching of pre-built middleware and specialised
applications that simplify the development in afore-
said stems is a valuable activity. As standards de-
facto in this middleware solutions, we consider two
most valuable tools: Redis
1
that is commonly used
for real-time data brokering in distributed systems,
while in the SDKs sector ROS (Robot Operating Sys-
tem)
2
offers essential tools and libraries, facilitating
robotic functionalities without starting from scratch
(Quigley et al., 2009). Robot developers often im-
plement many features using ROS as middle-ware,
abstracting hardware to manage processes and com-
munication. Its modular architecture allows focused
development on navigation, perception, and control.
The active ROS community contributes to a reposi-
tory of software packages, solving common robotics
challenges and promoting innovation and efficiency
in robotic design. Despite this, ROS proves to be very
complicated in the installation and setup phases re-
lated to the development environment and in its inte-
gration into the operating system. Additionally, cre-
ating and maintaining development projects based on
ROS involves numerous procedures and formalities,
often in the form of artefacts that are unnecessary
for the development itself. The result is a very steep
learning curve, specially for robotics students, which
often drain resources from the theoretical concepts
underlying robot agent theory. Moreover, the only
1
https://redis.io, last accessed July 2024
2
https://www.ros.org, last accessed July 2024
ROS supported Unix-based operating systems are the
most recent versions of Ubuntu, Fedora, and Debian
GNU/Linux distributions. This excludes the possi-
bility of creating minimal embedded systems which
may not even require an OS, such as those based on
micro-controllers. SkRobot require few, at least (i.e.
without computer-vision, audio support and others),
Unix base system dependencies, as: libc, libstd++,
libssl, libpthread, libm, libz, other than an essential
C++ compilation environment, based on gcc (this is
preferable due to its open-source license, other than
its permissive checks) or also clang, with their tool-
chains, followed by make. These system parts are in-
stalled by default o many Unix-base system, anyway,
if not, their installation are commonly very simply on
each of these operating systems. If the need is to com-
pile some code based on SpecialK (Sk) (Di Ottavio,
2024c) that requires extended supports dependencies,
these could be more than many (i.e., the computer-
vision support requires the development package for
OpenCV-4.x, with its several dependencies).
2.2 SkRobot Server Application
The SkRobot FlowNetwork service, proposed in this
paper for TeleoR integration, relays upon SpecialK, a
previous work of authors those involved extensive ex-
perimentation with various application frameworks,
notably the Qt SDK (Dalheimer, 2002). In particular,
inspired by it, we adapted Qt’s Signal/Slot paradigm
to SpecialK, improving the traditional callback mech-
anisms used in ROS and creating complex yet man-
ageable connection graphs among class functional-
ities. However, Qt was eventually deemed unsuit-
able due to its high commercial costs and event man-
agement system, which does not prioritise time —
a critical factor for distributed systems with pseudo-
realtime synchronisation used in robotics. SpecialK
also integrated programming modalities found in
other platforms like C++ sketches from the Arduino
platform for firmware-oriented micro-controller pro-
gramming (Monk and McCabe, 2016). An inte-
gration layer of SpecialK’s is represented by the
Sk/PySketch engine (Di Ottavio, 2024a)
3, 4
. It is a
Python binding of the FlowProtocol, compatible with
Python versions 2.7.x/3.6 (and upper), that permits an
high-level and simple development way to create so
called satellites for FlowNetwork apparatuses
5
(Fig.
1a).
3
https://gitlab.com/Tetsuo-tek/SkRobot/-/blob/main/ex
amples/publisher.py, last accessed June 2024
4
https://gitlab.com/Tetsuo-tek/SkRobot/-/blob/main/ex
amples/subscriber.py, last accessed June 2024
5
https://gitlab.com/Tetsuo-tek/SpecialK/- /tree/mas
ter/LibSkCore/Core/System/Network/FlowNetwork, last
SkRobot with TeleoR/QuLog: A Pseudo-Realtime Robotics Data Distribution Service Extended with Production Rules and Reasoning
409