Ich arbeite mit Docker und verwende ros-melodic-mavros und ros-melodic-mavros-extras zur Steuerung einer PX4-Iris-Drohne. In der Version 1.1 hat es gut funktioniert. Ich steuere Drohnen mit Positiontarget zum Thema: '/iris_{}/mavros/setpoint_raw/local, aber in 1.2 passiert nichts. Es gibt keine Möglichkeit, eine frühere Version von apt-get abzurufen (warum?)
Mavros: 1,2
ROS: melodisch
Ubuntu:18.04
Docker : 19.03.11
Pavillon: 9
[ ] ArduPilot
[ x ] PX4
Version: 1.10
header:
seq: 889
stamp:
secs: 1345
nsecs: 601000000
frame_id: ''
status:
-
level: 0
name: "iris_1/mavros: FCU connection"
message: "connected"
hardware_id: "udp://:14541<strong i="20">@localhost</strong>:14581"
values:
-
key: "Received packets:"
value: "27630"
-
key: "Dropped packets:"
value: "0"
-
key: "Buffer overruns:"
value: "0"
-
key: "Parse errors:"
value: "0"
-
key: "Rx sequence number:"
value: "238"
-
key: "Tx sequence number:"
value: "0"
-
key: "Rx total bytes:"
value: "24864594"
-
key: "Tx total bytes:"
value: "735053"
-
key: "Rx speed:"
value: "24529.000000"
-
key: "Tx speed:"
value: "742.000000"
-
level: 0
name: "iris_1/mavros: GPS"
message: "3D fix"
hardware_id: "udp://:14541<strong i="21">@localhost</strong>:14581"
values:
-
key: "Satellites visible"
value: "10"
-
key: "Fix type"
value: "3"
-
key: "EPH (m)"
value: "0.00"
-
key: "EPV (m)"
value: "0.00"
-
level: 0
name: "iris_1/mavros: Heartbeat"
message: "Normal"
hardware_id: "udp://:14541<strong i="22">@localhost</strong>:14581"
values:
-
key: "Heartbeats since startup"
value: "1016"
-
key: "Frequency (Hz)"
value: "0.951928"
-
key: "Vehicle type"
value: "Quadrotor"
-
key: "Autopilot type"
value: "PX4 Autopilot"
-
key: "Mode"
value: "OFFBOARD"
-
key: "System status"
value: "Active"
-
level: 2
name: "iris_1/mavros: System"
message: "Sensor health"
hardware_id: "udp://:14541<strong i="23">@localhost</strong>:14581"
values:
-
key: "Sensor present"
value: "0x1020002F"
-
key: "Sensor enabled"
value: "0x1021000F"
-
key: "Sensor health"
value: "0x1020002F"
-
key: "3D gyro"
value: "Ok"
-
key: "3D accelerometer"
value: "Ok"
-
key: "3D magnetometer"
value: "Ok"
-
key: "absolute pressure"
value: "Ok"
-
key: "rc receiver"
value: "Fail"
-
key: "AHRS subsystem health"
value: "Ok"
-
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: 0
name: "iris_1/mavros: Battery"
message: "Normal"
hardware_id: "udp://:14541<strong i="24">@localhost</strong>:14581"
values:
-
key: "Voltage"
value: "11.32"
-
key: "Current"
value: "-1.0"
-
key: "Remaining"
value: "51.0"
-
level: 0
name: "iris_1/mavros: Time Sync"
message: "Normal"
hardware_id: "udp://:14541<strong i="25">@localhost</strong>:14581"
values:
-
key: "Timesyncs since startup"
value: "10168"
-
key: "Frequency (Hz)"
value: "9.995240"
-
key: "Last RTT (ms)"
value: "0.000000"
-
key: "Mean RTT (ms)"
value: "0.117328"
-
key: "Last remote time (s)"
value: "1016.949000000"
-
key: "Estimated time offset (s)"
value: "328.622159175"
---
WARNING: mavros/target_system_id not set. Used default value: 1
WARNING: mavros/target_component_id not set. Used default value: 1
NOTE: Target parameters may be unset, but that may be result of incorrect --mavros-ns option.Double check results!
ERROR. I got 0 addresses, but not your target 1:1
---
Received 0 messages, from 0 addresses
sys:comp list of messages
rosrun mavros checkid --mavros-ns iris_1/mavros
ERROR. I got 0 addresses, but not your target 2:1
---
Received 0 messages, from 0 addresses
sys:comp list of messages
Punkte werden veröffentlicht (überprüft mit rostopischem Echo), aber die Drohne bewegt sich überhaupt nicht.
Ich habe das gleiche Problem. Mein Code funktionierte in 1.1.0, nachdem ich gezwungen war, auf 1.2.0 zu aktualisieren, ging alles kaputt. Jetzt hat mein UAV aus irgendeinem Grund Probleme mit seinem Gyroskop.
Sie können 1.1.0 auschecken und aus dem Quellcode erstellen. Aber ich denke, dass da noch etwas anderes ist, weil setpoint_raw jahrelang gleich bleibt.