Mavros: 両方向の変換を公開すると正しくありません

作成日 2019年07月20日  ·  5コメント  ·  ソース: mavlink/mavros

トランスフォームを他の方法で公開する必要があるというコメントは正しくありません。

https://github.com/mavlink/mavros/blob/bdc5c7386f9451ac244b5a85c087ad620fd3a989/mavros/src/lib/uas_data.cpp#L57

これらのうちの1つだけを使用する必要があります。

https://github.com/mavlink/mavros/blob/366a9a74847b2e231035b47fa06651527a4556b9/mavros/src/lib/uas_data.cpp#L56 -L58

彼らはお互いに戦い、いつでも最後に受け取った人が勝つように、継続的な親の再設定を引き起こします。 テストされた最初のバージョンでは、誤って親を変更し、2番目の呼び出しを追加することでツリーが切断され、ツリーがマスクされた可能性があります。

そして、私がこのコードを見ている間。 個々の変換のシーケンスを公開するよりも、ラッチを利用するために静的変換のベクトルを公開する方が、よりクリーンで効率的です。

bug

全てのコメント5件

これは以前にここで取り上げました: https

@ TSC21 FYI

@jkflying @baumanta重複する発行元を削除して、タイムスタンプの問題が存在するかどうかをテストしてみてください。

@tfooteあなたは問題#388についてのあなたのコメントに正しかった。 mavrosのtfループは、ros :: Time :: now()で常にtfを取得する役割を果たしているようです。

最後の点群のタイムスタンプとros :: Time :: now()で変換を取得し、両方の変換を出力する回避コードにtfリスナーを配置しました。 ドローンが動いているので、私は変形がわずかに異なることを期待します。 Mavros0.29.2を使用します。 タイムスタンプがそうではなかったとしても、両方の変換は常に同一でした。 Mavros PR#1252を使用すると、変換が異なります。

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に渡す)

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