Integrating numerous functions required by autonomous robotic systems, such as sensors, actuators, navigation, and path planning.
Networked robotic systems are increasingly prevalent. In addition to industrial robotics now firmly ensconced in manufacturing, applications are also being developed in the areas of logistics, medical technology, and even unmanned aerial vehicles (UAV) and unmanned underwater vehicles (UUV).
In general, robotic systems are still centrally controlled by a PLC based on statically planned tasks. This means that the individual systems have a low level of autonomy, and the entire system comes to a halt if the central controller fails.
However, if these systems are intended for operation in an unknown environment or must collaborate with each other in a context-dependent way, complex algorithms must be implemented, ideally directly in the control system of the robot itself. This allows a robot to respond with low latency, independently of the reliability of its communication with a central controller.
Because these systems are generally safety-critical, faults and failures usually result in high financial damages or even dangerous situations for the operating personnel in the case of robots built to collaborating with humans.
To protect against such situations, it is necessary to consider interactions and couplings between the individual systems or between the systems and the operator. These could be physical in nature, such as for collaboration on moving large, heavy loads, or the coupling between the systems could consist of a (usually wireless) communication system.
Fig. 1: Depending on the task for the distributed system, there are different physical properties and requirements for communicating between systems.
The scenarios leading to undesirable behavior can become so complex that safe operation is only made possible by methodical, model-based development such as is already established for mechatronic systems in aviation and space travel as well as in the automotive industry.
Such a process is made possible by the Robot Operating System (ROS).
ROS provides an environment for integrating numerous functions required by autonomous systems, such as sensors, actuators, navigation, and path planning.
The developer community of this open-source solution provides a large number of complete modules for rapid and systematic development of robotic systems. Large robotics manufacturers now also offer ROS modules for system development [1].
As middleware, ROS enables protocol-based data exchange between the processes (in ROS: nodes), regardless of whether these are realized on a virtual level (such as in a simulation) or linked to physical hardware. Implementation as a physically distributed system is also supported, in which case ROS runs in parallel on multiple computing platforms.
This enables end-to-end, model-based development of modules, such as for sensor data analysis or actuator control. ROS also offers the ability to implement the corresponding algorithms in diverse programming languages, such as Python for rapid and simple creation of prototypes or C++ for high performance and low latency. In addition to this, ROS provides interfaces to environments such as Gazebo ( http://gazebosim.org/ ), which can be used to simulate the kinematics of robotic systems and their environment. With the Functional Mock-up Interface (FMI) standard, it is also possible to integrate multiphysical system simulations with a variety of established tools, such as Modelica.
New versions of ROS can also be operated on embedded hardware with defined requirements on real-time capability. This allows nodes that were developed first in simulation and virtually validated to be ported directly to a microelectronic platform suitable for production use, such as a microcontroller with FPGA accelerator [2].
Such hardware/software systems can be efficiently validated with hardware-in-the-loop environments. These can be easily derived from a full system simulation via the architecture of ROS, whether for an individual robotic system or for collaborative systems. To accomplish this, ROS can establish the communication between the nodes running on the control processors of the robots and other nodes that simulate actuators, sensors and the environment.
End-to-end, methodical development processes for complex, distributed systems can be implemented in this way. For example: learning cyber-physical agent systems that interact with each other physically and also exchange information in order to realize distributed methods, such as federated learning, in addition to centralized training methods like reinforcement learning.
Mobile systems in particular make use of wireless communication for such purposes. Even with modern broadband wireless standards, this requires consideration of special properties of protocol-based, wireless communication. These include a certain amount of uncertainty with regard to transmission speed (latency) and possible communication faults arising from continuously changing network characteristics. Such effects should be taken into account as early as possible during the system design process. Current work is therefore focused on the question of how the characteristics and imperfections of such communication systems can be integrated into the system development [3].
References
[1] Zhang, L., Merrifield, R., Deguet, A., & Yang, G.-Z. (2017). Powering the world’s robots—10 years of ROS. Science Robotics, 2(11). https://doi.org/10.1126/scirobotics.aar1868
[2] Moréac, E., Abdali, E. M., Berry, F., Heller, D., & Diguet, J.-P. (2020). Hardware-in-the-loop simulation with dynamic partial FPGA reconfiguration applied to computer vision in ROS-based UAV. 2020 International Workshop on Rapid System Prototyping (RSP), 1–7. https://doi.org/10.1109/RSP51120.2020.9244863
[3] D. Baumann, F. Mager, U. Wetzker, L. Thiele, M. Zimmerling and S. Trimpe, “Wireless Control for Smart Manufacturing: Recent Approaches and Open Challenges,” in Proceedings of the IEEE, vol. 109, no. 4, pp. 441-467, April 2021, doi: https://doi.org/10.1109/JPROC.2020.3032633 Titel anhand dieser DOI in Citavi-Projekt übernehmen
Leave a Reply