Uuv_simulator: Arbre Multi Robot TF cassé

Créé le 24 mai 2020  ·  10Commentaires  ·  Source: uuvsimulator/uuv_simulator

Bonjour, je suis bien conscient que le simulateur UUV est capable de simuler plusieurs robots (un de ses points forts). Cependant, je n'ai pas pu faire en sorte que les arbres TF du système multi-robots restent connectés avec un seul cadre TF parent commun world .

Lors de l'exécution de roslaunch uuv_gazebo_worlds ocean_waves.launch , seuls world et world_ned sont publiés.

image

Ensuite, si je télécharge mon auv4 URDF personnalisé, je reçois un arbre TF connecté de world à auv4/base_link .

image

Jusqu'ici tout va bien. De même, si je devais redémarrer le simulateur et exécuter à nouveau roslaunch uuv_gazebo_worlds ocean_waves.launch , mais cette fois en téléchargeant mon véhicule auv3 , je reçois un arbre TF connecté de world à auv3/base_link .

image

Jusqu'ici tout va bien. Cependant, si je devais essayer d'exécuter roslaunch uuv_gazebo_worlds ocean_waves.launch puis de télécharger les deux urdfs simultanément via des fichiers upload.launch séparés (le modèle suit upload_rexrov.launch), j'obtiens un arbre TF déconnecté, avec le deuxième véhicule lancé généralement déconnecté de l'arbre TF. Dans ce cas, auv3 a été téléchargé en premier, suivi de auv4, ce qui n'a entraîné que world connecté à auv3/base_link mais déconnecté de auv4/base_link .

image

La même chose se produit si j'inverse l'ordre de téléchargement (auv4 d'abord puis auv3), alors world est connecté à auv4/base_link mais pas à auv3/base_link .

Je fais probablement quelque chose de mal puisque le numéro 396 couvre le même problème, mais d'une manière ou d'une autre, l'affiche originale (OP) a réussi à résoudre le problème par elle-même. Quelqu'un pourrait-il expliquer comment ce problème peut être résolu pour permettre un arbre TF entièrement connecté ? Je comprends actuellement que le fichier message_to_tf.launch permet de convertir nav_msgs::Odometry en transformations ROS TF. Toute aide est appréciée. Merci!

question problem

Tous les 10 commentaires

Salut @HashirZahir je n'ai pas encore eu le temps mais je vais essayer de reproduire ton erreur et trouver une solution

@HashirZahir Je suis également intéressé par ce même problème. J'essaie de lancer 3 véhicules Eca_a9 simultanément de la même manière après avoir exécuté _roslaunch uuv_gazebo_worlds ocean_waves.launch_. Je peux faire fonctionner au maximum deux véhicules Eca_a9 en même temps. Avez-vous progressé sur ce problème ?

Pourriez-vous partager les étapes à reproduire pour faire fonctionner les 2 véhicules Eca_a9 ensemble (et leurs arbres TF respectifs ?) Dans mon cas, je suis capable de faire apparaître les deux véhicules dans la simulation mais l'arbre TF est cassé/déconnecté, ce qui le rend plus difficile calculs/algorithmes multi-auv

Un peu de chance @pxalcantara ?

Désolé @HashirZahir , mais pas encore, j'ai été très occupé mais je vais essayer de vérifier cette semaine.

Pourriez-vous partager les étapes à reproduire pour faire fonctionner les 2 véhicules Eca_a9 ensemble (et leurs arbres TF respectifs ?) Dans mon cas, je suis capable de faire apparaître les deux véhicules dans la simulation mais l'arbre TF est cassé/déconnecté, ce qui le rend plus difficile calculs/algorithmes multi-auv

Désolé pour la lenteur de la réponse. J'ai un fichier de lancement pour lancer 3 (ou plus) UUV Eca sous différents espaces de noms à l'aide du fichier upload.launch. J'utilise un autre fichier de lancement pour lancer le contrôleur de suivi géométrique pour chacun des 3 véhicules. Sans savoir pourquoi, cela fonctionne généralement pour 2/3 UUV, le 3ème étant insensible et cassé (comme vous l'avez décrit)... Je peux donc contrôler, envoyer des waypoints, faire écho à tous les sujets pour 2 UUV. Notez que ce n'est pas toujours cohérent et parfois un seul UUV apparaîtra correctement. Je n'ai malheureusement plus aucune idée du problème.

Quelqu'un a-t-il réussi à avoir une idée sur ce problème? Les capacités multi-robots de ce simulateur sont incroyables, mais j'ai l'impression qu'un simple script d'arbre TF est à l'origine de l'arbre TF cassé, bien que je n'aie pas pu trouver la source du problème.

@HashirZahir
J'avais le même problème que @Joel-Lindsay avec des liens rompus avec les eca_a9s. J'ai corrigé cela en éditant le fichier /eca_a9/eca_a9_description/robots/eca_a9_default.urdf.xacro.

inertie_référence_frame="$(arg inertie_reference_frame)"
a été changé en :
inertie_reference_frame="monde"

Cela a corrigé mes arbres tf qui étaient également déconnectés.

Salut, @ErinWetter, ça vous dérange de partager une photo de l'arbre TF connecté ?

Voici le sommet d'un arbre tf avec 4 eca_a9 fonctionnels :

Four_Eca_short

En descendant à seulement deux véhicules, nous pouvons voir le lien de base :

two_eca_short

Je n'ai pas compris pourquoi les liens de trame entre les diffuseurs : ground_truth_to_uuv# et /uu#/robot_state_publisher ne se connectaient pas avant de coder en dur l'éditeur d'état du robot pour qu'il corresponde, mais je ne suis pas familier avec le processus de création de modèle de robot xacro/urdf.

J'avais effectué des tests sur un seul véhicule en comparant l'ordre de lancement des nœuds de diffusion sur l'Eca et le RexRov (qui n'a pas eu les problèmes d'arbre tf cassé et que j'ai utilisé pour les simulations multi-véhicules). Pour un seul Eca_a9, l'arbre tf serait coupé à /base_link si je démarrais le nœud /ground_truth_to_uuv# dans le terminal plutôt que dans le fichier "upload_eca_a9.launch". Tout en faisant de même avec le RexRov /base_link connecté à toutes les conditions de lancement.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Timple picture Timple  ·  24Commentaires

bst picture bst  ·  33Commentaires

tve picture tve  ·  17Commentaires

musamarcusso picture musamarcusso  ·  12Commentaires

atomoclast picture atomoclast  ·  23Commentaires