Robotics is triggering a new industrial revolution and service robotics are expanding into new agricultural, medical and domestic applications. With an ever-closer human-robot cooperation, malfunctions can lead to catastrophic consequences. Currently, safety is enforced by simple safety hardware systems or by constraining the proximity of humans, but a new paradigm is emerging based on programmable technology, reduced physical barriers, and more flexible and configurable modes of operation. This requires adequate control architectures and fault handling and tolerance, imposing the move of some of the control to software. In this context, dependability becomes critical in the design, development and operation of robotic software.

Developing a robust robot is burdensome and error-prone since many heterogenous and complex subsystems must be integrated, exacerbated by the needs of configurability and adaptability. The Robot Operating System (ROS) is a popular framework that helps building and deploying robot applications. ROS has increased the size and complexity of the high-level code of modern robots, but its open nature and a developer community lacking software engineering expertise have hindered the development of adequate mechanisms to promote software quality.

To be used in robots with high levels of safety, rigorous software development techniques to assess and promote the dependability of ROS code are essential. In fact, in the near term, marketable robots will be required to pass through certification processes where evidence of the expected behavior will have to be provided. Such evidence must address both the behavior of the individual components and the overall behavior of the system, considering the interaction of the components given particular deployment configurations.

This project brings together computer scientists, with a background on software system design and analysis, and experienced robot engineers, to develop such techniques in the context of ROS robots. To facilitate integration and adoption by the robotics community, we intend to develop techniques that will work from source code and be supported by automated verification tools.


Conference papers

  1. André Santos, Alcino Cunha, and Nuno Macedo: Property-Based Testing for the Robot Operating System. In Proceedings of the 9th ACM SIGSOFT International Workshop on Automating TEST Case Design, Selection, and Evaluation, pages 56-62. ACM 2018.
  2. André Santos, Alcino Cunha, and Nuno Macedo: Static-Time Extraction and Analysis of the ROS Computation Graph. In proceedings of the 3rd IEEE International Conference on Robotic Computing, pages 62-69. IEEE 2019.
  3. Tiago Neto, Rafael Arrais, Armando Sousa, André Santos, and Germano Veiga: Applying Software Static Analysis to ROS: The Case Study of the FASTEN European Project. In proceedings of the 4th Iberian Robotics Conference - Advances in Robotics, Volume 1, pages 632-644. Springer, 2019.
  4. Nadia Hammoudeh Garcia, Ludovic Delval, Mathias Lüdtke, Andre Santos, Björn Kahl, and Mirko Bordignon: Bootstrapping MDE Development from ROS Manual Code - Part 2: Model Generation. In Proceedings of the 22nd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, pages 95-105. IEEE, 2019.


  1. Tiago Neto: Application of Safety Verification Techniques on ROS Software. MSc thesis. June 2019.