Mavros: Bagaimana membangun rantai QGC mavros FCU

Dibuat pada 1 Nov 2016  ·  12Komentar  ·  Sumber: mavlink/mavros

Hai, jika saya mencolokkan telemetri ke komputer saya, dan membuka node mavros untuk berkomunikasi dengan FCU melalui telemetri. Alamat UDP apa yang saya masukkan saat meluncurkan mavros?

question

Komentar yang paling membantu

FYI: Coba udp-b://@ sebagai URL GCS.

Semua 12 komentar

  • Alamat UDP didasarkan pada alamat IP PC Anda dan port terkait. Anda dapat mengatur alamat di launch file atau pada baris perintah saat Anda menjalankannya.
  • Struktur dasarnya adalah
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"

namun port dan alamatnya tergantung pada sistem Anda.

Terima kasih. Saya memahami ini, tetapi ketika saya mencolokkan telemetri ke komputer saya, alamat IP apa yang saya gunakan. Di mana saya dapat menemukan alamat IP FCU? Saya menggunakan telemetri rc untuk transmisi

@zhahaoyu Anda dapat memeriksa alamat IP PC Anda menggunakan ifconfig .

  • Jika Anda menggunakan metode telemetri, mavros telah menerima mavlink pesan dari FCU (PX4) melalui port telemetri dan mentransfernya ke pesan ROS. Anda hanya membiarkan mavros melakukan hal lain, untuk mempublikasikan informasi yang sama ke port UDP, di mana QGC dapat menerima informasi tersebut.

    • Koneksi antara FCU dan PC Anda

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

  • Di PC Anda:
<MAVROS> --- UDP ----<QGC>
<MAVROS> ----ros message---<Other Nodets>

  • Jadi, tidak perlu mengetahui alamat IP dari FCU, dan tidak ada alamat IP untuk FCU ​​sebenarnya.

Terima kasih @weiweikong. Sekarang saya mengerti strukturnya. Saya mencoba menggunakan roslaunch mavros px4.launch , dan saya dapat memulai node Mavros yang berkomunikasi dengan FCU melalui telem, tetapi bagaimana cara membuka port UDP untuk QGC, dan menginstruksikan QGC untuk mendengarkannya?

Ketika saya memulai Mavros, semuanya baik-baik saja. Tetapi jika saya membuka QGC, maka secara otomatis mendengarkan port telem yang sama, dan mavros macet. Jadi bagaimana cara membuat koneksi antara QGC dan mavros

@zhahaoy

  • Untuk konfigurasi 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>

bagian gcs_url adalah untuk konfigurasi UDP. Situs web px4 lama memiliki detail lebih lanjut https://pixhawk.org/peripherals/onboard_computers/intel_edison.
Seperti yang ditunjukkan contoh

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

berarti QGC kemudian akan dihubungkan melalui UDP ke port 14556.

  • Untuk keamanan, Anda dapat memeriksa port UDP untuk memastikannya tersedia atau ditempati.

Saya mengikuti instruksi Anda, ini file peluncuran yang saya gunakan

<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>

dan mavros masih macet dengan pesan kesalahan berikut saat saya memulai 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 Saya tidak begitu yakin tentang situasi ini. Menurut pengalaman saya, QGC harus bekerja secara independen dengan ROS, jadi harus dijalankan secara normal, dan kita dapat mengatur konfigurasi QGC UDP untuk mendengarkan informasi dari mavros .

serial0: receive: End of file

Saya sekarang yakin apakah informasi di atas berarti QGC mencoba menghubungkan FCU dengan port serial. Jika benar, QGC atau mavros mungkin macet.

Saya yakin QGC mencoba menggunakan port serial. Saat saya menggunakan QGC dengan ROS dalam mode SITL, semuanya berfungsi dengan baik. Saya hanya tidak tahu bagaimana melakukan ini dengan fcu pixhawk asli.

@zhahaoyu Mungkin mencoba untuk menjalankan QGC terlebih dahulu kemudian mengkonfigurasinya menggunakan koneksi UDP daripada port serial sebelum Anda meluncurkan mavros dengan PX4.

@weiweikong Terima kasih banyak. Saya memecahkan masalah. Untuk referensi orang lain, inilah yang saya lakukan:

  1. Buka QGroundControl Station, dan klik ikon "Q" di kiri atas, masuk ke panel "Preferences"
  2. Klik "Umum" di sebelah kiri, lalu cari "Sambungkan otomatis ke perangkat berikut:", pilih tidak ikut "SiK Radio", dan pilih "UDP"
  3. Tutup QGroundControl untuk memastikan bahwa itu terputus dari FCU
  4. Edit file px4.launch, yang ditemukan di folder paket Mavros, tambahkan " udp: //: [email protected] : 14550", 14560 dan 14550 adalah port yang tidak digunakan
  5. Jalankan roslaunch mavros px4.launch
  6. Buka QGroundControl

Sekarang rantai FCU <---telemetry---> MAVROS <---UDP---> QGC dibuat. QGC tidak akan secara otomatis terhubung dengan FCU vai Telemetri lagi. Jika kita masih menginginkannya, kita bisa mengkonfigurasi koneksi manual.

FYI: Coba udp-b://@ sebagai URL GCS.

Hai, Saya memiliki masalah serupa, saya mendapat Modul Tanah Telemetri Radio FPV dan saya ingin berkomunikasi dengan telemetri yang memiliki drone Iris.

Ketika saya menghubungkan telemetri (Ground) ke pc ubuntu saya dan menyalakan drone tidak memulai stasiun Qground.

Mengapa masalah ini terjadi?

Apakah saya harus menginstal driver apapun?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat