Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2018

Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic

Amélioration de la qualité du code des paquets ROS à l'aide d'une extension temporelle de la logique du premier ordre

Résumé

Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on F O ++ , a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with F O ++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.
Les robots se voient confier des tâches de plus en plus exigeantes dans des domaines tels que le transport et la livraison, l'agriculture ou la santé. Les logiciels sont des composants clés pour les robots, et ROS est un middleware open-source populaire pour l'écriture d'applications robotiques. La qualité du code est très importante parce qu'un logiciel mal écrit est beaucoup plus susceptible de contenir des bogues et sera plus difficile à maintenir au fil du temps. Au sein d'une base de code, trouver des modèles défectueux prend beaucoup de temps et d'argent. Nous proposons un framework pour rechercher automatiquement les codes erronés fournis par l'utilisateur. Ce framework est basé sur F O ++, une extension temporelle de la logique du premier ordre, et Pangolin, un moteur de vérification pour les programmes C++. Nous avons formalisé avec F O++ cinq modèles défectueux liés aux systèmes de gestion des risques et aux systèmes embarqués. Nous avons analysé avec Pangolin 25 paquets ROS cherchant des occurrences de ces motifs et avons trouvé un total de 218 défauts. Afin d'éviter que les patrons défectueux n'apparaissent dans les nouveaux paquets ROS, nous proposons un patron de conception, et nous montrons comment Pangolin peut être utilisé pour l'appliquer.
Fichier principal
Vignette du fichier
DTIS18045.1581956614_preprint.pdf (301.84 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02489018 , version 1 (24-02-2020)

Identifiants

Citer

David Come, Julien Brunel, David Doose. Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic. 2018 Second IEEE International Conference on Robotic Computing (IRC), Jan 2018, Laguna Hills, France. pp.1-8, ⟨10.1109/IRC.2018.00010⟩. ⟨hal-02489018⟩

Collections

ONERA
25 Consultations
249 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More