Mavros: النشر يحول كلا الاتجاهين غير صحيح

تم إنشاؤها على ٢٠ يوليو ٢٠١٩  ·  5تعليقات  ·  مصدر: mavlink/mavros

التعليق الذي تحتاجه لنشر التحويل بالطريقة الأخرى غير صحيح.

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

يجب استخدام واحد فقط من هؤلاء:

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

سوف يقاتلون مع بعضهم البعض ويتسببون في تعويضات مستمرة بحيث يفوز آخر شخص تم تلقيه في أي وقت. من المحتمل أن يكون الإصدار الأول الذي تم اختباره قد تسبب في فصل الشجرة عن طريق الإصلاح غير المقصود وإضافة المكالمة الثانية التي أخفتها.

وأثناء النظر في هذا الرمز. من الأنظف والأكثر كفاءة نشر ناقل للتحويلات الثابتة للاستفادة من الإغلاق بدلاً من نشر سلسلة من التحويلات الفردية.

bug

ال 5 كومينتر

لقد طرحنا هذا هنا من قبل: https://github.com/mavlink/mavros/pull/1252#issuecomment -503084522

@ TSC21 لمعلوماتك

jkflyingbaumanta هل يا رفاق محاولة لاختبار في حالة وجود قضية الطابع الزمني مع إزالة الناشر مكررة؟

tfoote لقد كنت محقًا في تعليقك على القضية رقم 388 . يبدو أن حلقة tf في mavros مسؤولة عن الحصول دائمًا على tf في ros :: Time :: now ().

لقد قمت بوضع مستمع tf في كود التجنب الذي قام باسترداد التحويلات في الطابع الزمني لآخر pointcloud وفي ros :: Time :: now () وقمت بطباعة كلا التحويلين. عندما كانت الطائرة بدون طيار تتحرك ، كنت أتوقع أن تكون التحولات مختلفة قليلاً. باستخدام Mavros 0.29.2. كان كلا التحولين متطابقين دائمًا حتى لو اعتقدت أن الطوابع الزمنية لم تكن كذلك. باستخدام Mavros PR # 1252 ، كانت التحويلات مختلفة.

حسنًا ، أظن أن سبب عدم عمل رمز المكون الإضافي odom يرجع إلى قيود غامضة على الموضوعات المغلقة - لا يمكنك نشر رسائل مختلفة إلى موضوع مغلق من نفس العملية.

راجع https://github.com/ros/ros_comm/issues/146 و https://answers.ros.org/question/261815/how-can-i-access-all-static-tf2-transforms/.

الحل البديل لذلك هو إنشاء متجه لجميع التحويلات ونشرها في لقطة واحدة (قم بالتمرير إلى وظيفة TF2 المتخصصة http://docs.ros.org/melodic/api/tf2_ros/html/c++/classtf2__ros_1_1StaticTransformBroadcaster.html#a83d0664cb0cc85688b60a2236 )

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات