Mavros: Baja tasa de actualización sobre el tema de Mavros

Creado en 20 feb. 2019  ·  7Comentarios  ·  Fuente: mavlink/mavros

Este es solo un rastreador de errores y funciones, utilícelo
para informar errores o solicitar funciones.


Detalles del problema

Hola a todos,
Estoy trabajando en un proyecto de drones para interiores y recientemente noté algo malo:
los temas se están actualizando a una velocidad muy baja (menos de 1Hz) (incluido el tema mavros / local_position / pose que es importante para controlar el dron en modo OFFBOARD)
Se está volviendo difícil el control de vuelo por tema de posición de ajuste porque el dron no conoce su altitud correcta en tiempo real. Cuando pruebo este algoritmo de prueba (volar 1 metro y mantener su posición), en Gazebo Simulator, los temas de Mavros se actualizan a un buen ritmo.
Para verificar si el problema es el sistema de telemetría, probé la tasa de actualización de la información en QGroundControl y cuando muevo el dron, la información se actualiza instantáneamente. Entonces, supongo que el sistema de telemetría (3DR Radio Link) no es el problema.

Estoy lanzando mavros con este comando:

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

Si hay alguna forma de resolver este problema (alta latencia en la actualización de temas mediante telemetría), dígame.

Versión y plataforma MAVROS

Mavros: 0.18.4
ROS: Lunar 1.13.7
Ubuntu: 16.04

Tipo y versión de piloto automático

[] ArduPilot
[X] PX4

Versión: 3.7.1 (PX4FMU_V3) Pixhawk 2

Registros de nodo

inició el servidor roslaunch http: // lucas-Inspiron-7460 : 40689 /

RESUMEN

BORRAR PARAMETROS

  • / mavros /

PARAMETROS

  • / mavros / cmd / use_comp_id_system_control: Falso
  • / 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 / sensor_distancia / hrlv_ez4_pub / field_of_view: 0.0
  • / mavros / sensor_distancia / hrlv_ez4_pub / frame_id: hrlv_ez4_sonar
  • / mavros / sensor_distancia / hrlv_ez4_pub / id: 0
  • / mavros / sensor_distancia / hrlv_ez4_pub / orientación: PITCH_270
  • / mavros / distance_sensor / hrlv_ez4_pub / send_tf: Verdadero
  • / mavros / distance_sensor / hrlv_ez4_pub / sensor_position / x: 0.0
  • / mavros / distance_sensor / hrlv_ez4_pub / sensor_position / y: 0.0
  • / mavros / distancia_sensor / hrlv_ez4_pub / sensor_position / z: -0.1
  • / mavros / distancia_sensor / laser_1_sub / id: 3
  • / mavros / sensor_distancia / laser_1_sub / orientación: PITCH_270
  • / mavros / distance_sensor / laser_1_sub / subscriber: Verdadero
  • / mavros / distance_sensor / lidarlite_pub / field_of_view: 0.0
  • / mavros / distance_sensor / lidarlite_pub / frame_id: lidarlite_laser
  • / mavros / sensor_distancia / lidarlite_pub / id: 1
  • / mavros / sensor_distancia / lidarlite_pub / orientación: PITCH_270
  • / mavros / distance_sensor / lidarlite_pub / send_tf: True
  • / 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 / sensor_distancia / sonar_1_sub / id: 2
  • / mavros / sensor_distancia / sonar_1_sub / orientación: PITCH_270
  • / mavros / distance_sensor / sonar_1_sub / subscriber: Verdadero
  • / 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: Verdadero
  • / mavros / fake_gps / satellites_visible: 5
  • / mavros / fake_gps / tf / child_frame_id: arreglar
  • / mavros / fake_gps / tf / frame_id: mapa
  • / mavros / fake_gps / tf / listen: False
  • / mavros / fake_gps / tf / rate_limit: 10.0
  • / mavros / fake_gps / tf / send: Falso
  • / mavros / fake_gps / use_mocap: Verdadero
  • / mavros / fake_gps / use_vision: Falso
  • / mavros / fcu_protocol: v2.0
  • / mavros / fcu_url: / dev / ttyUSB0: 57600
  • / mavros / gcs_url:
  • / mavros / global_position / child_frame_id: enlace_base
  • / mavros / global_position / frame_id: mapa
  • / mavros / global_position / rot_covariance: 99999.0
  • / mavros / global_position / tf / child_frame_id: enlace_base
  • / mavros / global_position / tf / frame_id: mapa
  • / mavros / global_position / tf / global_frame_id: tierra
  • / mavros / global_position / tf / send: Falso
  • / mavros / global_position / use_relative_alt: Verdadero
  • / mavros / image / frame_id: px4flow
  • / mavros / imu / velocidad_angular_stdev: 0.000349065850399
  • / mavros / imu / frame_id: base_link
  • / mavros / imu / linear_acceleration_stdev: 0.0003
  • / mavros / imu / magnetic_stdev: 0.0
  • / mavros / imu / orientación_stdev: 1.0
  • / mavros / local_position / frame_id: mapa
  • / mavros / posición_local / tf / child_frame_id: base_link
  • / mavros / posición_local / tf / frame_id: mapa
  • / mavros / local_position / tf / send: False
  • / mavros / posición_local / tf / send_fcu: Falso
  • / mavros / mission / pull_after_gcs: Verdadero
  • / mavros / mocap / use_pose: Verdadero
  • / mavros / mocap / use_tf: Falso
  • / mavros / odometry / estimator_type: 3
  • / mavros / odometry / frame_tf / marco_deseado: ned
  • / mavros / plugin_blacklist: ['área_de_seguridad', '...
  • / mavros / plugin_whitelist: ['sys_ *', 'comman ...
  • / 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 / área_de_seguridad / p1 / x: 1.0
  • / mavros / área_de_seguridad / p1 / y: 1.0
  • / mavros / área_de_seguridad / p1 / z: 1.0
  • / mavros / área_de_seguridad / p2 / x: -1.0
  • / mavros / area_seguridad / p2 / y: -1.0
  • / mavros / área_de_seguridad / p2 / z: -1.0
  • / mavros / setpoint_accel / send_force: Falso
  • / mavros / setpoint_attitude / reverse_thrust: Falso
  • / mavros / setpoint_attitude / tf / child_frame_id: target_attitude
  • / mavros / setpoint_attitude / tf / frame_id: mapa
  • / mavros / setpoint_attitude / tf / listen: False
  • / mavros / setpoint_attitude / tf / rate_limit: 50.0
  • / mavros / setpoint_attitude / use_quaternion: Falso
  • / mavros / setpoint_position / mav_frame: LOCAL_NED
  • / mavros / setpoint_position / tf / child_frame_id: target_position
  • / mavros / setpoint_position / tf / frame_id: mapa
  • / mavros / setpoint_position / tf / listen: False
  • / mavros / setpoint_position / tf / rate_limit: 50.0
  • / mavros / setpoint_velocity / mav_frame: LOCAL_NED
  • / mavros / startup_px4_usb_quirk: Verdadero
  • / mavros / sys / disable_diag: Falso
  • / mavros / sys / voltaje_min: 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 / vibración / frame_id: base_link
  • / mavros / vision_pose / tf / child_frame_id: vision_estimate
  • / mavros / vision_pose / tf / frame_id: mapa
  • / mavros / vision_pose / tf / listen: False
  • / mavros / vision_pose / tf / rate_limit: 10.0
  • / mavros / vision_speed / listen_twist: Falso
  • / rosdistro: lunar
  • / rosversion: 1.13.7

NODOS
/
mavros (mavros / mavros_node)

nuevo maestro de inicio automático
proceso [maestro]: iniciado con pid [2541]
ROS_MASTER_URI = http: // localhost : 11311

configurando / run_id en 9a6d39f0-3495-11e9-b342-d80f99bfeedd
proceso [rosout-1]: comenzó con pid [2554]
inició el servicio principal [/ rosout]
proceso [mavros-2]: comenzó con pid [2558]

Diagnósticos

''
encabezamiento:
seq: 2138
sello:
segundos: 1550618079
nsecs: 476350000
frame_id: ''
estado:


  • nivel: 0
    nombre: "mavros: conexión FCU"
    mensaje: "conectado"
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • clave: "Paquetes recibidos:"

      valor: "3164"



    • clave: "Paquetes descartados:"

      valor: "0"



    • clave: "Desbordamiento del búfer:"

      valor: "0"



    • clave: "Analizar errores:"

      valor: "0"



    • tecla: "Número de secuencia de Rx:"

      valor: "40"



    • tecla: "Número de secuencia de Tx:"

      valor: "56"



    • clave: "Bytes totales Rx:"

      valor: "2350842"



    • clave: "Tx bytes totales:"

      valor: "915507"



    • tecla: "Velocidad Rx:"

      valor: "661.000000"



    • tecla: "Velocidad Tx:"

      valor: "320.000000"


  • nivel 2
    nombre: "mavros: GPS"
    mensaje: "No hay satélites"
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • clave: "Satélites visibles"

      valor: "0"



    • clave: "Tipo de arreglo"

      valor: "0"



    • tecla: "EPH (m)"

      valor: "99,99"



    • clave: "EPV (m)"

      valor: "99,99"


  • nivel: 0
    nombre: "mavros: Heartbeat"
    mensaje: "Normal"
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • clave: "Latidos desde el inicio"

      valor: "2793"



    • tecla: "Frecuencia (Hz)"

      valor: "0.999995"



    • clave: "Tipo de vehículo"

      valor: "Quadrotor"



    • clave: "Tipo de piloto automático"

      valor: "Piloto automático PX4"



    • tecla: "Modo"

      valor: "MANUAL"



    • clave: "Estado del sistema"

      valor: "En espera"


  • nivel: 0
    nombre: "mavros: System"
    mensaje: "Normal"
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • tecla: "Sensor presente"

      valor: "0x00000000"



    • tecla: "Sensor habilitado"

      valor: "0x00000000"



    • tecla: "Sensor helth"

      valor: "0x00000000"



    • clave: "Carga de CPU (%)"

      valor: "28,8"



    • clave: "Tasa de caída (%)"

      valor: "0.0"



    • clave: "Error de comunicación"

      valor: "0"



    • clave: "Número de errores 1"

      valor: "0"



    • clave: "Número de errores 2"

      valor: "0"



    • clave: "Número de errores 3"

      valor: "0"



    • clave: "Número de errores 4"

      valor: "0"


  • nivel: 0
    nombre: "mavros: batería"
    mensaje: "Normal"
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • clave: "Voltaje"

      valor: "10.18"



    • clave: "Actual"

      valor: "0.0"



    • clave: "Restante"

      valor: "0.0"


  • nivel 2
    nombre: "mavros: Time Sync"
    mensaje: "No se registraron eventos".
    hardware_id: "/ dev / ttyUSB0: 57600"
    valores:



    • clave: "Timesyncs desde el inicio"

      valor: "0"



    • tecla: "Frecuencia (Hz)"

      valor: "0.000000"



    • clave: "Último dt (ms)"

      valor: "9.376617"



    • clave: "Mean dt (ms)"

      valor: "0.000000"



    • clave: "Última hora del sistema"

      valor: "3023.959504000"



    • tecla: "Desplazamiento (s) de tiempo"

valor: "1550615055.404127836"

Verificar ID


está bien. Recibí mensajes de 1: 1.

Recibió 371 mensajes, de 1 direcciones
sys: lista de mensajes de compilación

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

¡Gracias por la ayuda!

question

Comentario más útil

Resolví este problema simplemente cambiando el parámetro "MAV_0_RATE" (de 1200 (predeterminado) a 57600) sin cambiar los parámetros de velocidad en baudios. Anteriormente, estaba tratando de cambiar el parámetro SER_TEL1_BAUD (de 57600 a 115200) pero no resolvió el problema y la telemetría no funcionó con esta velocidad en baudios. Luego probé solo MAV_0_RATE y funcionó bien.

Todos 7 comentarios

Con esa velocidad en baudios en ese enlace de telemetría, parece perfectamente normal que esté obteniendo los datos a esas velocidades, considerando que los perfiles de velocidad de enlace de PX4 para este tipo de enlaces son bastante bajos. Seguiría https://docs.px4.io/en/peripherals/serial_configuration.html e intentaría configurar la velocidad en baudios del enlace en 115200.

Estimado TSC21,

Gracias por responderme.

Seguí lo que me recomendó pero no tuve éxito. Cuando cambio la velocidad en baudios del enlace a 115200, no puedo acceder al dron a través de la telemetría. El QGroundControl solo muestra: "Esperando la conexión del vehículo". Intenté seguir ese enlace que publicaste aquí y cambié estos parámetros (con el objetivo de cambiar el enlace de velocidad en baudios):

SER_TEL1_BAUD - de "57600" a "115200"
MAV_0_RATE - de "1200" a "115200"
MAV_0_MODE - de "0" a "1" (normal -> personalizado)

Si hay algún problema en este procedimiento, por favor, dímelo.

Muchas gracias.

Lleve este asunto a PX4 Slack.

Resolví este problema simplemente cambiando el parámetro "MAV_0_RATE" (de 1200 (predeterminado) a 57600) sin cambiar los parámetros de velocidad en baudios. Anteriormente, estaba tratando de cambiar el parámetro SER_TEL1_BAUD (de 57600 a 115200) pero no resolvió el problema y la telemetría no funcionó con esta velocidad en baudios. Luego probé solo MAV_0_RATE y funcionó bien.

Resolví este problema simplemente cambiando el parámetro "MAV_0_RATE" (de 1200 (predeterminado) a 57600) sin cambiar los parámetros de velocidad en baudios. Anteriormente, estaba tratando de cambiar el parámetro SER_TEL1_BAUD (de 57600 a 115200) pero no resolvió el problema y la telemetría no funcionó con esta velocidad en baudios. Luego probé solo MAV_0_RATE y funcionó bien.

Hola, ¿cómo fue el cambio de MAV_0_RATE? Lo busqué en la lista de parámetros en Mission Planner pero no lo encuentro.

Resolví este problema simplemente cambiando el parámetro "MAV_0_RATE" (de 1200 (predeterminado) a 57600) sin cambiar los parámetros de velocidad en baudios. Anteriormente, estaba tratando de cambiar el parámetro SER_TEL1_BAUD (de 57600 a 115200) pero no resolvió el problema y la telemetría no funcionó con esta velocidad en baudios. Luego probé solo MAV_0_RATE y funcionó bien.

Hola, ¿cómo fue el cambio de MAV_0_RATE? Lo busqué en la lista de parámetros en Mission Planner pero no lo encuentro.

Depende de la versión de PX4 que esté ejecutando. Accedí a este parámetro por QGroundControl. Puede consultar los parámetros aquí:

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

Si no encuentra el parámetro mediante QGroundControl, le recomiendo que configure este parámetro mediante la línea de comando PX4

Para cualquiera que todavía esté buscando una solución.

Quería aumentar la tasa de publicación de mensajes Odometry y HIGHRES_IMU.

Así es como resolví este problema:

1- Aumente la velocidad en baudios de la comunicación en serie cambiando estos parámetros PX4 en QGroundControl y luego reinicie el UAV.

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

Referencias:

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- Cambie la velocidad en la que Mavlink publica los mensajes ODOMETRY / HIGHRES_IMU. Esto se puede hacer escribiendo este comando en la tarjeta microSD en PX4. ¿Cómo?

  • Retire la tarjeta de Pixhawk y conéctela a su PC. Luego vaya a ./fs/etc/extras.txt

  • Si este directorio (o parte de él) no existe, créelo. Luego, dentro de extras.txt, debemos escribir:

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

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

Para completar, aquí están mis detalles de configuración:

Versión y plataforma MAVROS

Mavros: 1.4

ROS: Melódico

Ubuntu: 18.04

Tipo y versión de piloto automático

PX4

Versión: v1.10.1

PX4_FMU_V5 (V500)

NuttX, v7.29.0

¿Fue útil esta página
0 / 5 - 0 calificaciones