Cette page contient les détails d'un projet de rédaction technique accepté pour la saison des documents Google.
Résumé du projet
- Organisation Open Source:
- RoboComp
- Rédacteur technique:
- Le Thaï An
- Nom du projet:
- Composants de base de RoboComp
- Durée du projet:
- Durée standard (trois mois)
Project description
Motivation
RoboComp est l'un des frameworks de robotique les plus connus pour la recherche et les applications pratiques. Le dépôt robocomp inclut un large éventail de composants (gérés dans un dépôt plus petit nommé robocomp-robolab) pour différentes applications robotiques telles que le contrôle des moteurs, la localisation et la cartographie, la navigation, la reconnaissance, etc. Cependant, le dépôt des composants manque de documentation détaillée pour la compilation ou l'utilisation de chaque composant, ce qui limite l'usabilité pour les nouveaux développeurs. Cette proposition vise à résoudre ce problème en documentant les composants cruciaux de RoboComp, ainsi qu'en compilant un exemple de document d'utilisation pour combiner différents composants afin de résoudre une tâche de robotique spécifique. Le détail du processus de documentation sera abordé dans la section suivante, puis suivi de la section des jalons pour planifier le calendrier de réalisation du projet. Enfin, quelques remarques sur le processus de documentation sont mentionnées.
Description
Comme indiqué, ce projet a deux objectifs principaux:
- Document détaillant la description, la compilation et l'installation, la configuration, les utilisations et les problèmes connus de chaque composant de RoboComp
- Rédige un exemple de guide qui utilise différents composants de l'environnement RoboComp pour réaliser une tâche robotique spécifique, c'est-à-dire la localisation.
La plupart des composants de base du dépôt robocomp-robolab ne comportent actuellement pas d'instructions détaillées sur la compilation et l'utilisation dans différentes configurations de paramètres. Cela crée un obstacle énorme pour les nouveaux développeurs qui souhaitent utiliser des composants dans leur projet ou contribuer au framework. En effet, de nombreux composants sont un wrapper de pilotes ou de bibliothèques externes qui comportent de nombreuses dépendances, ce qui rend la compilation et l'installation difficiles. De plus, de nombreux composants encapsulent le pilote d'appareil complexe (par exemple, hokuyoComp générique) pour fournir une interface de message dans RoboComp, ce qui nécessite des connaissances spécifiques à l'appareil pour ajuster les paramètres.
Par conséquent, la documentation détaillée, qui comprend les descriptions des appareils, la résolution des dépendances et les utilisations, est essentielle pour les contributions Open Source. Le lien contient un exemple de mon document composant hokuyoComp:
https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp
Pour rédiger une documentation de composant concrète et détaillée à l'aide d'une approche descendante, vous devez au moins pouvoir tester le contenu écrit dans ce document, car l'objectif final de la documentation est de transférer les connaissances pratiques aux développeurs qui héritent du composant. La structure proposée pour chaque document de composant est présentée comme suit:
- Description
- Compilation et installation
- Paramètres de configuration
- Démarrer le composant (utilisations)
- Problèmes connus
Dans l'exemple, vous commencez par collecter des informations sur les spécifications du capteur Hokuyo, puis vous lisez le code du composant pour comprendre les fonctionnalités du composant afin d'écrire des descriptions de composants. Ensuite, la compréhension de l'environnement RoboComp et la connaissance des paramètres spécifiques à l'appareil ainsi que des dépendances de la bibliothèque peuvent aider à documenter le processus de compilation, d'installation et de configuration du composant. Par exemple, la compilation de hokuyoComp nécessite l'ancien paquet deb liburg0-dev d'Ubuntu 14.04, mais le paquet deb est supprimé du PPA d'Ubuntu dans les versions ultérieures. Nous devons donc utiliser une solution de contournement pour la compilation, comme indiqué dans la documentation. Au cours de ce processus, nous pouvons également enregistrer les problèmes connus afin d'accélérer le débogage pour les nouveaux développeurs. Enfin, les utilisations des composants pour différents scénarios d'utilisation sont documentées afin d'intégrer facilement le composant au paysage RoboComp pour différentes tâches de robotique.
Étapes
Cette section planifie un calendrier initial pour atteindre les objectifs mentionnés du projet. Nous sélectionnerons les documents de composant à rédiger en fonction des catégories (composants de l'appareil photo, composants laser, etc.). L'estimation actuelle du temps nécessaire pour terminer la documentation sur les composants est basée sur le temps nécessaire pour terminer les exemples de documentation hokuyoComp. Le calendrier est le suivant:
1er août – 1er septembre: renforcement des liens au sein de la communauté:
- Organisation de réunions hebdomadaires pour définir le champ d'application du projet, ainsi que les attentes de l'auteur et des mentors.
- Acquérir une connaissance approfondie du framework RoboComp
2 septembre - 2 novembre: rédaction de la documentation pour chaque composant du dépôt robocomp-robolab, avec des améliorations itérées entre les mentors et l'auteur lors de réunions (la plupart des documents non documentés devraient être finalisés)
2 novembre - 26 novembre: rédaction d'un document général à titre d'exemple d'utilisation de différents composants pour résoudre une tâche de robotique.
27 nov. – 29 nov. : rapports de fin de projet.
Après le GSoD 2019: j'aimerais rester en contact avec RoboComp pour continuer à améliorer et gérer mes contenus.
Remarques finales
Il est essentiel d'écrire un exemple général sur l'intégration de différents composants dans l'environnement RoboComp afin que les utilisateurs puissent comprendre l'ensemble des fonctionnalités de RoboComp. Cet exemple de document sera discuté plus en détail avec les mentors afin de déterminer la tâche de robotique appropriée en fonction de l'implémentation actuelle de RoboComp.