À propos de TF2

Aperçu

tf2 est la bibliothèque de transformation, qui permet à l’utilisateur de suivre plusieurs cadres de coordonnées au fil du temps. tf2 maintient la relation entre les cadres de coordonnées dans une structure arborescente tamponnée dans le temps et permet à l’utilisateur de transformer des points, des vecteurs, etc. entre deux cadres de coordonnées à n’importe quel moment souhaité.

../_images/ros2_tf2_frames.png

Propriétés de TF2

Un système robotique possède généralement de nombreux cadres de coordonnées 3D qui changent au fil du temps, tels qu’un cadre universel, un cadre de base, un cadre de préhension, un cadre de tête, etc. tf2 garde une trace de tous ces cadres au fil du temps et vous permet de poser des questions telles que :

  • Où était l’image principale par rapport à l’image mondiale il y a 5 secondes ?

  • Quelle est la pose de l’objet dans ma pince par rapport à ma base ?

  • Quelle est la pose actuelle du cadre de base dans le cadre cartographique ?

tf2 peut fonctionner dans un système distribué. Cela signifie que toutes les informations sur les cadres de coordonnées d’un robot sont disponibles pour tous les composants ROS 2 sur n’importe quel ordinateur du système. tf2 peut faire en sorte que chaque composant de votre système distribué crée sa propre base de données d’informations de transformation ou ait un nœud central qui rassemble et stocke toutes les informations de transformation.

Tutoriels

Nous avons créé un ensemble de tutoriels qui vous guide pas à pas dans l’utilisation de tf2. Vous pouvez commencer avec le didacticiel introduction to tf2. Pour une liste complète de tous les tutoriels liés à tf2 et tf2, consultez la page tutorials.

Il y a essentiellement deux tâches principales pour lesquelles tout utilisateur utiliserait tf2, écouter les transformations et diffuser les transformations.

Si vous souhaitez utiliser tf2 pour transformer entre les cadres de coordonnées, vos nœuds devront écouter les transformations. Ce que vous allez faire est de recevoir et de mettre en mémoire tampon toutes les trames de coordonnées diffusées dans le système, et de rechercher des transformations spécifiques entre les trames. Consultez le tutoriel d’écriture d’un écouteur tf2 (Python) (C++) pour en savoir plus.

Pour étendre les capacités d’un robot, vous devrez commencer à diffuser des transformations. La diffusion des transformations signifie envoyer la pose relative des trames de coordonnées au reste du système. Un système peut avoir de nombreux diffuseurs qui fournissent chacun des informations sur une partie différente du robot. Découvrez le tutoriel d’écriture d’un diffuseur tf2 (Python) (C++) pour en savoir plus.

En plus de cela, tf2 peut diffuser des transformations statiques qui ne changent pas dans le temps. Cela permet principalement d’économiser du temps de stockage et de recherche, bien que la surcharge de publication soit également améliorée. Vous devez noter que les transformations statiques sont publiées une seule fois et supposées ne pas changer et donc aucun historique de temps n’est stocké. Si vous souhaitez définir des transformations statiques dans votre arborescence tf2, jetez un œil à l’écriture statique tf2 broadcaster (Python) tutoriel.

Vous pouvez également apprendre à ajouter des cadres fixes et dynamiques à votre arbre tf2 en ajoutant un cadre (Python) ( C++) tutoriel.

Une fois que vous avez terminé avec les didacticiels de base, vous pouvez passer à l’apprentissage de tf2 et du temps. Le tutoriel tf2 et time (Python) (C++) enseigne les principes de base de tf2 et du temps. Le tutoriel avancé sur tf2 et le temps (Python) (C++) enseigne les principes du voyage dans le temps avec tf2.

Papier

Il existe un article sur tf2 présenté à TePRA 2013 : tf: The transform library.