Mémoire de maîtrise (2022)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (2MB) |
Résumé
Au courant des deux dernières décennies, le développement logiciel en robotique, effectué par des chercheurs et des compagnies à travers le monde, a évolué, en commençant par des solutions sur mesure pour se diriger vers des cadres d'applications haut niveau libres. Ceci est devenu particulièrement utile pendant la dernière décennie, puisque les applications robotiques sont devenues de plus en plus complexes, en partie grâce à des avancées technologiques au niveau des capteurs, actionneurs, et des plateformes de calcul. Malheureusement, les cadres d'applications tels le Robot Operating System (ROS), qui utilisent les mécanismes publishersubscriber et remote procedure call (RPC), présentent plusieurs défis au niveau de la performance. En effet, ils effectuent l'ordonnancement haut niveau par-dessus l'ordonnanceur du système d'exploitation, ce qui peut mener à des inefficacités et des goulots d'étranglement au niveau de la performance. Les outils usuels de débogage fournissent une vision étroite de l'exécution de l'application; ils ne peuvent pas procurer une vue d'ensemble de l'exécution d'une application distribuée. Les techniques et outils de débogage et d'analyse de performance doivent donc être adaptés pour ce genre de cadre d'application. De plus, ces outils ne sont souvent pas compatibles avec les contraintes de systèmes temps réel : ils doivent avoir un surcoût d'exécution minime afin d'éviter d'affecter l'exécution d'une application et de fournir des résultats valides. Les méthodes existantes pour ROS 2 se concentrent sur des cas d'utilisation très spécifiques, ce qui les rend inadéquates pour l'analyse de performance générale, en plus d'avoir un grand surcoût d'exécution. Afin d'améliorer la littérature sur ce sujet, ce mémoire apporte deux contributions principales. Premièrement, il introduit un nouvel ensemble d'outils de traçage pour ROS 2. L'instrumentation polyvalente pour traçage proposée permet d'extraire de l'information sur l'exécution de ROS 2, et des expérimentations démontrent son bas surcoût d'exécution. De plus, des outils de traçage permettent de configurer le traçage à travers le système d'orchestration puissant de ROS 2, ce qui est primordial pour une utilisation efficace par des chercheurs et d'autres utilisateurs. Ensuite, la deuxième contribution est une analyse du flot de messages à travers un système distribué ROS 2. Elle permet d'extraire de l'information haut niveau sur l'exécution, ce qui aide à identifier des causes potentielles de problèmes de performance, en plus de permettre d'étudier l'ordonnanceur haut niveau de ROS 2. Elle inclut aussi un modèle abstrait de l'exécution d'une application ROS 2, qui peut être utilisépour d'autres analyses, et inclut une expérimentation qui démontre encore une fois le faible surcoût d'utilisation de la méthode. D'autres expérimentations sur des systèmes robotiques synthétiques et réels démontrent son potentiel dans un but d'optimisation de performance vi et, en général, dans le but de comprendre l'exécution d'un système ROS 2. Ces contributions pourraient donc être exploitées par d'autres chercheurs et développeurs afin d'étudier et d'améliorer la performance de ROS 2 et d'autres cadres d'application similaires.
Abstract
Over the last two decades, software development in robotics has shifted from a focus on building custom solutions – thus reinventing the wheel frequently – to building open-source high-level modular frameworks that are used and improved by researchers and companies all over the world. This has become particularly useful during the last decade, since robotics applications have gotten significantly more complex, in part due to technological advances with sensors, actuators, and computing plaftorms. Unfortunately, robotics software frame- works like the Robot Operating System (ROS), built on the publisher-subscriber and remote procedure call (RPC) paradigms, have multiple performance challenges. Indeed, they per- form high-level scheduling on top of the operating system scheduler, which can lead to major performance inefficiencies and bottlenecks. Common debugging tools provide a very narrow view of the application execution; they cannot provide a global perspective on the execution of a distributed system. Software debugging and performance analysis tools must be adapted for such frameworks and evolve alongside them. Furthermore, performance analysis tools are often not compatible with strict constraints of real-time – and potentially safety-critical – applications: they must have minimal runtime overhead to avoid perturbing the application and to provide valid results. Current methods for ROS 2 focus on very specific use-cases, thus making them unsuitable for general performance analysis, and generally have high runtime overheads.To improve the literature on this subject, this thesis brings two main contributions. It first introduces a novel multipurpose tracing framework for ROS 2. The proposed multipurpose tracing instrumentation allows extracing ROS 2-level execution information, and experiments demonstrate its low overhead. Furthermore, tracing tools allow configuring tracing through the powerful ROS 2 orchestration system, which is indispensable for effective use by re- searchers and other end-users. Then, the second contribution is a message flow analysis, showing the path of messages across distributed ROS 2 systems. It extracts high-level infor- mation, which helps identify potential causes of performance bottlenecks, and can be used to study the ROS 2 scheduler. It also includes an abstract model of the execution of a ROS 2 application, which can be used for other analysis goals, and includes an experiment to again demonstrate the low runtime overhead of this method. Further experiments on both syn- thetic and real robotic systems demonstrate its potential for performance optimization, and in general for understanding the execution of a ROS 2 system. These contributions could therefore be leveraged by other robotics researchers and software developers to study and improve the performance of ROS 2 as well as other similar frameworks.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Michel Dagenais |
URL de PolyPublie: | https://publications.polymtl.ca/10366/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 01 févr. 2023 14:43 |
Dernière modification: | 30 sept. 2024 22:06 |
Citer en APA 7: | Bourque Bédard, C. (2022). Message Flow Analysis for Distributed Real-Time Control Systems [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/10366/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements