In the world of robotics and automation, real-time performance, safety, and efficient control are essential for both the resulting system and for the technologies that are used to develop those systems. Up to recently, it has been sufficient to fulfill these requirements by building systems in a rather static manner, typically based on PLC techniques, thereby limiting both flexibility and the use of modern IT (Information Technology) methods and languages. Thus, in this so-called OT (Operations Technology) world, developing advanced productive but very flexible robots is deeply problematic with current industrial practices.
In the modern IT era of network-ready software systems in general, with programs/apps running on servers/desktops or in the phone/cloud, the static way of programming (as in PLCs) is simply not viable. Reasons include security and robustness considering the fact that programs are typically run in configurations that were not known at the time of writing them, hence the fundamental need for safety and flexibility to be built into the technologies on a fundamental tooling level. Examples for Internet-ready runtime systems include the JVM and the CLR virtual machine (VM) from Oracle and Microsoft respectively. However, these VMs come without timing guarantees, which means there is a large gap – the IT-OT gap – that is costly and hampering developments in many ways.
Several small and large organizations in industry and academia have tried to bridge the IT-OT gap by developing a fully capable runtime platform that fits both sides, but up to now without success. The need has become increasingly urgent since there are growing demands on versatile robots, and new tools and frameworks are being developed that combine the strengths of existing technologies with innovative approaches to real-time systems. Driven by these urgent needs, and building on 20 years of research and experiences within this field among the Cognibotics’ expert developers, we proudly present the Real-time VM (RVM) Romeo designed specifically for enabling modern robot software with programming in Juliet as a demanding and groundbreaking case.
Romeo is a real-time virtual machine for robotics, automation, machines, and more. For real-time multitasking Juliet cannot live without Romeo; there is simply no other attractive alternative. Romeo, on the other hand, plays well with any language that has a suitable back-end (compatible byte code), but works the very best together with Juliet. Generally, Romeo serves as a basis for running programs, managing system resources, and enforcing real-time constraints critical to robotic and automation operations. Built with the flexibility and reliability required for advanced automation, Romeo integrates support for real-time decision-making, sensor fusion, and low-latency communication with hardware devices.
Real-Time Performance: Romeo is designed with a focus on real-time constraints, ensuring that tasks such as sensor readings, motor control, and decision-making occur within precise time frames. It guarantees low-latency reactions to external events for time-critical operation, which is crucial in environments where even small delays can cause significant disruptions or even accidents.
Preemptive Multitasking: Robotics and automation systems often require the ability to perform multiple tasks simultaneously—such as reading sensor data, executing control loops, and planning paths. Romeo supports parallelism through concurrency and multi-tasking, allowing robotic applications to perform complex operations in real-time, while the RVM efficiently manages resources.
Real-Time Garbage Collection (RTGC): Romeo implements automatic memory management, often referred to as garbage collection (GC). This means that memory not used anymore is automatically recycled by means of the GC, which works both with legacy native code and byte-code without introducing pauses that can interfere with real-time operations. This ensures that the system maintains its performance and responsiveness even during dynamic memory allocation, as needed for making Juliet both safe and dynamic while providing real-time performance.
Interfacing with Real-Time Operating Systems (RTOS): Romeo is designed to work seamlessly with any POSIX enabled Real-Time Operating Systems (RTOS) such as Linux RT, FreeRTOS and Zephyr. This compatibility allows developers to deploy Romeo on systems that have to comply with hard real-time guarantees—where tasks must complete within specific deadlines. By integrating with RTOS environments, Romeo can ensure predictable and deterministic behavior for time-sensitive robotics applications.
Integration with Robot Middleware: Robotics applications often rely on middleware frameworks such as the Robot Operating System (ROS) for managing communication between different components. Romeo can integrate with middleware like ROS to provide developers with access to a rich ecosystem of tools and libraries. This allows Romeo to support higher-level functionalities such as navigation, mapping, and path planning while maintaining real-time performance. The Juliet language can be used to develop libraries for ROS2.
Simulation and Testing Support: In robotics, simulation is a vital part of the development cycle. Romeo includes features for virtual simulation environments, enabling developers to test their robotic control algorithms in a simulated space before deploying them to physical robots. By providing a sandbox environment, Romeo reduces the risk of hardware failures during development, allowing for more robust and reliable systems.
Deterministic Task Scheduling: One of Romeo's core functionalities is its deterministic task scheduling mechanism. Tasks in a robotics system often have different priorities—sensor readings must occur frequently, while complex computations like path planning may be less frequent but more demanding. Romeo's scheduler ensures that high-priority tasks always execute on time, without starving the low priority tasks.
Support for Machine Learning in Real-Time: Romeo also can easily integrate with machine learning models that can be applied to robotics and automation systems. This allows robots to make smart, data-driven decisions on the fly. Whether it’s adapting to a changing environment, optimizing movements, or detecting anomalies, Romeo provides a platform for integrating AI and machine learning into real-time such that also the quality of control can be optimized with respect to utilization of available computing resources.
Romeo’s capabilities make it an ideal solution for a wide range of robotics and automation applications. Below are some notable use cases where Romeo can play a transformative role:
Legacy industrial automation: Romeo can run on many modern PLC systems and does have several forms of integration with the IEC 61131 runtimes. This allows developers to continue using existing code and at the same time use the strength of Romeo in the same system.
Industrial Automation: In manufacturing environments, robots perform tasks such as assembly, inspection, and packaging, often alongside humans. These systems require precise coordination between sensors and actuators, which often is implemented by system integrators. In advanced automation systems there can be two or more (competing) integrators, each with their IP and use of system resources. Romeo is designed such that application packages and code modules in general can be run and kept isolated for each stakeholder, thereby enabling new business cases.
Autonomous Robotics: For autonomous drones, self-driving cars, and service robots, real-time decision-making is crucial. These systems rely on sensor data (e.g., LiDAR, cameras, GPS) to navigate and avoid obstacles. Romeo provides the necessary real-time processing power to handle sensor fusion, path planning, and collision avoidance in real-world environments where split-second decisions can be the difference between success and failure. The way byte code is loaded, transformed, optimized and run also enables migration of application logic between local controllers, servers, edge devices, and to the cloud and back.
Healthcare and Medical Robotics: In the healthcare sector, robots are increasingly used for precision surgeries, rehabilitation, and patient care. These applications demand real-time responsiveness and accuracy. Romeo's deterministic execution model together with motion control capabilities ensures that robotic arms performing delicate procedures can operate within tight tolerances, providing the reliability needed in medical environments.
Smart Factories and IoT: Romeo is also a great fit for smart factory systems and Industrial Internet of Things (IIoT) applications, where robots and machines communicate with each other in real time. Romeo enables these machines to process data, optimize workflows, and react to changing conditions in the production environment, creating a more efficient and autonomous industrial ecosystem.
Romeo stands out by offering safe (so called sandboxed) execution of real-time multitasking user or system programs in a fully dynamic way that enables the use of modern IT solutions in the OT world. Romeo also provides hardware abstraction and ease of development. By utilizing Romeo, roboticists can focus more on algorithm development and less on the intricate details of hardware control. Furthermore, Romeo’s seamless integration with existing middleware like ROS and its support for RTOS environments means that developers can build complex robotic systems more easily while maintaining deterministic performance.
Additionally, by combining real-time capabilities with support for machine learning models, Romeo pushes the boundaries of what autonomous systems can achieve. It opens the door to smarter, more adaptive robots that can learn from their environments while still adhering to the stringent constraints on time and safety as required in critical applications.
Romeo represents a significant step forward in the development of real-time robotics and automation systems. By providing a virtual machine specifically designed for the unique challenges of robotics, it offers developers a powerful and flexible tool for building high-performance, reliable systems. As robotics continues to play a crucial role in industries ranging from manufacturing to healthcare, Romeo will become an indispensable asset, enabling innovation and ensuring that robots can operate safely and efficiently in the real world. PLC-compatible software with cyclic execution will be supported as well.