Uuv_simulator: Árbol Multi Robot TF roto

Creado en 24 may. 2020  ·  10Comentarios  ·  Fuente: uuvsimulator/uuv_simulator

Hola, soy muy consciente de que el UUV Simulator es capaz de simular varios robots (uno de sus puntos fuertes). Sin embargo, no he podido hacer que los árboles TF del sistema de múltiples robots permanezcan conectados con un solo marco TF principal común world .

Cuando se ejecuta roslaunch uuv_gazebo_worlds ocean_waves.launch , solo se publican world y world_ned .

image

A continuación, si subo mi auv4 URDF personalizado, obtengo el árbol TF conectado desde world a auv4/base_link .

image

Hasta ahora todo bien. De manera similar, si tuviera que reiniciar el simulador y ejecutar roslaunch uuv_gazebo_worlds ocean_waves.launch nuevamente, pero esta vez cargando mi vehículo auv3 , me conecto al árbol TF desde world a auv3/base_link .

image

Hasta ahora todo bien. Sin embargo, si intentara ejecutar roslaunch uuv_gazebo_worlds ocean_waves.launch y luego cargar ambos urdfs simultáneamente a través de archivos upload.launch separados (la plantilla sigue a upload_rexrov.launch), obtengo un árbol TF desconectado, con el segundo vehículo lanzado generalmente desconectado del árbol TF. En este caso, auv3 se cargó primero seguido de auv4, lo que solo resultó en world conectado a auv3/base_link pero desconectado de auv4/base_link .

image

Algo similar sucede si invierto el orden de carga (auv4 primero y luego auv3), luego world se conecta a auv4/base_link pero no a auv3/base_link .

Probablemente esté haciendo algo mal ya que el número 396 cubre el mismo problema, pero de alguna manera el Póster original (OP) logró resolver el problema por sí mismo. ¿Alguien podría orientar sobre cómo se puede resolver este problema para permitir un árbol TF completamente conectado? Actualmente entiendo que el archivo message_to_tf.launch ayuda a convertir nav_msgs :: Odometry en transformaciones ROS TF. Se agradece cualquier ayuda. ¡Gracias!

question problem

Todos 10 comentarios

Hola @HashirZahir No tuve tiempo todavía pero intentaré reproducir tu error y encontrar una solución

@HashirZahir También estoy interesado en este mismo problema. Estoy intentando lanzar 3 vehículos Eca_a9 simultáneamente de la misma manera después de ejecutar _roslaunch uuv_gazebo_worlds ocean_waves.launch_. Puedo hacer que funcionen como máximo dos vehículos Eca_a9 a la vez. ¿Ha progresado más en este tema?

¿Podría compartir los pasos para replicar para que los 2 vehículos Eca_a9 funcionen juntos (y sus respectivos árboles TF?) En mi caso, puedo generar ambos vehículos en la simulación, pero el árbol TF está roto / desconectado, lo que hace que sea más difícil de realizar. cálculos / algoritmos multi-auv

¿ Tuviste suerte

Lo siento @HashirZahir , pero todavía no, he estado muy ocupado, pero intentaré comprobarlo esta semana.

¿Podría compartir los pasos para replicar para que los 2 vehículos Eca_a9 funcionen juntos (y sus respectivos árboles TF?) En mi caso, puedo generar ambos vehículos en la simulación, pero el árbol TF está roto / desconectado, lo que hace que sea más difícil de realizar. cálculos / algoritmos multi-auv

Disculpe por la tardanza en responder. Tengo un archivo de lanzamiento para lanzar 3 (o más) UUV de Eca en diferentes espacios de nombres usando upload.launch. Utilizo otro archivo de inicio para iniciar el controlador de seguimiento geométrico para cada uno de los 3 vehículos. Sin saber por qué, esto generalmente funciona para 2/3 UUV, y el tercero no responde y está roto (como ha descrito) ... Entonces puedo controlar, enviar puntos de referencia, hacer eco de todos los temas para 2 UUV. Tenga en cuenta que esto no siempre es consistente y, a veces, solo un UUV se generará correctamente. Lamentablemente, no tengo más información sobre el problema.

¿Alguien ha logrado obtener información sobre este tema? Las capacidades de múltiples robots de este simulador son increíbles, pero siento que un simple script de árbol TF está causando el árbol TF roto, aunque no he podido encontrar la fuente del problema.

@HashirZahir
Estaba teniendo el mismo problema que @ Joel-Lindsay con enlaces rotos con eca_a9s. Arreglé esto editando el archivo /eca_a9/eca_a9_description/robots/eca_a9_default.urdf.xacro.

inertial_reference_frame = "$ (arg inertial_reference_frame)"
fue cambiado a:
inertial_reference_frame = "mundo"

Esto arregló mis árboles tf que también estaban desconectados.

Hola, @ErinWetter , ¿te importaría compartir una imagen del árbol TF conectado?

Aquí está la parte superior de un árbol tf con 4 eca_a9 en funcionamiento:

Four_Eca_short

Bajando a solo dos vehículos podemos ver el enlace base:

two_eca_short

No he descubierto por qué los enlaces de fotogramas entre las emisoras: ground_truth_to_uuv # y / uu # / robot_state_publisher no se estaban conectando antes de codificar el editor de estado del robot para que coincida, pero no estoy familiarizado con el proceso de creación del modelo de robot xacro / urdf.

Había realizado algunas pruebas en un solo vehículo comparando el orden de lanzamiento de los nodos de transmisión en Eca y RexRov (que no ha tenido los problemas del árbol de tf roto y que he estado usando para simulaciones de múltiples vehículos). Para un solo Eca_a9, el árbol tf se cortaría en / base_link si iniciara el nodo / ground_truth_to_uuv # en la terminal en lugar de dentro del archivo "upload_eca_a9.launch". Mientras hace lo mismo con el RexRov / base_link conectado con todas las condiciones de lanzamiento.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

atomoclast picture atomoclast  ·  23Comentarios

bst picture bst  ·  33Comentarios

dbcesar picture dbcesar  ·  5Comentarios

musamarcusso picture musamarcusso  ·  12Comentarios

Timple picture Timple  ·  24Comentarios