こんにちは、私はUUVシミュレーターが複数のロボットをシミュレートできることをよく知っています(その長所の1つ)。 ただし、マルチロボットシステムのTFツリーを単一の共通の親TFフレームworld
接続したままにすることができませんでした。
roslaunch uuv_gazebo_worlds ocean_waves.launch
、 world
とworld_ned
のみが公開されます。
次に、カスタムauv4
URDFをアップロードすると、接続されたTFツリーがworld
からauv4/base_link
ます。
これまでのところすべて良い。 同様に、シミュレーターを再起動してroslaunch uuv_gazebo_worlds ocean_waves.launch
再度実行したが、今回はauv3
車両をアップロードすると、接続されたTFツリーがworld
からauv3/base_link
。
これまでのところすべて良い。 ただし、 roslaunch uuv_gazebo_worlds ocean_waves.launch
を実行してから、別々のupload.launchファイル(テンプレートはupload_rexrov.launchに従う)を介して両方のurdfを同時にアップロードしようとすると、切断されたTFツリーが表示され、通常は2番目の車両が切断されます。 TFツリーから。 この場合、auv3が最初にアップロードされ、次にauv4がアップロードされたため、 world
はauv3/base_link
接続されましたが、 auv4/base_link
から切断されました。
アップロードの順序を逆にすると(最初にauv4、次にauv3)、 world
はauv4/base_link
接続されますが、 auv3/base_link
は接続されません。
#396が同じ問題をカバーしているので、私はおそらく何か間違ったことをしていますが、どういうわけかオリジナルポスター(OP)は自分で問題を解決することができました。 完全に接続されたTFツリーを許可するためにこの問題を解決する方法について誰かがガイドできますか? 私は現在、 message_to_tf.launch
ファイルがnav_msgs :: OdometryをROSTF変換に変換するのに役立つことを理解しています。 どんな助けでも大歓迎です。 ありがとう!
こんにちは@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ツリーの最上部です。
2台の車両だけに行くと、ベースリンクが表示されます。
ロボット状態パブリッシャーを一致するようにハードコーディングする前に、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で同じことを行います。