Salut, si je branche la télémétrie sur mon ordinateur et ouvre un nœud mavros pour communiquer avec le FCU via la télémétrie. Quelle adresse UDP dois-je mettre lorsque je lance des mavros?
launch file
ou sur la ligne de commande lorsque vous l'exécutez.roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
cependant, le port et l'adresse dépendent de votre système.
Merci. Je comprends cela, mais lorsque je branche la télémétrie sur mon ordinateur, quelle adresse IP dois-je utiliser. Où puis-je trouver l'adresse IP du FCU? J'utilise la télémétrie RC pour la transmission
@zhahaoyu Vous pouvez vérifier l'adresse IP de votre PC en utilisant ifconfig
.
mavros
ont déjà reçu mavlink
message mavros
faire autre chose, publier les mêmes informations dans le port UDP, où QGC pourrait recevoir les informations.<FCU> ---telemtry port --<MAVROS>
<MAVROS> --- UDP ----<QGC>
<MAVROS> ----ros message---<Other Nodets>
Merci @weiweikong. Maintenant, je comprends la structure. J'ai essayé d'utiliser le roslaunch mavros px4.launch
, et je suis capable de démarrer un nœud Mavros communiquant avec FCU via telem, mais comment ouvrir un port UDP pour QGC et demander à QGC de l'écouter?
Quand je lance Mavros, tout allait bien. Mais si j'ouvre QGC, il écoute automatiquement le même port telem et mavros plante. Alors, comment puis-je créer la connexion entre QGC et mavros
@zhahaoyu
<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>
la section gcs_url
est pour la configuration UDP. L'ancien site Web px4 contient plus de détails https://pixhawk.org/peripherals/onboard_computers/intel_edison.
Comme le montre l'exemple
<arg name="gcs_url" default="udp://:14556@my-intel-edisons-ip:14550" />
signifie que QGC sera alors connecté via UDP au port 14556.
J'ai suivi vos instructions, voici le fichier de lancement que j'ai utilisé
<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>
et mavros plante toujours avec le message d'erreur suivant lorsque je démarre 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 Je ne suis pas tout à fait sûr de cette situation. D'après mon expérience, QGC devrait fonctionner indépendamment avec ROS, il devrait donc démarrer normalement, et nous pourrions définir la configuration QGC UDP pour écouter les informations de mavros
.
serial0: receive: End of file
Je suis maintenant sûr que les informations ci-dessus signifient que QGC a essayé de connecter FCU au port série. Si c'était vrai, QGC ou mavros
pourrait planter.
Je crois que QGC essaie d'utiliser le port série. Lorsque j'utilise QGC avec ROS en mode SITL, tout fonctionne correctement. Je ne sais tout simplement pas comment faire cela avec du vrai pixhawk fcu.
@zhahaoyu Essayez peut-être de démarrer QGC d'abord, puis de le configurer en utilisant une connexion UDP au lieu du port série avant de lancer les mavros avec PX4.
@weiweikong Merci beaucoup. J'ai résolu le problème. Pour la référence des autres, voici ce que j'ai fait:
roslaunch mavros px4.launch
Maintenant, une chaîne FCU <---telemetry---> MAVROS <---UDP---> QGC
est établie. QGC ne se connectera plus automatiquement à la télémétrie FCU vai. Si nous voulons toujours cela, nous pourrions configurer une connexion manuelle.
FYI: Essayez udp-b://@
comme URL GCS.
Bonjour, j'ai un problème similaire, j'ai un module terrestre de télémétrie radio FPV et je veux qu'il communique avec la télémétrie qui possède le drone Iris.
Lorsque je connecte la télémétrie (Ground) à mon pc ubuntu et allume le drone, la station Qground ne démarre pas.
Pourquoi ce problème?
Dois-je installer des pilotes?
Commentaire le plus utile
FYI: Essayez
udp-b://@
comme URL GCS.