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.
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 :
Un package de variante minimal est créé en tant que package avec le type de construction
ament_cmake
, unbuildtool_depend
sur les entréesament_cmake
etexec_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>
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()
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
_.