Mavros: Низкая частота обновлений по теме Мавроса

Созданный на 20 февр. 2019  ·  7Комментарии  ·  Источник: mavlink/mavros

Это только средство отслеживания ошибок и функций, пожалуйста, используйте его
сообщать об ошибках или запрашивать функции.


Детали проблемы

Привет всем,
Я работаю над проектом домашнего дрона и недавно заметил кое-что плохое:
темы обновляются с очень низкой частотой (менее 1 Гц) (включая тему mavros / local_position / pose, которая важна для управления дроном в режиме OFFBOARD).
Это затрудняет управление полетом из-за заданной темы, потому что дрон не знает свою правильную высоту в реальном времени. Когда я тестирую этот тестовый алгоритм (пролетите 1 метр и удерживайте позицию) в Gazebo Simulator, темы Mavros обновляются с хорошей скоростью.
Чтобы проверить, связана ли проблема с системой телеметрии, я проверил скорость обновления информации на QGroundControl, и когда я перемещаю дрон, информация обновляется мгновенно. Тогда, я полагаю, проблема не в системе телеметрии (3DR Radio Link).

Я запускаю mavros с помощью этой команды:

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

Если есть способ решить эту проблему (высокая задержка при обновлении темы с помощью телеметрии), сообщите мне.

Версия и платформа МАВРОС

Маврос: 0,18,4
ROS: Lunar 1.13.7
Ubuntu: 16.04

Тип и версия автопилота

[] ArduPilot
[X] PX4

Версия: 3.7.1 (PX4FMU_V3) Pixhawk 2

Журналы узлов

запущен сервер roslaunch http: // lucas-Inspiron-7460 : 40689 /

РЕЗЮМЕ

ЯСНЫЕ ПАРАМЕТРЫ

  • / mavros /

ПАРАМЕТРЫ

  • / mavros / cmd / use_comp_id_system_control: ложь
  • / 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 / ориентация: PITCH_270
  • / mavros / distance_sensor / hrlv_ez4_pub / send_tf: Верно
  • / 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 / ориентация: PITCH_270
  • / mavros / distance_sensor / laser_1_sub / subscriber: Истина
  • / 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 / ориентация: PITCH_270
  • / mavros / distance_sensor / lidarlite_pub / send_tf: Верно
  • / 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 / ориентация: PITCH_270
  • / mavros / distance_sensor / sonar_1_sub / subscriber: True
  • / 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: Верно
  • / mavros / fake_gps / satellites_visible: 5
  • / mavros / fake_gps / tf / child_frame_id: исправить
  • / mavros / fake_gps / tf / frame_id: карта
  • / mavros / fake_gps / tf / listen: ложь
  • / mavros / fake_gps / tf / rate_limit: 10.0
  • / mavros / fake_gps / tf / send: ложь
  • / mavros / fake_gps / use_mocap: Правда
  • / mavros / fake_gps / use_vision: Ложь
  • / mavros / fcu_protocol: v2.0
  • / mavros / fcu_url: / dev / ttyUSB0: 57600
  • / mavros / gcs_url:
  • / mavros / global_position / child_frame_id: базовая_ссылка
  • / mavros / global_position / frame_id: карта
  • / mavros / global_position / rot_covariance: 99999.0
  • / mavros / global_position / tf / child_frame_id: базовая_ссылка
  • / mavros / global_position / tf / frame_id: карта
  • / mavros / global_position / tf / global_frame_id: земля
  • / mavros / global_position / tf / send: ложь
  • / mavros / global_position / use_relative_alt: Истина
  • / mavros / изображение / frame_id: px4flow
  • / mavros / imu / angular_velocity_stdev: 0.000349065850399
  • / mavros / imu / frame_id: базовая_ссылка
  • / mavros / imu / linear_acceleration_stdev: 0,0003
  • / mavros / imu / magnet_stdev: 0,0
  • / mavros / imu / direction_stdev: 1.0
  • / mavros / local_position / frame_id: карта
  • / mavros / local_position / tf / child_frame_id: базовая_ссылка
  • / mavros / local_position / tf / frame_id: карта
  • / mavros / local_position / tf / send: ложь
  • / mavros / local_position / tf / send_fcu: ложь
  • / mavros / mission / pull_after_gcs: Верно
  • / mavros / mocap / use_pose: Верно
  • / mavros / mocap / use_tf: Ложь
  • / mavros / odometry / Estimator_type: 3
  • / mavros / odometry / frame_tf / желаемый_фрейм: нед
  • / mavros / plugin_blacklist: ['зона_безопасности', '...
  • / mavros / plugin_whitelist: ['sys_ *', 'command ...
  • / 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 / зона_безопасности / p1 / x: 1.0
  • / mavros / зона_безопасности / p1 / y: 1.0
  • / mavros / зона_безопасности / p1 / z: 1.0
  • / mavros / зона_безопасности / p2 / x: -1,0
  • / mavros / зона_безопасности / p2 / y: -1,0
  • / mavros / зона_безопасности / p2 / z: -1,0
  • / mavros / setpoint_accel / send_force: ложь
  • / mavros / setpoint_attitude / reverse_thrust: Ложь
  • / mavros / setpoint_attitude / tf / child_frame_id: target_attitude
  • / mavros / setpoint_attitude / tf / frame_id: карта
  • / mavros / setpoint_attitude / tf / listen: Ложь
  • / mavros / setpoint_attitude / tf / rate_limit: 50.0
  • / mavros / setpoint_attitude / use_quaternion: Ложь
  • / mavros / setpoint_position / mav_frame: LOCAL_NED
  • / mavros / setpoint_position / tf / child_frame_id: целевая_позиция
  • / mavros / setpoint_position / tf / frame_id: карта
  • / mavros / setpoint_position / tf / listen: Ложь
  • / mavros / заданное_положение / tf / rate_limit: 50.0
  • / mavros / setpoint_velocity / mav_frame: LOCAL_NED
  • / mavros / startup_px4_usb_quirk: Верно
  • / mavros / sys / disable_diag: ложь
  • / mavros / sys / min_voltage: 10.0
  • / mavros / target_component_id: 1
  • / mavros / target_system_id: 1
  • / mavros / tdr_radio / low_rssi: 40
  • / mavros / время / time_ref_source: fcu
  • / mavros / время / timesync_avg_alpha: 0,6
  • / mavros / time / timesync_mode: MAVLINK
  • / mavros / вибрация / frame_id: base_link
  • / mavros / vision_pose / tf / child_frame_id: vision_estimate
  • / mavros / vision_pose / tf / frame_id: карта
  • / mavros / vision_pose / tf / listen: ложь
  • / mavros / vision_pose / tf / rate_limit: 10.0
  • / mavros / vision_speed / listen_twist: ложь
  • / rosdistro: лунный
  • / rosversion: 1.13.7

УЗЛЫ
/
mavros (mavros / mavros_node)

автоматический запуск нового мастера
процесс [master]: запущен с pid [2541]
ROS_MASTER_URI = http: // локальный : 11311

установка / run_id на 9a6d39f0-3495-11e9-b342-d80f99bfeedd
процесс [rosout-1]: запущен с pid [2554]
запущена основная служба [/ rosout]
процесс [mavros-2]: запущен с pid [2558]

Диагностика

`` ''
заголовок:
seq: 2138
печать:
секунд: 1550618079
нсек: 476350000
frame_id: ''
статус:


  • уровень: 0
    name: "mavros: соединение FCU"
    сообщение: "подключен"
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • ключ: "Полученные пакеты:"

      значение: "3164"



    • ключ: "Отброшенные пакеты:"

      значение: «0»



    • клавиша: "Переполнение буфера:"

      значение: «0»



    • ключ: "Ошибки синтаксического анализа:"

      значение: «0»



    • клавиша: "Порядковый номер Rx:"

      значение: "40"



    • клавиша: "Порядковый номер передачи:"

      значение: "56"



    • ключ: "Всего байтов Rx:"

      значение: "2350842"



    • ключ: "Всего байтов передано:"

      значение: "915507"



    • клавиша: "Скорость приема:"

      значение: "661.000000"



    • клавиша: "Скорость передачи:"

      значение: "320.000000"


  • уровень 2
    имя: "mavros: GPS"
    сообщение: "Нет спутников"
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • клавиша: "Спутники видны"

      значение: «0»



    • ключ: «Тип исправления»

      значение: «0»



    • ключ: «EPH (м)»

      значение: "99,99"



    • ключ: «EPV (м)»

      значение: "99,99"


  • уровень: 0
    имя: "mavros: Heartbeat"
    сообщение: "Нормальный"
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • ключ: «Сердцебиение с момента запуска»

      значение: "2793"



    • клавиша: «Частота (Гц)»

      значение: "0.999995"



    • ключ: «Тип транспортного средства»

      значение: «Квадрокоптер»



    • ключ: «Тип автопилота»

      значение: "Автопилот PX4"



    • ключ: «Режим»

      значение: "РУЧНОЙ"



    • клавиша: «Статус системы»

      значение: «Ожидание»


  • уровень: 0
    имя: "mavros: System"
    сообщение: "Нормальный"
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • клавиша: «Датчик присутствует»

      значение: "0x00000000"



    • клавиша: "Датчик включен"

      значение: "0x00000000"



    • клавиша: "Sensor helth"

      значение: "0x00000000"



    • ключ: "Загрузка ЦП (%)"

      значение: "28,8"



    • ключ: "Частота выпадения (%)"

      значение: "0,0"



    • ключ: "Сообщения об ошибках"

      значение: «0»



    • key: "Количество ошибок №1"

      значение: «0»



    • key: "Количество ошибок # 2"

      значение: «0»



    • key: "Количество ошибок №3"

      значение: «0»



    • key: "Количество ошибок # 4"

      значение: «0»


  • уровень: 0
    имя: "mavros: Battery"
    сообщение: "Нормальный"
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • ключ: «Напряжение»

      значение: "10.18"



    • ключ: "Текущий"

      значение: "0,0"



    • ключ: «Осталось»

      значение: "0,0"


  • уровень 2
    имя: "mavros: Time Sync"
    сообщение: «События не записаны».
    hardware_id: "/ dev / ttyUSB0: 57600"
    значения:



    • ключ: «Синхронизация с момента запуска»

      значение: «0»



    • клавиша: «Частота (Гц)»

      значение: "0.000000"



    • ключ: "Последний дт (мс)"

      значение: "9.376617"



    • ключ: «Среднее dt (мс)»

      значение: "0.000000"



    • ключ: "Последнее системное время"

      значение: "3023.959504000"



    • клавиша: "Смещение времени (с)"

значение: "1550615055.404127836"

Проверить ID


ОК. Получал сообщения от 1: 1.

Получено 371 сообщение с 1 адреса
sys: составить список сообщений

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

Спасибо за помощь!

question

Самый полезный комментарий

Я решил эту проблему, просто изменив параметр «MAV_0_RATE» (с 1200 (по умолчанию) до 57600) без изменения параметров скорости передачи. Раньше я пытался изменить параметр SER_TEL1_BAUD (с 57600 на 115200), но это не решало проблему, и телеметрия не работала с этой скоростью передачи. Затем я протестировал только MAV_0_RATE, и он работал хорошо.

Все 7 Комментарий

С такой скоростью передачи в этом канале телеметрии кажется совершенно нормальным, что вы получаете данные с такими скоростями, учитывая, что профили скорости канала PX4 для такого типа каналов довольно низкие. Я бы следил за https://docs.px4.io/en/peripherals/serial_configuration.html и попытался установить скорость передачи вашей ссылки на 115200.

Уважаемый TSC21,

Спасибо, что ответили мне.

Я последовал тому, что вы мне порекомендовали, но безуспешно. Когда я меняю скорость соединения на 115200, я не могу получить доступ к дрону через телеметрию. QGroundControl отображает только: «Ожидание подключения транспортного средства». Я попытался перейти по этой ссылке, которую вы разместили здесь, и изменил эти параметры (с целью изменить ссылку на скорость передачи):

SER_TEL1_BAUD - от «57600» до «115200»
MAV_0_RATE - от «1200» до «115200»
MAV_0_MODE - от «0» до «1» (нормальный -> пользовательский)

Если в этой процедуре что-то не так, скажите, пожалуйста.

Большое спасибо.

Пожалуйста, передайте это дело в PX4 Slack.

Я решил эту проблему, просто изменив параметр «MAV_0_RATE» (с 1200 (по умолчанию) до 57600) без изменения параметров скорости передачи. Раньше я пытался изменить параметр SER_TEL1_BAUD (с 57600 на 115200), но это не решало проблему, и телеметрия не работала с этой скоростью передачи. Затем я протестировал только MAV_0_RATE, и он работал хорошо.

Я решил эту проблему, просто изменив параметр «MAV_0_RATE» (с 1200 (по умолчанию) до 57600) без изменения параметров скорости передачи. Раньше я пытался изменить параметр SER_TEL1_BAUD (с 57600 на 115200), но это не решало проблему, и телеметрия не работала с этой скоростью передачи. Затем я протестировал только MAV_0_RATE, и он работал хорошо.

Привет, как вы изменили MAV_0_RATE? Я искал его в списке параметров в Планировщике миссий, но не нашел.

Я решил эту проблему, просто изменив параметр «MAV_0_RATE» (с 1200 (по умолчанию) до 57600) без изменения параметров скорости передачи. Раньше я пытался изменить параметр SER_TEL1_BAUD (с 57600 на 115200), но это не решало проблему, и телеметрия не работала с этой скоростью передачи. Затем я протестировал только MAV_0_RATE, и он работал хорошо.

Привет, как вы изменили MAV_0_RATE? Я искал его в списке параметров в Планировщике миссий, но не нашел.

Это зависит от используемой вами версии PX4. Я получил доступ к этому параметру с помощью QGroundControl. Вы можете проверить параметры здесь:

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

Если вы не можете найти параметр с помощью QGroundControl, я рекомендую вам установить этот параметр с помощью командной строки PX4.

Для тех, кто все еще ищет решение.

Я хотел увеличить скорость публикации сообщений Odometry и HIGHRES_IMU.

Вот как я решил эту проблему:

1- Увеличьте скорость последовательной связи, изменив эти параметры PX4 в QGroundControl, а затем перезагрузите БПЛА.

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

Рекомендации:

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- Измените скорость, с которой Mavlink публикует сообщения ODOMETRY / HIGHRES_IMU. Это можно сделать, записав эту команду на карту microSD в PX4. Как?

  • Извлеките карту из Pixhawk и подключите к компьютеру. Затем перейдите в ./fs/etc/extras.txt

  • Если этот каталог (или его часть) не существует, создайте его. Затем внутри extras.txt нужно написать:

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

Справка:
https://dev.px4.io/v1.9.0/en/concept/system_startup.html#starting -additional-applications

Для полноты, вот мои подробности настройки:

Версия и платформа МАВРОС

Маврос: 1,4

ROS: мелодичный

Ubuntu: 18.04

Тип и версия автопилота

PX4

Версия: v1.10.1

PX4_FMU_V5 (V500)

NuttX, v7.29.0

Была ли эта страница полезной?
0 / 5 - 0 рейтинги