HAROS: The High-Assurance ROS Framework
A framework for quality assurance of ROS software, mostly based on static analysis.
A framework for quality assurance of ROS software, mostly based on static analysis.
Published in 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2016
This paper presents HAROS, a generic, plug-in-driven, framework to evaluate code quality of ROS repositories, through static analysis. This tool was applied to several ROS repositories, and the results are also reported in the paper.
Recommended citation: A. Santos, A. Cunha, N. Macedo, C. Lourenço. (2016). "A Framework for Quality Assessment of ROS Repositories." IROS 2016. 4491-4496. http://git-afsantos.github.io/files/2016-iros.pdf
Published in 2017 IEEE/ACM 5th International FME Workshop on Formal Methods in Software Engineering (FormaliSE), 2017
This paper proposes an approach to model and verify ROS systems using real time properties, focusing on one of the main features of ROS, the communication between nodes.
Recommended citation: R. Halder, J. Proença, N. Macedo, A. Santos. (2017). "Formal Verification of ROS-Based Robotic Applications Using Timed-Automata." FormaliSE@ICSE 2017. 44-50. http://git-afsantos.github.io/files/2017-formalise.pdf
Published in 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2017
This paper presents and discusses the results of an empirical study to understand how ROS primitives are used in practice, and to determine which combinations of primitives are most popular.
Recommended citation: A. Santos, A. Cunha, N. Macedo, R. Arrais, F. N. dos Santos. (2017). "Mining the Usage Patterns of ROS Primitives." IROS 2017. 3855-3860. http://git-afsantos.github.io/files/2017-iros.pdf
Published in 9th ACM SIGSOFT International Workshop on Automating TEST Case Design, Selection, and Evaluation (A-TEST), 2018
This paper presents a first approach towards automatic generation of test scripts for property-based testing of various configurations of a ROS system.
Recommended citation: A. Santos, A. Cunha, N. Macedo. (2018). "Property-based Testing for the Robot Operating System." A-TEST@ESEC/SIGSOFT FSE 2018. 56-62. http://git-afsantos.github.io/files/2018-atest.pdf
Published in 2019 Third IEEE International Conference on Robotic Computing (IRC), 2019
This paper proposes a metamodel to describe the software architecture of ROS systems (the ROS Computation Graph) as well as model extraction and visualisation tools for such architectural models.
Recommended citation: A. Santos, A. Cunha, N. Macedo. (2019). "Static-Time Extraction and Analysis of the ROS Computation Graph." IRC 2019. 62-69. http://git-afsantos.github.io/files/2019-irc.pdf
Published in 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), 2019
This paper proposes automatic generation of models from manually written ROS artifacts through extraction from source code and runtime system monitoring.
Recommended citation: N. H. Garcia, L. Deval, M. Lüdtke, A. Santos, B. Kahl, M. Bordignon. (2019). "Bootstrapping MDE Development from ROS Manual Code - Part 2: Model Generation." MoDELS 2019. 95-105. http://git-afsantos.github.io/files/2019-models.pdf
Published in Iberian Robotics Conference (ROBOT), 2019
This paper presents a case study of assessing and improving the internal quality of a European research mobile manipulator using HAROS.
Recommended citation: T. Neto, R. Arrais, A. Sousa, A. Santos, G. Veiga. (2019). "Applying Software Static Analysis to ROS: The Case Study of the FASTEN European Project." ROBOT 2019. 632-644. http://git-afsantos.github.io/files/2019-robot.pdf
Published in 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2020
This paper proposes a technique to automatically verify system-wide safety properties of ROS-based applications at static time.
Recommended citation: R. Carvalho, A. Cunha, N. Macedo, A. Santos. (2020). "Verification of System-wide Safety Properties of ROS Applications." IROS 2020. 7249-7254. http://git-afsantos.github.io/files/2020-iros.pdf
Published in Software and Systems Modeling, 2021
This paper presents two methods for automated generation of models from manually written ROS artifacts, via static code analysis and by monitoring the execution of a running system.
Recommended citation: N. H. García, H. Deshpande, A. Santos, B. Kahl, M. Bordignon. (2021). "Bootstrapping MDE Development From ROS Manual Code: Part 2 — Model Generation and Leveraging Models at Runtime." Software and Systems Modeling. 1-24. http://git-afsantos.github.io/files/2021-sosym.pdf
Published in 2021 IEEE/ACM 3rd International Workshop on Robotics Software Engineering (RoSE), 2021
This tool paper presents the High-Assurance ROS (HAROS) framework.
Recommended citation: A. Santos, A. Cunha, N. Macedo. (2021). "The High-Assurance ROS Framework." RoSE@ICSE 2021. 37-40. http://git-afsantos.github.io/files/2021-rose.pdf
Published in University of Minho, 2021
This thesis answers the research question of how to adapt state-of-the-art quality assurance techniques to ROS applications, and how to make them usable by non-experts.
Recommended citation: A. Santos. (2021). "Safety Verification for ROS Applications." University of Minho. Braga, Portugal. http://git-afsantos.github.io/files/dissertation.pdf
Published in Robotics, 2021
This paper explains how we analyzed and improved a specialized path planner for steep-slope vineyards regarding its software dependability.
Recommended citation: L. C. Santos, A. Santos, F. N. Santos, A. Valente. (2021). "A Case Study on Improving the Software Dependability of a ROS Path Planner for Steep Slope Vineyards." Robotics. 10, 103. http://git-afsantos.github.io/files/2021-robotics-mdpi.pdf
Undergraduate course, University of Minho, Department of Informatics, 2015
Laboratory classes on Functional Programming for first-year Bachelor students in Informatics. These mainly revolved around using the Haskell programming language to solve various exercises and to implement a solution for a hands-on team project.
Summer mini-course, University of Minho, Department of Informatics, 2017
Summer mini-course, University of Minho, Department of Informatics, 2018