Je travaille avec docker et j'utilise ros-melodic-mavros et ros-melodic-mavros-extras pour contrôler un drone à iris PX4. dans la version 1.1, cela fonctionnait très bien. Je contrôle des drones en utilisant Positiontarget sur le sujet : '/iris_{}/mavros/setpoint_raw/local mais rien ne se passe dans 1.2. Il n'y a pas d'option pour obtenir une version précédente d'apt-get (pourquoi ?)
Mavros : 1.2
ROS : mélodique
Ubuntu : 18.04
docker : 19.03.11
Gazebo : 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
Des points sont publiés (vérifiés avec écho rostopique) mais le drone ne bouge pas du tout.
Je rencontre le même problème. Mon code fonctionnait en 1.1.0, après avoir été forcé de passer à la 1.2.0, tout s'est cassé. Maintenant, mon drone a des problèmes avec son gyroscope pour une raison étrange.
Vous pouvez extraire la version 1.1.0 et la compiler à partir des sources. Mais je pense qu'il y a autre chose parce que setpoint_raw reste le même pendant des années.