トランスフォームを他の方法で公開する必要があるというコメントは正しくありません。
これらのうちの1つだけを使用する必要があります。
彼らはお互いに戦い、いつでも最後に受け取った人が勝つように、継続的な親の再設定を引き起こします。 テストされた最初のバージョンでは、誤って親を変更し、2番目の呼び出しを追加することでツリーが切断され、ツリーがマスクされた可能性があります。
そして、私がこのコードを見ている間。 個々の変換のシーケンスを公開するよりも、ラッチを利用するために静的変換のベクトルを公開する方が、よりクリーンで効率的です。
これは以前にここで取り上げました: https :
@ TSC21 FYI
@jkflying @baumanta重複する発行元を削除して、タイムスタンプの問題が存在するかどうかをテストしてみてください。
OK、 odom
プラグインコードが機能しなかったのは、ラッチされたトピックの制限があいまいなためだと思います。同じプロセスからラッチされたトピックに異なるメッセージを公開することはできません。
https://github.com/ros/ros_comm/issues/146およびhttps://answers.ros.org/question/261815/how-can-i-access-all-static-tf2-transforms/を参照して
この回避策は、すべての変換のベクトルを作成し、それらを1つのショットで公開することです(特殊なTF2関数http://docs.ros.org/melodic/api/tf2_ros/html/c++/classtf2__ros_1_1StaticTransformBroadcaster.html#a83d0664cb0cc85688b60a2236e9d81ffに渡す)