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?
launch file
atau pada baris perintah saat Anda menjalankannya.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
.
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.<FCU> ---telemtry port --<MAVROS>
<MAVROS> --- UDP ----<QGC>
<MAVROS> ----ros message---<Other Nodets>
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
<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.
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:
roslaunch mavros px4.launch
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?
Komentar yang paling membantu
FYI: Coba
udp-b://@
sebagai URL GCS.