TalkRoBots: A Middleware for Robotic Systems in Industry 4.0 †
Abstract
:1. Introduction
- An architecture for the proposed Middleware is presented and compared with existing works.
- The supervision of a monitoring Cloud application is detailed.
- A resilience mechanism based on IA is integrated in Middleware.
- An analytical study related to the performances of the suggested Middleware is introduced.
- A simulator was developed in order to validate the results of the analytical study.
- Real experimental results are discussed.
2. Related Works
3. TalkRoBots Middleware Presentation
3.1. Architecture
- TalkRoBots Layer 1: This layer is designed as a gateway that handles the messages exchanged between the “TalkRoBots Package” and either ConnectToBots or the TalkRoBots Layer 2. On the one hand, it allows transparent and homogeneous communication between the heterogeneous robots and the external devices of the fleet. On the other hand, it handles the exchange between the Robotic Framework by using the “TalkRoBots Package” and the second level of Middleware TalkRoBots through ConnectToBots.
- ConnectToBots Layer: This layer acts as a communication bus that monitors the different connection ports of the embedded PC (USB, Serial port, etc.), which is connected to the robot. Then, it allows the identification and recognition of the plugged devices, including external sensors and actuators (temperature sensor, camera, RFID tag, etc.). Therefore, it allows adding new capacities to the concerned robots related to the plugged devices and makes them available to all those in the fleet.
- TalkRoBots Layer 2: It includes all services that are developed by the operator, such as the “Collaboration” and “Election” services. It is responsible for sharing data between the Cloud and the robotic fleet.
3.2. Communication
3.2.1. Routing
- Transmission Control Protocol (TCP) sockets used to communicate with the other robots and devices;
- The ID of the robot or the device associated with each socket;
- The list of sensors plugged on the remote robot.
3.2.2. Sensors Integration
3.2.3. Message Format
- Message Type:We defined three main different message types: Command, Request and Information. Command and Request types are handled differently according to the modes defined in Appendix A. In “direct” and “ros” modes, messages are sent directly to the robot without using the TalkRoBots package. Otherwise, in the same manner as for Information messages, they are sent field-by-field to the TalkRoBots package to be able to communicate with robots that cannot parse a received string message.
- Message Subtype:The Subtype field allows user to specify exactly what kind of Information, Command or Request it is sending. Although some Subtype fields are already predefined, such as “position” or “temperature”, for example, it may take whatever value. However, when using “direct” or “ros” mode, the Subtype needs to be defined accordingly in the configuration file presented previously in Figure A3. Otherwise, it is received as any other field by the TalkRoBots package.
- Source: It indicates the ID of the robot that sends the message.
- Target: It corresponds to the ID of the robot for which the message is addressed to.
- Size: It indicates the size of useful information.
- Data: It contains the data to be used.
3.2.4. Message Transmission Modes
- Interpreter Mode: In the case where a robot is not able to receive a command directly, messages will be received field-by-field in order to prevent compatibility problems if a robotic language cannot manipulate strings. In this case, two functions have to be implemented on the robot, in the robotic language, to define how to handle receiving and sending messages, when communicating with the TalkRoBots middleware. Figure 4 presents an example of an exchange between two robots in the Interpreter Mode. In this figure, Robot1 needs to share its position with Robot3. To do so, it sends a message to its TalkRoBots middleware. The latter prepares an object Message with these data. Then, the message is serialized in JavaScript Object Notation (JSON) format and encrypted using Transport Layer Security (TLS). The security mechanisms will be described in the next Section 3.3. When the message is received on the middleware of Robot3, it is verified and deserialized. Finally, it is sent field-by-field to Robot3.
- Direct Mode: If a message targeting a robot is a Command or a Request, the configuration file defined in Figure A3 is used to translate the message into the appropriate command using robotic language. This command is transmitted to the robot, and it is executed immediately. However, if the command is not referenced in the configuration file or if the file itself does not exist, the message is transmitted using the default mode (i.e., the Interpreter mode). Figure 5 shows an example of a Command message sent by a user to a robot. The first steps are the same as those described for the previous Figure 4. Once the message reached the middleware of the Robot3, we differentiate two cases. The first one corresponds to the case where the Subtype is properly defined in the configuration file so it can be transmitted using the Direct mode. The second one, used by default, relies on the Interpreter mode.
- ROS Mode: In the same manner as for the “direct mode”, a command/request message is associated through the configuration file to a ROS topic. A Topic message type is retrieved automatically and the TalkRoBots message is transformed into a corresponding ROS message and published in the right topic.
3.3. Security
4. Supervision and Monitoring Cloud Application
- Monitoring: This functionality permits the operator to monitor the status of each robot and to obtain information about its embedded sensors and/or other data shared with its environment.
- Controlling: Users can also control their robot, for example, moving them, through the Cloud interface, by only using a keyboard or a mouse.
- Tasks scheduling: One of the most valuable functionality is the task scheduler. The latter is based on the association of capacities (e.g., mobile, fly and grab) and skills (moving forward, take off and grab left) to each robot. By skills, we mean basics or complex actions already individually implemented on the robot. Furthermore, once a sensor is plugged into the embedded PC’s middleware, the robot connected to this middleware will acquire a new capacity that is offered by this sensor. For example, if we connect a temperature sensor, the robot will acquire the capacity of measuring the temperature. By performing this, this robot or another, could request the former and use this new available information to modify its behavior. In our experimental scenario, we pick up a box with an UR3 robot on the right or on the left side depending on the temperature’s value. Using the task scheduler, we can define a scenario and organize these skills in whatever order we want. Once a scenario is defined, it will be sent to the first robot(s), which will participate in the scenario; then, it will be completely and autonomously shared between the different actors at each step.
- Resilience: Another valuable functionality is the capability of handling a failure that occurs on one or several robots during a scenario. In fact, when a failure is detected, a faulty message is automatically sent from the embedded computer to the Cloud in order to alert the operator. Once this message is received, an algorithm is executed in order to compute the best alternative solution, guaranteeing the execution of the scenario. In the Industry 4.0 context, it is important that everything is under the operator’s control; thus, the calculated solution can be set so that it either requires its validation or is executed automatically. This algorithm is executed in different steps. Firstly, it requests the database to identify potential candidates. For this, we select the robots that have the same ability or abilities needed to perform the task that cannot be performed by the broken robot. Once the potential candidates are obtained, a ranking algorithm is executed according to several criteria that can be defined by the operator in order to choose the optimal alternative, as depicted in Figure 7.For this purpose, an Artificial Intelligence (AI) algorithm, denoted Analytic Hierarchy Process (AHP) [6], was adapted and implemented in order to suit our needs. The AHP algorithm can be summarized in the following steps:
- -
- Model the problem as a hierarchy containing the decision goal, the alternatives for reaching it and the criteria for evaluating the alternatives;
- -
- Establish priorities among the elements of the hierarchy by making a series of judgments based on pairwise comparisons of the elements;
- -
- Synthesize these judgments to yield a set of overall priorities for the hierarchy;
- -
- Check the consistency of the judgments;
- -
- Come to a final decision based on the results of the previous steps.
- The list of alternatives, ranked by score according to the AHP algorithm;
- A graphical representation of ranking scores;
- The parameter values currently set, which can be modified.
5. Performance Analysis
5.1. Analytical Results
5.2. Simulations
5.2.1. Simulation Settings
5.2.2. Simulation Results
6. Experimentation
6.1. Scenario Presentation
- The first task involves the robot, which receives the scenario from the Cloud. This task consists in moving the Ridgeback to the first Table (1) to catch up a box and to bring it to the conveyor’s entry (2). Once the task is completed, the robot sends an acknowledgment to the middleware, which will send the following tasks to the next actor(s). In our case, it is the conveyor. It will also forward the acknowledgment to the Cloud. Therefore, the operator can have feedback on the progress of the scenario.
- The conveyor is launched and moves the box from Table (2) to Table (3); then, it sends the next task to UR3.
- UR3 grasps the box from Table (3) and places it on the ground near itself. Afterwards, it sends the next task to Ridgeback.
- Ridgeback proceeds towards UR3. However, a simulated fault occurs on Ridgeback, which stops. An alert is sent to the operator through GUI, explaining that a problem has been observed with the ability of mobility for Ridgeback. The developed resilience mechanism suggests what other robots could replace it. Different choices are offered to the operator on HMI. These choices are ordered by priority according to different parameters: battery, position and availability (in this scenario, one of the Pioneer robots will be selected as the best alternative).
- Once this alternative is validated, the Pioneer moves to UR3. Then, it sends the next tasks to UR3 and the Drone. The drone and the arm receive the remaining tasks of the scenario and execute the first ones they are concerned with. The drone takes off and the arm, through the middleware, requests an external temperature sensor and picks a box on the left or the right side according to the response (above or below 20 °C). Once they are completed, they send an acknowledgement. Then, the remaining tasks are sent once again to the next actor (Pioneer).
- The Pioneer moves back to the Ridgeback and the latter can take the box and place it over its platform before sending the last tasks (landing) to the Drone and the Ridgeback (loading out).
6.2. Experimentation Results
6.3. Results Discussions
7. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Acronyms
ADH | Anonymous Diffie Hellman |
AES | Advanced Encryption Standard |
AGVs | Autonomous Guided Vehicles |
AHP | Analytic Hierarchy Process |
AI | Artificial Intelligence |
ARIA | Adaptive Robot-Mediated Intervention Architecture |
DSSs | Decision Support Systems |
DTLS | Datagram Transport Layer Security |
FMS | Flexible Manufacturing Systems |
GUI | Graphical User Interface |
ICT | Information and Communication Technologies |
IIoT | Industrial Internet of Things |
IP | Internet Protocol |
IPC | InterProcess Communication |
JSON | JavaScript Object Notation |
MIA | Middleware for Intelligent Automation |
PLC | Programmable Logic Controller |
RPC | Remote Procedure Call |
ROS | Robot Operating System |
SHA | Secure Hash Algorithm |
TCP | Transmission Control Protocol |
TLS | Transport Layer Security |
UDP | User Datagram Protocol |
VPN | Virtual Private Network |
Appendix A. Configuration Files
References
- Jaloudi, S. Communication Protocols of an Industrial Internet of Things Environment: A Comparative Study. Future Internet 2019, 11, 66. [Google Scholar] [CrossRef] [Green Version]
- Nakagawa, E.Y.; Antonino, P.O.; Schnicke, F.; Capilla, R.; Kuhn, T.; Liggesmeyer, P. Industry 4.0 reference architectures: State of the art and future trends. Comput. Ind. Eng. 2021, 156, 107241. [Google Scholar] [CrossRef]
- Farkhana, M.; Abdul Hanan, A. Mobility in mobile ad-hoc network testbed using robot: Technical and critical review. Robot. Auton. Syst. 2018, 108, 153–178. [Google Scholar] [CrossRef]
- Wang, J.; Lim, M.K.; Wang, C.; Tseng, M.L. The evolution of the Internet of Things (IoT) over the past 20 years. Comput. Ind. Eng. 2021, 155, 107174. [Google Scholar] [CrossRef]
- Ayaida, M.; Messai, N.; Valentin, F.; Marcheras, D.; Afilal, L. Robot Interconnection Method. WO/2019/162595. 29 August 2019. Available online: https://patentscope2.wipo.int/search/en/detail.jsf?docId=WO2019162595 (accessed on 15 February 2022).
- Forman, E.H.; Gass, S.I. The Analytic Hierarchy Process—An Exposition. Oper. Res. 2001, 49, 469–486. [Google Scholar] [CrossRef]
- Marcheras, D.; Ayaida, M.; Messai, N.; Valentin, F. A new middleware for managing heterogeneous robot in ubiquitous environments. In Proceedings of the 2020 8th International Conference on Wireless Networks and Mobile Communications (WINCOM), Reims, France, 27–29 October 2020; pp. 1–5. [Google Scholar] [CrossRef]
- Quigley, M.; Conley, K.; Gerkey, B.; Faust, J.; Foote, T.; Leibs, J.; Wheeler, R.; Ng, A. ROS: An Open-Source Robot Operating System. 2009, Volume 3. Available online: http://lars.mec.ua.pt/public/LAR%20Projects/BinPicking/2016_RodrigoSalgueiro/LIB/ROS/icraoss09-ROS.pdf (accessed on 15 February 2022).
- Joyeux, S.; Albiez, J. Robot development: From components to systems. In Proceedings of the Control Architecture of Robots, Grenoble, France, 24–25 May 2011; p. 115. [Google Scholar]
- Osentoski, S.; Jay, G.; Crick, C.; Pitzer, B.; DuHadway, C.; Jenkins, O. Robots as web services: Reproducible experimentation and application development using rosjs. In Proceedings of the 2011 IEEE International Conference on Robotics & Automation, Shanghai, China, 9–13 May 2011. [Google Scholar]
- Roalter, L.; Kranz, M.; Moller, A. A middleware for intelligent environments and the internet of things. Ubiquitous Intell. Comput. 2010, 6406, 267–281. [Google Scholar]
- Beetz, M.; Mosenlechner, L.; Tenorth, M. CRAM—A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, Taiwan, 18–22 October 2010; pp. 1012–1017. [Google Scholar]
- Collett, T.; Macdonald, B.; Gerkey, B. Player 2.0: Toward a Practical Robot Programming Framework. In Proceedings of the 2005 Australasian Conference on Robotics and Automation, ACRA 2005, 2008; Available online: http://users.isr.ist.utl.pt/~jseq/ResearchAtelier/papers/collet.pdf (accessed on 15 February 2022).
- Vaughan, R.T. Massively multi-robot simulations in Stage. Swarm Intell. 2008, 2, 189–208. [Google Scholar] [CrossRef]
- Koenig, N.; Howard, A. Design and use paradigms for gazebo, an open-source multi-robot simulator. In Proceedings of the IEEE/RSj International Conference on Intelligent Robots and Systems, Sendai, Japan, 28 September–2 October 2004; pp. 2149–2154. [Google Scholar]
- Agüero, C.E.; Koenig, N.; Chen, I.; Boyer, H.; Peters, S.; Hsu, J.; Gerkey, B.; Paepcke, S.; Rivero, J.L.; Manzo, J.; et al. Inside the Virtual Robotics Challenge: Simulating Real-Time Robotic Disaster Response. IEEE Trans. Autom. Sci. Eng. 2015, 12, 494–506. [Google Scholar] [CrossRef]
- Whitbrook, A. Programming Mobile Robots with Aria and Player: A Guide to C++ Object-Oriented Control; Springer: London, UK, 2010. [Google Scholar]
- Magnenat, S.; Rétornaz, P.; Bonani, M.; Longchamp, V.; Mondada, F. ASEBA: A Modular Architecture for Event-Based Control of Complex Robots. IEEE/ASME Trans. Mechatron. 2011, 16, 321–329. [Google Scholar] [CrossRef] [Green Version]
- Magnenat, S.; Mondada, F. ASEBA Meets D-Bus: From the Depths of a Low-Level Event-Based Architecture into the Middleware Realm. In Proceedings of the IEEE TC-Soft Workshop on Event-Based Systems in Robotics (EBS-RO), St. Louis, MO, USA, 15 October 2009. [Google Scholar]
- Montemerlo, M.; Roy, N.; Thrun, S. Perspectives on standardization in mobile robot programming: The Carnegie Mellon Navigation (CARMEN) Toolkit. In Proceedings of the Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453), Las Vegas, NV, USA, 27–31 October 2003; Volume 3, pp. 2436–2441. [Google Scholar]
- Calisi, D.; Censi, A.; Iocchi, L.; Nardi, D. OpenRDK: A framework for rapid and concurrent software prototyping. In Proceedings of the International Workshop on System and Concurrent Engineering for Space Applications (SECESA), Nice, France, 22–26 September 2008. [Google Scholar]
- Calisi, D.; Censi, A.; Iocchi, L.; Nardi, D. OpenRDK: A modular framework for robotic software development. In Proceedings of the 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, Nice, France, 22–26 September 2008; pp. 1872–1877. [Google Scholar]
- Makarenko, A.; Brooks, A. Orca: Components for robotics. In Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’06), 2006; Available online: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.456.7562&rep=rep1&type=pdf (accessed on 15 February 2022).
- Brooks, A.; Kaupp, T.; Makarenko, A.; Williams, S.; Orebäck, A. Orca: A Component Model and Repository. In Software Engineering for Experimental Robotics; Brugali, D., Ed.; Springer: Berlin/Heidelberg, Germany, 2007; pp. 231–251. [Google Scholar]
- Makarenko, A.; Brooks, A.; Kaupp, T. On the Benefits of Making Robotic Software Frameworks Thin. In Proceedings of the International Conference on Intelligent Robots and Systems, San Diego, CA, USA, 29 October–2 November 2007. [Google Scholar]
- Bruyninckx, H. Open robot control software: The OROCOS project. In Proceedings of the 2001 ICRA IEEE International Conference on Robotics and Automation (Cat. No. 01CH37164), Seoul, Korea, 21–26 May 2001; Volume 3, pp. 2523–2528. [Google Scholar]
- Li, W.; Christensen, H.I.; Oreback, A.; Chen, D. An architecture for indoor navigation. In Proceedings of the IEEE International Conference on Robotics and Automation, ICRA ’04, New Orleans, LA, USA, 26 April–1 May 2004; Volume 2, pp. 1783–1788. [Google Scholar]
- Baillie, J.C.; Demaille, A.; Duceux, G.; Filliat, D.; Hocquet, Q.; Nottale, M. Software architecture for an exploration robot based on Urbi. In Proceedings of the 6th National Conference on Control Architectures of Robots, INRIA Grenoble Rhône-Alpes, Grenoble, France, 24–25 May 2011; p. 12. [Google Scholar]
- Nejkovic, V.; Petrovic, N.; Tosic, M.; Milosevic, N. Semantic approach to RIoT autonomous robots mission coordination. Robot. Auton. Syst. 2020, 126, 103438. [Google Scholar] [CrossRef]
- Coito, T.; Martins, M.S.; Viegas, J.L.; Firme, B.; Figueiredo, J.; Vieira, S.M.; Sousa, J.M. A Middleware Platform for Intelligent Automation: An Industrial Prototype Implementation. Comput. Ind. 2020, 123, 103329. [Google Scholar] [CrossRef]
- Mouradian, C.; Errounda, F.Z.; Belqasmi, F.; Glitho, R. An infrastructure for robotic applications as cloud computing services. In Proceedings of the 2014 IEEE World Forum on Internet of Things (WF-IoT), Seoul, Korea, 6–8 March 2014; pp. 377–382. [Google Scholar]
Robotic Frameworks | Programming Language | OpenSource | Distributed Architecture | Fleet Management | Robotic Cloud | Resilience | Dynamic Scheduling | Simulation | Robot/Robot Communication |
---|---|---|---|---|---|---|---|---|---|
ROS | Python, C++ | ✓ | ✓ | ✓ | × | × | × | ✓ | × |
Player | C++, Tcl, Java, Python | ✓ | × | ✓ | × | × | ✓ | × | × |
ARIA | C++, Python, Java | ✓ | × | ✓ | × | × | × | × | × |
ASEBA | Aseba | ✓ | ✓ | ✓ | × | × | × | × | × |
Carmen | C++ | ✓ | ✓ | ✓ | × | × | × | ✓ | × |
OpenRDK | C++ | ✓ | ✓ | × | × | × | × | × | × |
Orca | C++ | ✓ | ✓ | × | × | × | × | × | × |
Orocos | C++ | ✓ | ✓ | ✓ | × | × | × | × | × |
Urbi | C++ like | ✓ | × | ✓ | × | × | × | × | × |
TalkRoBots | Python | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Symbols | Significations |
---|---|
the number of the exchanged messages for initializing the middleware | |
n | the number of robots |
the number of the exchanged messages during the fleet creation | |
the number of the messages related to the plugged devices | |
the number of the messages needed for the initialization step | |
s | the number of IIoT devices |
the number of messages sent per second by each device | |
the number of elapsed seconds in the experimentation | |
the total number of tasks in the scenario | |
the number of tasks transmitted using direct or ROS mode | |
the number of tasks transmitted using interpreted mode | |
the number of exchanged messages to execute a scenario | |
the number of messages sent to handle the tasks | |
the number of messages needed to forward the tasks between the actors | |
the number of messages sent to handle a request from a sensor | |
the number of locally sent requests to a sensor | |
the number of remotely sent requests to a sensor | |
the number of the exchanged messages to handle a faulty behavior | |
the number of faulty robots |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Ayaida, M.; Messai, N.; Valentin, F.; Marcheras, D. TalkRoBots: A Middleware for Robotic Systems in Industry 4.0. Future Internet 2022, 14, 109. https://doi.org/10.3390/fi14040109
Ayaida M, Messai N, Valentin F, Marcheras D. TalkRoBots: A Middleware for Robotic Systems in Industry 4.0. Future Internet. 2022; 14(4):109. https://doi.org/10.3390/fi14040109
Chicago/Turabian StyleAyaida, Marwane, Nadhir Messai, Frederic Valentin, and Dimitri Marcheras. 2022. "TalkRoBots: A Middleware for Robotic Systems in Industry 4.0" Future Internet 14, no. 4: 109. https://doi.org/10.3390/fi14040109
APA StyleAyaida, M., Messai, N., Valentin, F., & Marcheras, D. (2022). TalkRoBots: A Middleware for Robotic Systems in Industry 4.0. Future Internet, 14(4), 109. https://doi.org/10.3390/fi14040109