Ich versuche, mit mavros eine Verbindung zu einer Pixracer-Einheit herzustellen. Zuvor habe ich einen Begleitcomputer verwendet, der über ein physisches serielles Kabel mit Pixhawk verbunden ist. Jetzt möchte ich eine WLAN-Verbindung verwenden, um über das ESP8266-Board direkt mit Pixracer zu kommunizieren. Ich habe das WLAN konfiguriert, das im Stationsmodus läuft und sich glücklich mit qGroundcontrol und meinem Router verbindet (also denke ich, dass der Pixracer / ESP8266 richtig funktioniert und eingerichtet ist), aber ich habe Schwierigkeiten, eine Verbindung über Mavros zur FCU herzustellen.
Die UDP-Adresse, die ich verwende, lautet: udp://:[email protected]:14540
- wobei 192.168.1.9 die IP-Adresse des Pixracers ist
Sieht dieses Format in Ordnung aus? Vielleicht muss ich auch noch einige Parameter einstellen? Ich habe SYS_COMPANION
auf ESP8266 (921600 baud, 8N1)
.
Mavros: 0.22.0
ROS: Kinetisch
Ubuntu: 16.04
[ ] ArduPilot
[x] PX4
Version: 1.6.5
copy output of mavros_node. Usually console where you run roslaunch
header:
seq: 15
stamp:
secs: 1523479866
nsecs: 896584974
frame_id: ''
status:
-
level: 1
name: "UAV_1/mavros: FCU connection"
message: "not connected"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Received packets:"
value: "0"
-
key: "Dropped packets:"
value: "0"
-
key: "Buffer overruns:"
value: "0"
-
key: "Parse errors:"
value: "0"
-
key: "Rx sequence number:"
value: "0"
-
key: "Tx sequence number:"
value: "141"
-
key: "Rx total bytes:"
value: "0"
-
key: "Tx total bytes:"
value: "36947"
-
key: "Rx speed:"
value: "0.000000"
-
key: "Tx speed:"
value: "9547.000000"
-
level: 2
name: "UAV_1/mavros: GPS"
message: "No satellites"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Satellites visible"
value: "0"
-
key: "Fix type"
value: "0"
-
key: "EPH (m)"
value: "Unknown"
-
key: "EPV (m)"
value: "Unknown"
-
level: 2
name: "UAV_1/mavros: Heartbeat"
message: "No events recorded."
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Heartbeats since startup"
value: "0"
-
key: "Frequency (Hz)"
value: "0.000000"
-
key: "Vehicle type"
value: "Generic micro air vehicle"
-
key: "Autopilot type"
value: "Generic autopilot"
-
key: "Mode"
value: ''
-
key: "System status"
value: "Uninit"
-
level: 0
name: "UAV_1/mavros: System"
message: "Normal"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Sensor present"
value: "0x00000000"
-
key: "Sensor enabled"
value: "0x00000000"
-
key: "Sensor helth"
value: "0x00000000"
-
key: "CPU Load (%)"
value: "0.0"
-
key: "Drop rate (%)"
value: "0.0"
-
key: "Errors comm"
value: "0"
-
key: "Errors count #1"
value: "0"
-
key: "Errors count #2"
value: "0"
-
key: "Errors count #3"
value: "0"
-
key: "Errors count #4"
value: "0"
-
level: 2
name: "UAV_1/mavros: Battery"
message: "No data"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Voltage"
value: "-1.00"
-
key: "Current"
value: "0.0"
-
key: "Remaining"
value: "0.0"
-
level: 2
name: "UAV_1/mavros: Time Sync"
message: "No events recorded."
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Timesyncs since startup"
value: "0"
-
key: "Frequency (Hz)"
value: "0.000000"
-
key: "Last dt (ms)"
value: "0.000000"
-
key: "Mean dt (ms)"
value: "0.000000"
-
key: "Last system time (s)"
value: "0.000000000"
-
key: "Time offset (s)"
value: "0.000000000"
---
ERROR. I got 0 addresses, but not your target 1:1
Welche Adresse verwenden Sie für QGC?
Ich verwende udp://:[email protected]:14550
(wobei 192.168.1.5 die IP meiner Bodenkontrollstation ist - folgte der in https://dev.px4.io/en/simulation/ros_interface.html dokumentierten Konvention, obwohl dies bezieht sich auf sitl).
Es ist erwähnenswert, dass sich der Pixracer beim Start automatisch mit QGroundControl verbindet (außerhalb von mavros) - könnte hier ein Konflikt vorliegen?
Sehr wahrscheinlich. Ich bin mir nicht sicher, ob die ESP-Firmware dieser Spezifikation entspricht. Probieren Sie (ohne QGC) den Standardport aus, zB udp://@192.168.1.5
oder sogar einfach udp://@
.
Ich kann mich immer noch nicht mit diesen Adressen für die Bodenkontrollstation verbinden. Ich denke, dies erfordert möglicherweise einige Updates der ESP-Firmware, aber ich habe die Codebasis noch nicht herausgefunden. Ich werde hier aktualisieren, wenn es damit Erfolg hat.
@jannsta1 aktualisiert?
Ich habe dies gerade noch einmal versucht und es geschafft, eine Verbindung herzustellen, indem ich die UDP-Portwerte so eingestellt habe, dass sie den Standardwerten der Parameter WIFI_UDP_CPORT (14555) und WIFI_UDP_HPORT (14550) (für das ESP-Modul) entsprechen. So ist meine fcu_url; udp://:14550@<ip address of esp device>:14555
.
Ich habe noch keinen Flugtest gemacht und ein Nachteil ist, dass dies mit QGC nicht funktioniert, aber ich bin mehr als glücklich, das Problem zu schließen. Vielen Dank für die Ratschläge zu den UDP-Adressen, es war eine große Hilfe zu wissen, in welchem Bereich man suchen sollte.
Ich konnte mit dieser fcu_url-Syntax eine Verbindung zu den Standard-UDP-Portwerten herstellen. Danke! Ich dachte, ich würde das weiterverfolgen, nur für den Fall, dass noch jemand das Problem hat, QGC in Verbindung mit mavros zum Laufen zu bringen.
Ich konnte QGC und mavros zum Laufen bringen, indem ich die cport- und hport-Werte wie hier gezeigt änderte (ich wähle 14556 bzw. 14551), was die fcu_url: udp://:14551:@<ip address of esp device>:14556
machen würde, während die gcs_url beibehalten würde: udp-b://127.0.0.1:14555@14550
.
Hilfreichster Kommentar
Ich konnte mit dieser fcu_url-Syntax eine Verbindung zu den Standard-UDP-Portwerten herstellen. Danke! Ich dachte, ich würde das weiterverfolgen, nur für den Fall, dass noch jemand das Problem hat, QGC in Verbindung mit mavros zum Laufen zu bringen.
Ich konnte QGC und mavros zum Laufen bringen, indem ich die cport- und hport-Werte wie hier gezeigt änderte (ich wähle 14556 bzw. 14551), was die fcu_url:
udp://:14551:@<ip address of esp device>:14556
machen würde, während die gcs_url beibehalten würde:udp-b://127.0.0.1:14555@14550
.