Mavros: كيفية بناء سلسلة FCU mavros QGC

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

مرحبًا ، إذا قمت بتوصيل القياس عن بعد بجهاز الكمبيوتر الخاص بي ، وفتحت عقدة mavros للتواصل مع FCU عبر القياس عن بُعد. ما عنوان UDP الذي أضعه عند تشغيل mavros؟

question

التعليق الأكثر فائدة

لمعلوماتك: جرب udp-b://@ كعنوان GCS URL.

ال 12 كومينتر

  • يعتمد عنوان UDP على عنوان IP لجهاز الكمبيوتر الخاص بك والمنفذ ذي الصلة. يمكنك تعيين العنوان في launch file أو في سطر الأوامر عند تشغيله.
  • الهيكل الأساسي
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"

لكن المنفذ والعنوان يعتمدان على نظامك.

شكرا. أفهم هذا ، ولكن عندما أقوم بتوصيل القياس عن بعد بجهاز الكمبيوتر الخاص بي ، ما هو عنوان IP الذي أستخدمه. أين يمكنني العثور على عنوان IP الخاص بـ FCU؟ أنا أستخدم القياس عن بعد RC للإرسال

zhahaoyu يمكنك التحقق من عنوان IP لجهاز الكمبيوتر الخاص بك باستخدام ifconfig .

  • إذا كنت تستخدم طريقة القياس عن بُعد ، فقد تلقى mavros بالفعل رسالة mavlink من FCU (PX4) عبر منفذ القياس عن بُعد ونقلها إلى رسالة ROS. أنت فقط تترك mavros يفعل شيئًا آخر ، لنشر نفس المعلومات في منفذ UDP ، حيث يمكن لـ QGC تلقي المعلومات.

    • الاتصال بين FCU وجهاز الكمبيوتر الخاص بك

<FCU> ---telemtry port --<MAVROS>

  • في جهاز الكمبيوتر الخاص بك:
<MAVROS> --- UDP ----<QGC>
<MAVROS> ----ros message---<Other Nodets>

  • لذلك ، ليست هناك حاجة لمعرفة عنوان IP الخاص بـ FCU ، ولا يوجد عنوان IP لـ FCU بالفعل.

شكراweiweikong. الآن فهمت الهيكل. حاولت استخدام roslaunch mavros px4.launch ، وأنا قادر على بدء عقدة Mavros للتواصل مع FCU عبر telem ، لكن كيف يمكنني فتح منفذ UDP لـ QGC ، وإرشاد QGC للاستماع إليه؟

عندما بدأت تشغيل Mavros ، كان كل شيء على ما يرام. ولكن إذا فتحت QGC ، فإنه يستمع تلقائيًا إلى نفس منفذ telem ، ويتعطل mavros. فكيف يمكنني إنشاء اتصال بين QGC و mavros

تضمين التغريدة

  • لتكوين UDP
<include file="$(find mavros)/launch/node.launch">
        <arg name="blacklist_yaml" value="$(find mavros)/launch/px4_blacklist.yaml" />
        <arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" />

        <arg name="fcu_url" value="$(arg fcu_url)" />
        <arg name="gcs_url" value="$(arg gcs_url)" />
        <arg name="tgt_system" value="$(arg tgt_system)" />
        <arg name="tgt_component" value="$(arg tgt_component)" />
    </include>

القسم gcs_url هو لتهيئة UDP. يحتوي موقع الويب px4 القديم على مزيد من التفاصيل https://pixhawk.org/peripherals/onboard_computers/intel_edison.
كما يظهر المثال

<arg name="gcs_url" default="udp://:14556@my-intel-edisons-ip:14550" />

يعني أنه سيتم توصيل QGC عبر UDP بالمنفذ 14556.

  • للسلامة ، يمكنك التحقق من منافذ UDP للتأكد من أنها كانت متاحة أو مشغولة.

لقد اتبعت تعليماتك ، ها هو ملف التشغيل الذي استخدمته

<launch>
    <!-- vim: set ft=xml noet : -->
    <!-- example launch script for PX4 based FCU's -->

    <arg name="fcu_url" default="/dev/ttyUSB0:57600" />
    <arg name="gcs_url" default="udp://:[email protected]:14550" />
    <arg name="tgt_system" default="1" />
    <arg name="tgt_component" default="1" />
    <arg name="log_output" default="screen" />

    <include file="$(find mavros)/launch/node.launch">
        <arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml" />
        <arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" />

        <arg name="fcu_url" value="$(arg fcu_url)" />
        <arg name="gcs_url" value="$(arg gcs_url)" />
        <arg name="tgt_system" value="$(arg tgt_system)" />
        <arg name="tgt_component" value="$(arg tgt_component)" />
        <arg name="log_output" value="$(arg log_output)" />
    </include>
</launch>

وما زال يتعطل mavros مع رسالة الخطأ التالية عند بدء QGC

ERROR] [1478057788.915106802]: serial0: receive: End of file
terminate called after throwing an instance of 'std::system_error'
  what():  Resource deadlock avoided
================================================================================REQUIRED process [mavros-2] has died!
process has died [pid 12427, exit code -6, cmd /opt/ros/kinetic/lib/mavros/mavros_node __name:=mavros __log:=/home/haoyu/.ros/log/849342f6-a0ad-11e6-8d09-000f6005d13e/mavros-2.log].
log file: /home/haoyu/.ros/log/849342f6-a0ad-11e6-8d09-000f6005d13e/mavros-2*.log
Initiating shutdown!
================================================================================
[mavros-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

zhahaoyu لست متأكدًا تمامًا من هذا الوضع. من واقع خبرتي ، يجب أن يعمل QGC بشكل مستقل مع ROS ، لذلك يجب أن يبدأ التشغيل بشكل طبيعي ، ويمكننا تعيين تكوين QGC UDP للاستماع إلى المعلومات من mavros .

serial0: receive: End of file

أنا الآن متأكد مما إذا كانت المعلومات الواردة أعلاه تعني أن QGC حاولت توصيل FCU بمنفذ تسلسلي. إذا كان صحيحًا ، فقد يتعطل QGC أو mavros .

أعتقد أن QGC تحاول استخدام المنفذ التسلسلي. عندما أستخدم QGC مع ROS في وضع SITL ، كل شيء يعمل بشكل جيد. أنا فقط لا أعرف كيف أفعل هذا مع pixhawk fcu الحقيقي.

zhahaoyu ربما حاول بدء QGC أولاً ثم قم بتكوينه باستخدام اتصال UDP بدلاً من المنفذ التسلسلي قبل تشغيل mavros wih PX4.

weiweikong شكرا جزيلا. حللت المشاكل. كمرجع للآخرين ، هذا ما فعلته:

  1. افتح QGroundControl Station ، وانقر على أيقونة "Q" أعلى اليسار ، وادخل لوحة "التفضيلات"
  2. انقر على "عام" على اليسار ، ثم ابحث عن "الاتصال التلقائي بالأجهزة التالية:" ، ثم إلغاء الاشتراك في "راديو SiK" ، واشترك في "UDP"
  3. أغلق QGroundControl للتأكد من فصله عن FCU
  4. قم بتحرير ملف px4.launch ، الموجود في مجلد حزمة Mavros ، أضف " udp: //: [email protected] : 14550" ، 14560 و 14550 هي أي منافذ غير مستخدمة
  5. تشغيل roslaunch mavros px4.launch
  6. افتح QGroundControl

الآن تم إنشاء سلسلة FCU <---telemetry---> MAVROS <---UDP---> QGC . لن تتصل QGC تلقائيًا مع FCU vai Telemetry بعد الآن. إذا كنا لا نزال نريد ذلك ، فيمكننا تكوين اتصال يدوي.

لمعلوماتك: جرب udp-b://@ كعنوان GCS URL.

مرحبًا ، لدي مشكلة مماثلة ، لقد حصلت على وحدة قياس أرضية راديو FPV وأريدها أن تتواصل مع القياس عن بعد الذي يمتلك طائرة Iris بدون طيار.

عندما أقوم بتوصيل القياس عن بعد (الأرضي) بجهاز كمبيوتر ubuntu الخاص بي وتشغيل الطائرة بدون طيار ، لا يتم تشغيل محطة Qground.

لماذا هذه المشكلة؟

هل يجب علي تثبيت أي برامج تشغيل؟

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