[Documentation] [TitleIndex] [WordIndex

Qu'est ce qu'un paquet catkin?

Pour qu'un paquet puisse être considéré comme un package catkin il doit répondre à quelques exigences:

Il ne peut y avoir plus d'un paquet dans chaque dossier Cela signifie qu'il n'y a pas de packages imbriqués ni plusieurs packages partagent le même répertoire. Le package le plus simple possible pourrait ressembler à ceci:

Les paquets dans un catkin Workspace

La méthode recommandée pour l'utilisation des paquets catkin utilise un espace de travail catkin (catkin workspace), mais vous pouvez aussi construire des paquets catkin seuls. Un espace de travail trivial pourrait ressembler à ceci:

Avant de continuer avec ce tutoriel vous devez créer un espace de travail catkin vide en suivant ce tutoriel Creating a workspace for catkin

Création d'un package catkin

Ce tutorial montre comment utiliser le script catkin_create_pkg pour créer un nouveau package pour catkin, et ce que vous pouvez faire avec, une fois créé. D'abord on va se rendre dans le répertoire des fichiers sources de l'espace de travail catkin (catkin workspace) que l'on a créé lors du tutorial Creating a workspace for catkin

Maintenant, utilisons le script catkin_create_pkg pour créer un nouveau package appelé "beginner_tutorials" qui dépend de std_msgs, roscpp et Rospy:

Cela va créer un dossier beginner_tutorials qui contient un package.xml et un CMakeLists.txt , qui ont été partiellement rempli avec les informations que vous avez donné à catkin_create_pkg. catkin_create_pkg exige que vous lui donniez un package_name et éventuellement une liste des dépendances dont ce package dépend:

catkin_create_pkg possède également des fonctionnalités plus avancées qui sont décrites dans le catkin/commands/catkin_create_pkg .

Dépendances du package

Dépendances de premier ordre

Lors de l'utilisation de catkin_create_pkg plus tôt, quelques dépendances des paquets ont été fournis. Ces dépendances de premier ordre peuvent maintenant être examinées avec l'outil rospack.

(9 janvier 2013) Il y a http://answers.ros.org/question/51555/beginner-tutorials-segmentation-fault-with-rospack-depends1/?comment=51762#comment-51762 avec la commande suivante, vous pouvez passer à la prochaine commande.

Comme vous pouvez le voir, rospack énumère les mêmes dépendances qui ont été utilisées comme arguments lors de l'exécution catkin_create_pkg. Les dépendances d'un package sont stockées dans le fichier package.xml :

Dépendances indirectes

Dans de nombreux cas, une dépendance aura aussi ses propres dépendances. Par exemple, Rospy a d'autres dépendances.

Un package peut avoir pas mal de dépendances indirectes. Heureusement rospack peut déterminer de façon récursive toutes les dépendances imbriquées.

Personnalisation de votre Package

Dans cette partie du tutoriel on va regarder dans chaque fichier généré par catkin_create_pkg et décrire, ligne par ligne, chaque composante de ces fichiers et comment vous pouvez les personnaliser pour votre package.

Personnalisation du package.xml

Le fichier généré package.xml devrait déjà être dans votre nouveau package. Maintenant allons dans le fichier package.xml et regardons chaque élément.

Balise de description

Première ligne, la balise description :

Modifier la description comme vous voulez, mais, par convention, la première phrase doit être courte tout en couvrant le champ d'application du package. S'il est difficile de décrire le paquet en une seule phrase, alors il faudra peut-être la couper.

La balises du responsable

Vient ensuite le maintainer tag :

Il s'agit d'une balise requise et importante pour le fichier package.xml , car il permet aux autres de savoir qui contacter au sujet du package. Au moins un mainteneur est requis, mais vous pouvez en avoir plus si vous voulez. Le nom du responsable va dans le corps de la balise, mais il y a aussi l'attribut email qui doit être remplis:

La balise licence

La balise licence est également requise :

Vous devez choisir une licence et l'indiquer ici. Les licences open source les plus communes sont : BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1 et LGPLv3. Vous pouvez enapprendre plus sur la plupart d'entre elles à l' Open Source Initiative . Pour ce tutoriel, nous allons utiliser la licence BSD parce que la majorité des autres composants ROS l'utilisent déjà:

Les balises de dépendances

La prochaine série de balises décrit les dépendances de votre package. Les dépendances sont divisées en 4 catégories :

Pour une explication plus détaillée de ces balises consultez la documentation sur les dépendances catkin Catkin Dependencies Comme nous avons passés std_msgs, roscpp, et rospy comme arguments à catkin_create_pkg, la déclaration des dépendances ressemblera à ceci:

Toutes les dépendances que l'on avait déclaré lors de la création de notre package ont été ajoutés pour nous en tant que build_depend, en plus de la déclaration par défaut buildtool_depend pour catkin (c'est le compilateur on est donc bien obligé de l'avoir, mais pour les versions antérieur à la groovy le compilateur s'appelle rosmake). Dans ce cas, nous voulons que toutes les dépendances spécifiées soient accessibles au moment de la construction et au moment de l'exécution, nous allons ajouter un tag run_depend pour chacun d'eux ainsi (ndt : il s'avère que pour la groovy les dépendances d'exécution sont déjà présentes) :

Le package.xml final

Comme vous pouvez le voir le package.xml final, sans commentaires et sans les tags inutilisés, est beaucoup plus concis:

Personnalisation du CMakeLists.txt

Maintenant que le package.xml , qui contient des informations meta, a été adapté à votre package, vous êtes prêt à passer à la suite des tutoriels. Le fichier CMakeLists.txt créé par catkin_create_pkg sera abordé plus tard dans les didacticiels où vous écrirez du code ROS. Maintenant que vous avez fait un nouveau paquet ROS, nous allons construire notre package ROS .


2019-10-12 12:37