Overview of a delivery behavior modelled in MAKI.
From visual models to executable robots
Creating a visual model is only part of the challenge. Ultimately, the model must be transformed into software that can run on a robot.
To achieve this, MAKI uses KODA, a domain-specific language that represents robotic capabilities, behavior, and data independently of the underlying technology. From these high-level models, our generation pipeline can automatically produce both formal models for verification and executable robotic software.
For example, consider a robot that must navigate towards an object, detect its location, pick it up, and transport it elsewhere. Using MAKI, users can compose these activities without manually implementing their coordination.
However, making robot programming easier is not enough if the resulting software is unreliable. Therefore, MAKI also uses the knowledge captured in the models to identify potential problems before execution.
Some inconsistencies, such as using information before it becomes available or connecting semantically incompatible data, can be detected directly during modelling. Other problems, such as invalid interactions between concurrently executing capabilities, can be identified through formal verification, which systematically analyzes the possible behaviors of the system.
Importantly, users do not need to create these verification models themselves. They are automatically generated from the same application description used to produce the executable software.
Towards more accessible and reliable robotics
Going back to our warehouse robot, to evaluate our approach, we developed simulated mobile robot scenarios involving capabilities such as navigation, object manipulation, and battery monitoring.
The experiments demonstrated that the platform could identify several inconsistencies introduced deliberately into the application models, illustrating how architectural constraints and formal verification can complement each other.
Within Cynergy4MIE, this work contributes towards reducing the complexity of developing autonomous robotic applications while supporting their reliability and reuse.
The longer-term goal is to allow users to focus on their robotic applications, leaving more of the implementation and verification complexity to the development tools.
Blog signed by: TUe team
