Mavros: Niedrige Update-Rate zum Thema Mavros

Erstellt am 20. Feb. 2019  ·  7Kommentare  ·  Quelle: mavlink/mavros

Dies ist nur ein Bug- und Feature-Tracker, bitte verwenden Sie ihn
um Fehler zu melden oder Funktionen anzufordern.


Problemdetails

Hallo zusammen,
Ich arbeite an einem Indoor-Drohnenprojekt und vor kurzem ist mir etwas Schlimmes aufgefallen:
die Themen werden mit einer sehr geringen Rate (weniger als 1 Hz) aktualisiert (einschließlich des Themas mavros/local_position/pose, das wichtig ist, um die Drohne im OFFBOARD-Modus zu steuern).
Es ist schwierig, die Flugsteuerung nach dem Thema Setposition zu drehen, da die Drohne ihre korrekte Höhe nicht in Echtzeit kennt. Wenn ich diesen Testalgorithmus teste (Fliege 1 Meter und halte seine Position), werden die Mavros-Themen im Gazebo-Simulator in einer guten Geschwindigkeit aktualisiert.
Um zu überprüfen, ob das Problem das Telemetriesystem ist, habe ich die Informationsaktualisierungsrate auf QGroundControl getestet und wenn ich die Drohne bewege, werden die Informationen sofort aktualisiert. Dann vermute ich, dass das Telemetriesystem (3DR Radio Link) nicht das Problem ist.

Ich starte Mavros mit diesem Befehl:

roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600

Wenn es eine Möglichkeit gibt, dieses Problem zu lösen (hohe Latenz bei Themenaktualisierungen mithilfe von Telemetrie), teilen Sie mir dies bitte mit.

MAVROS-Version und -Plattform

Mavros: 0.18.4
ROS: Mond 1.13.7
Ubuntu: 16.04

Autopilot-Typ und -Version

[ ] ArduPilot
[X] PX4

Version: 3.7.1 (PX4FMU_V3) Pixhawk 2

Knotenprotokolle

Roslaunch-Server gestartet http://lucas-Inspiron-7460 :40689/

ZUSAMMENFASSUNG

KLARE PARAMETER

  • /mavros/

PARAMETER

  • /mavros/cmd/use_comp_id_system_control: Falsch
  • /mavros/conn/heartbeat_rate: 1.0
  • /mavros/conn/system_time_rate: 1.0
  • /mavros/conn/timeout: 10.0
  • /mavros/conn/timesync_rate: 10.0
  • /mavros/distance_sensor/hrlv_ez4_pub/field_of_view: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/frame_id: hrlv_ez4_sonar
  • /mavros/distance_sensor/hrlv_ez4_pub/id: 0
  • /mavros/distance_sensor/hrlv_ez4_pub/orientation: PITCH_270
  • /mavros/distance_sensor/hrlv_ez4_pub/send_tf: Richtig
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/z: -0.1
  • /mavros/distance_sensor/laser_1_sub/id: 3
  • /mavros/distance_sensor/laser_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/laser_1_sub/subscriber: Wahr
  • /mavros/distance_sensor/lidarlite_pub/field_of_view: 0.0
  • /mavros/distance_sensor/lidarlite_pub/frame_id: lidarlite_laser
  • /mavros/distance_sensor/lidarlite_pub/id: 1
  • /mavros/distance_sensor/lidarlite_pub/orientation: PITCH_270
  • /mavros/distance_sensor/lidarlite_pub/send_tf: Wahr
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/z: -0.1
  • /mavros/distance_sensor/sonar_1_sub/id: 2
  • /mavros/distance_sensor/sonar_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/sonar_1_sub/subscriber: Wahr
  • /mavros/fake_gps/eph: 2.0
  • /mavros/fake_gps/epv: 2.0
  • /mavros/fake_gps/fix_type: 3
  • /mavros/fake_gps/geo_origin/alt: 408.0
  • /mavros/fake_gps/geo_origin/lat: 47.3667
  • /mavros/fake_gps/geo_origin/lon: 8.55
  • /mavros/fake_gps/gps_rate: 5.0
  • /mavros/fake_gps/mocap_transform: Wahr
  • /mavros/fake_gps/satellites_visible: 5
  • /mavros/fake_gps/tf/child_frame_id: behoben
  • /mavros/fake_gps/tf/frame_id: Karte
  • /mavros/fake_gps/tf/listen: Falsch
  • /mavros/fake_gps/tf/rate_limit: 10.0
  • /mavros/fake_gps/tf/send: Falsch
  • /mavros/fake_gps/use_mocap: Richtig
  • /mavros/fake_gps/use_vision: Falsch
  • /mavros/fcu_protocol: v2.0
  • /mavros/fcu_url: /dev/ttyUSB0:57600
  • /mavros/gcs_url:
  • /mavros/global_position/child_frame_id: base_link
  • /mavros/global_position/frame_id: Karte
  • /mavros/global_position/rot_covariance: 99999.0
  • /mavros/global_position/tf/child_frame_id: base_link
  • /mavros/global_position/tf/frame_id: Karte
  • /mavros/global_position/tf/global_frame_id: Erde
  • /mavros/global_position/tf/send: Falsch
  • /mavros/global_position/use_relative_alt: Wahr
  • /mavros/image/frame_id: px4flow
  • /mavros/imu/angular_velocity_stdev: 0,000349065850399
  • /mavros/imu/frame_id: base_link
  • /mavros/imu/linear_acceleration_stdev: 0,0003
  • /mavros/imu/magnetic_stdev: 0.0
  • /mavros/imu/orientation_stdev: 1.0
  • /mavros/local_position/frame_id: Karte
  • /mavros/local_position/tf/child_frame_id: base_link
  • /mavros/local_position/tf/frame_id: Karte
  • /mavros/local_position/tf/send: Falsch
  • /mavros/local_position/tf/send_fcu: Falsch
  • /mavros/mission/pull_after_gcs: Wahr
  • /mavros/mocap/use_pose: Richtig
  • /mavros/mocap/use_tf: Falsch
  • /mavros/odometrie/estimator_type: 3
  • /mavros/odometrie/frame_tf/desired_frame: ned
  • /mavros/plugin_blacklist: ['Sicherheitsbereich', '...
  • /mavros/plugin_whitelist: ['sys_*', 'Befehl...
  • /mavros/px4flow/frame_id: px4flow
  • /mavros/px4flow/ranger_fov: 0.118682389136
  • /mavros/px4flow/ranger_max_range: 5.0
  • /mavros/px4flow/ranger_min_range: 0,3
  • /mavros/safety_area/p1/x: 1.0
  • /mavros/safety_area/p1/y: 1.0
  • /mavros/safety_area/p1/z: 1.0
  • /mavros/safety_area/p2/x: -1.0
  • /mavros/safety_area/p2/y: -1.0
  • /mavros/safety_area/p2/z: -1.0
  • /mavros/setpoint_accel/send_force: Falsch
  • /mavros/setpoint_attitude/reverse_thrust: Falsch
  • /mavros/setpoint_attitude/tf/child_frame_id: target_attitude
  • /mavros/setpoint_attitude/tf/frame_id: Karte
  • /mavros/setpoint_attitude/tf/listen: Falsch
  • /mavros/setpoint_attitude/tf/rate_limit: 50,0
  • /mavros/setpoint_attitude/use_quaternion: Falsch
  • /mavros/setpoint_position/mav_frame: LOCAL_NED
  • /mavros/setpoint_position/tf/child_frame_id: target_position
  • /mavros/setpoint_position/tf/frame_id: Karte
  • /mavros/setpoint_position/tf/listen: Falsch
  • /mavros/setpoint_position/tf/rate_limit: 50,0
  • /mavros/setpoint_velocity/mav_frame: LOCAL_NED
  • /mavros/startup_px4_usb_quirk: Richtig
  • /mavros/sys/disable_diag: Falsch
  • /mavros/sys/min_volt: 10,0
  • /mavros/target_component_id: 1
  • /mavros/target_system_id: 1
  • /mavros/tdr_radio/low_rssi: 40
  • /mavros/time/time_ref_source: fcu
  • /mavros/time/timesync_avg_alpha: 0.6
  • /mavros/time/timesync_mode: MAVLINK
  • /mavros/vibration/frame_id: base_link
  • /mavros/vision_pose/tf/child_frame_id: vision_estimate
  • /mavros/vision_pose/tf/frame_id: Karte
  • /mavros/vision_pose/tf/listen: Falsch
  • /mavros/vision_pose/tf/rate_limit: 10.0
  • /mavros/vision_speed/listen_twist: Falsch
  • /rosdistro: Mond
  • /rosversion: 1.13.7

KNOTEN
/
mavros (mavros/mavros_node)

automatischer Start neuer Master
process[master]: gestartet mit pid [2541]
ROS_MASTER_URI= http://localhost :11311

/run_id auf 9a6d39f0-3495-11e9-b342-d80f99bfeedd setzen
process[rosout-1]: gestartet mit pid [2554]
Kerndienst gestartet [/rosout]
process[mavros-2]: gestartet mit pid [2558]

Diagnose

```
Header:
Fortsetzung: 2138
Stempel:
Sek.: 1550618079
ns: 476350000
frame_id: ''
Status:


  • Stufe: 0
    Name: "mavros: FCU-Verbindung"
    Meldung: "verbunden"
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • key: "Empfangene Pakete:"

      Wert: "3164"



    • key: "Verworfene Pakete:"

      Wert: "0"



    • key: "Pufferüberschreitungen:"

      Wert: "0"



    • Schlüssel: "Fehler analysieren:"

      Wert: "0"



    • Schlüssel: "Rx-Sequenznummer:"

      Wert: "40"



    • Taste: "Tx-Sequenznummer:"

      Wert: "56"



    • Schlüssel: "Rx Gesamtbytes:"

      Wert: "2350842"



    • Schlüssel: "Tx Gesamtbytes:"

      Wert: "915507"



    • Taste: "Rx-Geschwindigkeit:"

      Wert: "661.000000"



    • Taste: "Tx-Geschwindigkeit:"

      Wert: "320.000000"


  • Level 2
    Name: "mavros: GPS"
    Meldung: "Keine Satelliten"
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • Taste: "Satelliten sichtbar"

      Wert: "0"



    • Taste: "Fix-Typ"

      Wert: "0"



    • Taste: "EPH (m)"

      Wert: "99,99"



    • Schlüssel: "EPV (m)"

      Wert: "99,99"


  • Stufe: 0
    Name: "mavros: Herzschlag"
    Meldung: "Normal"
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • Schlüssel: "Herzschläge seit dem Start"

      Wert: "2793"



    • Taste: "Frequenz (Hz)"

      Wert: "0.999995"



    • Schlüssel: "Fahrzeugtyp"

      Wert: "Quadrotor"



    • Taste: "Autopilot-Typ"

      Wert: "PX4 Autopilot"



    • Taste: "Modus"

      Wert: "MANUELL"



    • Taste: "Systemstatus"

      Wert: "Standby"


  • Stufe: 0
    Name: "mavros: System"
    Meldung: "Normal"
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • Taste: "Sensor vorhanden"

      Wert: "0x00000000"



    • Taste: "Sensor aktiviert"

      Wert: "0x00000000"



    • Taste: "Sensorstatus"

      Wert: "0x00000000"



    • Schlüssel: "CPU-Last (%)"

      Wert: "28,8"



    • Taste: "Abfallrate (%)"

      Wert: "0.0"



    • Taste: "Fehler Komm"

      Wert: "0"



    • Schlüssel: "Fehler zählen #1"

      Wert: "0"



    • Taste: "Fehler zählen #2"

      Wert: "0"



    • Taste: "Fehleranzahl #3"

      Wert: "0"



    • Taste: "Fehleranzahl #4"

      Wert: "0"


  • Stufe: 0
    Name: "mavros: Batterie"
    Meldung: "Normal"
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • Taste: "Spannung"

      Wert: "10.18"



    • Taste: "Aktuell"

      Wert: "0.0"



    • Taste: "Rest"

      Wert: "0.0"


  • Level 2
    Name: "mavros: Zeitsynchronisation"
    Meldung: "Keine Ereignisse aufgezeichnet."
    hardware_id: "/dev/ttyUSB0:57600"
    Werte:



    • key: "Timesyncs seit dem Start"

      Wert: "0"



    • Taste: "Frequenz (Hz)"

      Wert: "0,000000"



    • Taste: "Letztes dt (ms)"

      Wert: "9.376617"



    • Taste: "Mittelwert dt (ms)"

      Wert: "0,000000"



    • Taste: "Letzte Systemzeit (s)"

      Wert: "3023.959504000"



    • Taste: "Zeitversatz (s)"

Wert: "1550615055.404127836"

ID prüfen


OK. Ich habe Nachrichten von 1:1 bekommen.

371 Nachrichten von 1 Adressen erhalten
sys:comp Liste der Nachrichten

1:1 0, 1, 36, 230, 32, 105, 74, 141, 77, 111, 241, 147, 245, 4, 24, 132, 106, 30

Danke für die Hilfe!

question

Hilfreichster Kommentar

Ich habe dieses Problem gelöst, indem ich einfach den Parameter "MAV_0_RATE" (von 1200 (Standard) auf 57600) geändert habe, ohne die Baudratenparameter zu ändern. Zuvor habe ich versucht, den Parameter SER_TEL1_BAUD (von 57600 auf 115200) zu ändern, aber es hat das Problem nicht gelöst und die Telemetrie funktionierte nicht mit dieser Baudrate. Dann habe ich einfach die MAV_0_RATE getestet und es hat gut funktioniert.

Alle 7 Kommentare

Bei dieser Baudrate in dieser Telemetrieverbindung sieht es völlig normal aus, dass Sie die Daten mit diesen Raten erhalten, wenn man bedenkt, dass die Verbindungsratenprofile von PX4 für diese Art von Verbindungen ziemlich niedrig sind. Ich würde https://docs.px4.io/en/peripherals/serial_configuration.html folgen und versuchen, Ihre Link-Baudrate auf 115200 einzustellen.

Lieber TSC21,

Danke, dass du mir geantwortet hast.

Ich habe das befolgt, was Sie mir empfohlen haben, aber ich hatte keinen Erfolg. Wenn ich die Link-Baudrate auf 115200 ändere, kann ich nicht per Telemetrie auf die Drohne zugreifen. Die QGroundControl zeigt nur an: „Warten auf Fahrzeugverbindung“. Ich habe versucht, dem Link zu folgen, den Sie hier gepostet haben, und habe diese Parameter geändert (mit dem Ziel, den Baudraten-Link zu ändern):

SER_TEL1_BAUD - von "57600" bis "115200"
MAV_0_RATE - von "1200" bis "115200"
MAV_0_MODE - von "0" auf "1" (normal -> benutzerdefiniert)

Wenn bei diesem Verfahren etwas nicht stimmt, sagen Sie es mir bitte.

Vielen Dank.

Bitte bringen Sie diese Angelegenheit zu PX4 Slack.

Ich habe dieses Problem gelöst, indem ich einfach den Parameter "MAV_0_RATE" (von 1200 (Standard) auf 57600) geändert habe, ohne die Baudratenparameter zu ändern. Zuvor habe ich versucht, den Parameter SER_TEL1_BAUD (von 57600 auf 115200) zu ändern, aber es hat das Problem nicht gelöst und die Telemetrie funktionierte nicht mit dieser Baudrate. Dann habe ich einfach die MAV_0_RATE getestet und es hat gut funktioniert.

Ich habe dieses Problem gelöst, indem ich einfach den Parameter "MAV_0_RATE" (von 1200 (Standard) auf 57600) geändert habe, ohne die Baudratenparameter zu ändern. Zuvor habe ich versucht, den Parameter SER_TEL1_BAUD (von 57600 auf 115200) zu ändern, aber es hat das Problem nicht gelöst und die Telemetrie funktionierte nicht mit dieser Baudrate. Dann habe ich einfach die MAV_0_RATE getestet und es hat gut funktioniert.

Hallo, wie hast du die MAV_0_RATE geändert? Ich habe in der Parameterliste im Missionsplaner danach gesucht, aber nicht gefunden.

Ich habe dieses Problem gelöst, indem ich einfach den Parameter "MAV_0_RATE" (von 1200 (Standard) auf 57600) geändert habe, ohne die Baudratenparameter zu ändern. Zuvor habe ich versucht, den Parameter SER_TEL1_BAUD (von 57600 auf 115200) zu ändern, aber es hat das Problem nicht gelöst und die Telemetrie funktionierte nicht mit dieser Baudrate. Dann habe ich einfach die MAV_0_RATE getestet und es hat gut funktioniert.

Hallo, wie hast du die MAV_0_RATE geändert? Ich habe in der Parameterliste im Missionsplaner danach gesucht, aber nicht gefunden.

Dies hängt von der verwendeten PX4-Version ab. Ich habe auf diesen Parameter von QGroundControl zugegriffen. Hier können Sie die Parameter überprüfen:

https://docs.px4.io/v1.9.0/en/advanced_config/parameter_reference.html

Wenn Sie den Parameter von QGroundControl nicht finden, empfehle ich Ihnen, diesen Parameter über die PX4-Befehlszeile einzustellen

Für alle, die noch nach einer Lösung suchen.

Ich wollte die Veröffentlichungsrate von Odometry- und HIGHRES_IMU-Nachrichten erhöhen.

So habe ich dieses Problem gelöst:

1- Erhöhen Sie die Baudrate der seriellen Kommunikation, indem Sie diese PX4-Parameter auf QGroundControl ändern, und starten Sie dann das UAV neu.

SER_TEL1_BAUD - from "57600" to "115200" 
MAV_0_RATE - from "1200" to "115200" 
MAV_0_MODE - from "0" to "1" (normal -> custom) 

Verweise:

https://docs.px4.io/master/en/peripherals/serial_configuration.html#how-to-configure-a-port

https://github.com/mavlink/mavros/issues/1182#issuecomment -465672331

2- Ändern Sie die Rate, in der Mavlink die ODOMETRY/HIGHRES_IMU-Nachrichten veröffentlicht. Dies kann durch Schreiben dieses Befehls auf die microSD-Karte in PX4 erfolgen. Wie?

  • Entfernen Sie die Karte aus Pixhawk und verbinden Sie sie mit Ihrem PC. Gehen Sie dann zu ./fs/etc/extras.txt

  • Wenn dieses Verzeichnis (oder ein Teil davon) nicht existiert, erstellen Sie es. Dann sollten wir in extras.txt schreiben:

mavlink stream -d /dev/ttyS0 -s HIGHRES_IMU -r 200 
mavlink stream -d /dev/ttyS0 -s ODOMETRY -r 200 

Referenz:
https://dev.px4.io/v1.9.0/en/concept/system_startup.html#starting -additional-applications

Der Vollständigkeit halber hier meine Setup-Details:

MAVROS-Version und -Plattform

Mavros: 1,4

ROS: Melodisch

Ubuntu: 18.04

Autopilot-Typ und -Version

PX4

Version: v1.10.1

PX4_FMU_V5 (V500)

NuttX, v7.29.0

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen