Uuv_simulator: マルチロボットTFツリーが壊れています

作成日 2020年05月24日  ·  10コメント  ·  ソース: uuvsimulator/uuv_simulator

こんにちは、私はUUVシミュレーターが複数のロボットをシミュレートできることをよく知っています(その長所の1つ)。 ただし、マルチロボットシステムのTFツリーを単一の共通の親TFフレームworld接続したままにすることができませんでした。

roslaunch uuv_gazebo_worlds ocean_waves.launchworldworld_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を実行してから、別々のupload.launchファイル(テンプレートはupload_rexrov.launchに従う)を介して両方のurdfを同時にアップロードしようとすると、切断されたTFツリーが表示され、通常は2番目の車両が切断されます。 TFツリーから。 この場合、auv3が最初にアップロードされ、次にauv4がアップロードされたため、 worldauv3/base_link接続されましたが、 auv4/base_linkから切断されました。

image

アップロードの順序を逆にすると(最初にauv4、次にauv3)、 worldauv4/base_link接続されますが、 auv3/base_linkは接続されません。

#396が同じ問題をカバーしているので、私はおそらく何か間違ったことをしていますが、どういうわけかオリジナルポスター(OP)は自分で問題を解決することができました。 完全に接続されたTFツリーを許可するためにこの問題を解決する方法について誰かがガイドできますか? 私は現在、 message_to_tf.launchファイルがnav_msgs :: OdometryをROSTF変換に変換するのに役立つことを理解しています。 どんな助けでも大歓迎です。 ありがとう!

question problem

全てのコメント10件

こんにちは@HashirZahirまだ時間がありませんでしたが、エラーを再現して解決策を見つけようとします

@HashirZahir私もこの同じ問題に興味があります。 _roslaunch uuv_gazebo_worlds ocean_waves.launch_を実行した後、同じ方法で3台のEca_a9車両を同時に発射しようとしています。 一度に最大2台のEca_a9車両を稼働させることができます-この問題についてさらに進展がありましたか?

2台のEca_a9車両(およびそれぞれのTFツリー)を一緒に実行するために複製する手順を共有できますか?私の場合、シミュレーションで両方の車両をスポーンできますが、TFツリーが壊れているか切断されているため、実行が困難ですマルチAUV計算/アルゴリズム

運がいいですか

申し訳ありませんが@HashirZahirですが、まだ忙しくて忙しいのですが、今週はチェックしてみます。

2台のEca_a9車両(およびそれぞれのTFツリー)を一緒に実行するために複製する手順を共有できますか?私の場合、シミュレーションで両方の車両をスポーンできますが、TFツリーが壊れているか切断されているため、実行が困難ですマルチAUV計算/アルゴリズム

応答が遅くなってすみません。 upload.launchを使用して、異なる名前空間で3つ(またはそれ以上)のEcaUUVを起動するための起動ファイルがあります。 別の起動ファイルを使用して、3台の車両それぞれの幾何学的追跡コントローラーを起動します。 理由がわからない場合、これは通常2/3 UUVで機能し、3番目は応答せず壊れています(説明したように)...したがって、2 UUVのすべてのトピックを制御、送信、エコーできます。 これは常に一貫しているとは限らず、1つのUUVのみが正しく生成される場合があることに注意してください。 残念ながら、この問題についてこれ以上の洞察はありません。

誰かがこの問題について何か洞察を得ることができましたか? このシミュレータのマルチロボット機能は素晴らしいですが、問題の原因を見つけることができませんでしたが、いくつかの単純なTFツリースクリプトが壊れたTFツリーを引き起こしているように感じます。

@HashirZahir
私は@ Joel-Lindsayと同じ問題を抱えていましたが、eca_a9sとのリンクが壊れていました。 ファイル/eca_a9/eca_a9_description/robots/eca_a9_default.urdf.xacroを編集して、これを修正しました。

イナーシャl_reference_frame = "$(arg慣性_リファレンス_フレーム)"
に変更されました:
慣性_reference_frame = "world"

これにより、切断されたtfツリーが修正されました。

こんにちは、 @ ErinWetter接続されたTFツリーの写真を共有してもよろしいですか?

これは、4つのeca_a9が機能するtfツリーの最上部です。

Four_Eca_short

2台の車両だけに行くと、ベースリンクが表示されます。

two_eca_short

ロボット状態パブリッシャーを一致するようにハードコーディングする前に、broadcasters:ground_truth_to_uuv#と/ uu#/ robot_state_publisher間のフレームリンクが接続されなかった理由がわかりませんが、xacro / urdfロボットモデルの作成プロセスに精通していません。

EcaとRexRovでブロードキャストノードを起動する順序を比較して、1台の車両でいくつかのテストを実行しました(tfツリーの問題は発生しておらず、複数の車両のシミュレーションに使用しています)。 単一のEca_a9の場合、「upload_eca_a9.launch」ファイル内ではなくターミナルで/ Ground_truth_to_uuv#ノードを開始すると、tfツリーは/ base_linkで切断されます。 すべての起動条件に接続されたRexRov / base_linkで同じことを行います。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

musamarcusso picture musamarcusso  ·  12コメント

ccs-ros picture ccs-ros  ·  10コメント

bst picture bst  ·  33コメント

Timple picture Timple  ·  7コメント

hughhugh picture hughhugh  ·  5コメント