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.


Journal articles

  1. Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva: Ranking Programming Languages by Energy Efficiency. Science of Computer Programming, volume 205. Elsevier, 2021.
  2. Nadia Hammoudeh García, Harshavardhan Deshpande, André Santos, Björn Kahl, and Mirko Bordignon: Bootstrapping MDE Development from ROS Manual Code - Part 2: Model Generation and leveraging models at runtime. Software and Systems Modeling. Springer, 2021.
  3. Luís C. Santos, André Santos, Filipe N. Santos, and António Valente: A Case Study on Improving the Software Dependability of a ROS Path Planner for Steep Slope Vineyards. Robotics, volume 10, number 3, article 103. MDPI, 2021.
  4. Chong Liu, Nuno Macedo, and Alcino Cunha: Merging Cloned Alloy Models with Colorful Refactorings. Science of Computer Programming, volume 220. Elsevier, 2022.

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.
  5. Renato Carvalho, Alcino Cunha, Nuno Macedo, and André Santos: Verification of system-wide safety properties of ROS applications. In proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 7249-7254. IEEE, 2020.
  6. Chong Liu, Nuno Macedo, and Alcino Cunha: Merging Cloned Alloy Models with Colorful Refactorings. In proceedings of the 23rd Brazilian Symposium on Formal Methods, volume 12475 of LNCS, pages 173-191. Springer, 2020.
  7. André Santos, Alcino Cunha, and Nuno Macedo: The High-Assurance ROS Framework. In proceedings of the 3rd International Workshop on Robotics Software Engineering, pages 37-40. IEEE, 2021
  8. André Santos, Alcino Cunha, and Nuno Macedo: Schema-guided Testing of Message-Oriented Systems. In proceedings of the 17th International Conference on Evaluation of Novel Approaches to Software Engineering, pages 26-37. SCITEPRESS, 2022.


  1. André Santos: Safety Verification for ROS Applications. PhD thesis. July 2021.
  2. Tiago Neto: Application of Safety Verification Techniques on ROS Software. MSc thesis. June 2019.
  3. Sara Melo: Estudo Empírico da Variabilidade em Sistemas ROS. MSc thesis. November 2021.
  4. Ricardo Pereira: An HAROS Extension for Variability Aware ROS Code Analysis. MSc thesis. December 2021.
  5. Pedro Moura: Encoding and Analysis of Variational ROS Computation Graphs. MSc thesis. February 2022.

Tutorials and workshops

  1. André Santos and Nuno Macedo: Improving the Quality of ROS Applications with HAROS. Tutorial at the IEEE/RSJ International Conference on Intelligent Robots and Systems. 2021.