Utiliser des variantes

Les métapaquets ne fournissent pas directement le logiciel mais dépendent d’un groupe d’autres paquets associés pour fournir un mécanisme d’installation pratique pour le groupe complet de paquets. 1 2 Les variantes sont une liste de métapaquets officiels pour des groupes de paquets ROS couramment utiles.

1

https://wiki.debian.org/metapackage

2

https://help.ubuntu.com/community/MetaPackages

Les différentes variantes de ROS 2 sont spécifiées dans REP-2001.

En plus des variantes officielles, il peut y avoir des métapaquets pour des institutions ou des robots spécifiques, comme décrit dans REP-108.

Ajouter des variantes

Des variantes supplémentaires d’usage général pour la communauté ROS peuvent être proposées en contribuant à une mise à jour de `REP-2001 via une demande d'extraction <https://github.com/ros-infrastructure/rep/blob/master/rep-2001.rst >`_ décrivant les packages inclus dans la nouvelle variante. Les variantes spécifiques aux institutions et aux robots peuvent être publiées directement par leurs responsables respectifs et aucune mise à jour vers REP-2001 n’est requise.

Création de variantes spécifiques au projet

Si vous créez des packages ROS à utiliser en privé dans vos propres projets, vous pouvez créer des variantes spécifiques à vos projets en utilisant les variantes officielles comme exemples. Pour ce faire, il vous suffit de créer deux fichiers :

  1. Un package de variante minimal est créé en tant que package avec le type de construction ament_cmake, un buildtool_depend sur les entrées ament_cmake et exec_depend pour chaque package que vous souhaitez inclure dans la variante.

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="2">
  <name>my_project_variant</name>
  <version>1.0.0</version>
  <description>A package to aggregate all packages in my_project.</description>
  <maintainer email="maintainer-email">Maintainer Name</maintainer>
  <license>Apache License 2.0</license>
  <!-- packages in my_project -->
  <exec_depend>my_project_msgs</exec_depend>
  <exec_depend>my_project_services</exec_depend>
  <exec_depend>my_project_examples</exec_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package>
  1. Un package minimal ament_cmake inclut un CMakeLists.txt qui enregistre le package.xml en tant que package ament à utiliser dans ROS 2.

cmake_minimum_required(VERSION 3.5)

project(my_project_variant NONE)
find_package(ament_cmake REQUIRED)
ament_package()
  1. Vous pouvez ensuite créer et installer votre package de variantes avec vos autres packages privés.

Création de variantes personnalisées avec des outils spécifiques à la plateforme

Certaines plates-formes disposent d’outils pour créer des packages de base qui ne nécessitent pas un environnement de batterie de génération ROS complet ou une infrastructure équivalente. Il est possible d’utiliser ces outils pour créer des variantes dépendantes de la plateforme. Cette approche n’inclut pas la prise en charge des outils d’empaquetage ROS et dépend de la plate-forme, mais nécessite beaucoup moins d’infrastructure à produire si vous créez des collections de packages existants plutôt qu’un mélange de packages ROS publics et privés. Par exemple, sur les systèmes Debian ou Ubuntu, vous pouvez utiliser les utilitaires equivs. Le manuel de l’administrateur Debian a une Section sur les méta-paquets _.