Uuv_simulator: Дерево Multi Robot TF сломано

Созданный на 24 мая 2020  ·  10Комментарии  ·  Источник: uuvsimulator/uuv_simulator

Привет, мне хорошо известно, что UUV Simulator может моделировать несколько роботов (одна из его сильных сторон). Однако мне не удалось заставить деревья TF системы с несколькими роботами оставаться связанными с одним общим родительским кадром TF world .

При запуске roslaunch uuv_gazebo_worlds ocean_waves.launch публикуются только world и world_ned .

image

Затем, если я загружаю свой собственный auv4 URDF, я получаю подключенное дерево TF от world до auv4/base_link .

image

Пока все хорошо. Точно так же, если бы я перезапустил симулятор и снова запустил roslaunch uuv_gazebo_worlds ocean_waves.launch , но на этот раз загружая свой автомобиль auv3 , я получаю подключенное дерево TF с world на auv3/base_link .

image

Пока все хорошо. Однако, если бы я попытался запустить roslaunch uuv_gazebo_worlds ocean_waves.launch а затем загрузить оба urdf-файла одновременно с помощью отдельных файлов upload.launch (шаблон следует за upload_rexrov.launch), я получу отключенное дерево TF, при этом второе запущенное транспортное средство обычно отключено. из дерева TF. В этом случае сначала был загружен auv3, а затем auv4, в результате чего world подключился к auv3/base_link но отключился от auv4/base_link .

image

То же самое происходит, если я изменяю порядок загрузки (сначала auv4, затем auv3), тогда world подключается к auv4/base_link но не auv3/base_link .

Я, вероятно, делаю что-то не так, поскольку № 396 касается той же проблемы, но каким-то образом исходный плакат (OP) сумел решить проблему самостоятельно. Может ли кто-нибудь рассказать, как можно решить эту проблему, чтобы разрешить полностью подключенное дерево TF? В настоящее время я понимаю, что файл message_to_tf.launch помогает преобразовать nav_msgs :: Odometry в преобразования TF ROS. Любая помощь приветствуется. Спасибо!

question problem

Все 10 Комментарий

Привет @HashirZahir, у меня еще не было времени, но я постараюсь воспроизвести вашу ошибку и найти решение

@HashirZahir Меня тоже интересует эта же проблема. Я пытаюсь запустить 3 машины Eca_a9 одновременно таким же образом после запуска _roslaunch uuv_gazebo_worlds ocean_waves.launch_. Я могу заставить работать не более двух автомобилей Eca_a9 одновременно - Есть ли у вас какие-либо дальнейшие успехи в этом вопросе?

Не могли бы вы поделиться шагами по репликации, чтобы 2 машины Eca_a9 работали вместе (и их соответствующие деревья TF?) В моем случае я могу создать обе машины в симуляции, но дерево TF сломано / отключено, что затрудняет выполнение многоуровневые вычисления / алгоритмы

Удачи @pxalcantara ?

Извините, @HashirZahir , но пока нет, я был очень занят, но попробую проверить на этой неделе.

Не могли бы вы поделиться шагами по репликации, чтобы 2 машины Eca_a9 работали вместе (и их соответствующие деревья TF?) В моем случае я могу создать обе машины в симуляции, но дерево TF сломано / отключено, что затрудняет выполнение многоуровневые вычисления / алгоритмы

Извините за медленный ответ. У меня есть файл запуска для запуска 3 (или более) UUV Eca в разных пространствах имен с помощью upload.launch. Я использую другой файл запуска, чтобы запустить контроллер геометрического слежения для каждой из трех машин. Не зная почему, это обычно работает для 2/3 UUV, при этом 3-й не отвечает и сломан (как вы описали) ... Таким образом, я могу контролировать, отправлять путевые точки, отображать все темы для 2 UUV. Обратите внимание, что это не всегда последовательно, и иногда только один UUV будет появляться правильно. К сожалению, я больше не разбираюсь в этом вопросе.

Кому-нибудь удалось разобраться в этом вопросе? Возможности этого симулятора с несколькими роботами потрясающие, но я чувствую, что какой-то простой скрипт дерева TF вызывает сломанное дерево TF, хотя мне не удалось найти источник проблемы.

@HashirZahir
У меня была та же проблема, что и у @ Joel-Lindsay, с неработающими ссылками на eca_a9s. Я исправил это, отредактировав файл /eca_a9/eca_a9_description/robots/eca_a9_default.urdf.xacro.

inertial_reference_frame = "$ (аргумент inertial_reference_frame)"
был изменен на:
inertial_reference_frame = "мир"

Это исправило мои tf-деревья, которые также были отключены.

Привет, @ErinWetter, не могли бы вы поделиться изображением подключенного дерева TF?

Вот вершина tf-дерева с 4 рабочими eca_a9:

Four_Eca_short

Спустившись только к двум машинам, мы видим базовую ссылку:

two_eca_short

Я не понял, почему фрейм-ссылки между вещателями: ground_truth_to_uuv # и / uu # / robot_state_publisher не подключались до жесткого кодирования издателя состояния робота, чтобы он соответствовал, но я не знаком с процессом создания модели робота xacro / urdf.

Я провел несколько тестов на одном транспортном средстве, сравнивая порядок запуска узлов вещания на Eca и RexRov (у которого не было проблем со сломанным деревом tf, и я использовал для моделирования нескольких транспортных средств). Для одного Eca_a9 дерево tf будет разорвано на / base_link, если я запустил узел / ground_truth_to_uuv # в терминале, а не в файле "upload_eca_a9.launch". При этом то же самое проделываем с RexRov / base_link со всеми условиями запуска.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

hughhugh picture hughhugh  ·  5Комментарии

Timple picture Timple  ·  7Комментарии

musamarcusso picture musamarcusso  ·  12Комментарии

bst picture bst  ·  33Комментарии

Timple picture Timple  ·  24Комментарии