Диагностика проблем с помощью журналов
Эта страница призвана показать вам , как диагностировать топ-5 наиболее распространненых проблем, влияющих на конфигурация APM:Copter в частности, но в некой стемени на конфигурацию APM:Plane и APM:Rover так же. Если вы еще не знакомы с основами журналов телеметрии и журналов APM то рекомендуется ознакомиться с этими страницами, что бы понять где хранятся эти данные и как можно скачать и посмотреть эту информацию.
Механические повреждения
Общие механические повреждения включают повреждения моторов или регуляторов скорости ESC (включая сбой синхронизации ESC) скольшение пропеллеров (проворачивание пропеллеров в следствии плохой затяжки) и тому подобное. Они появляются в журнале как внезапное расхождение в нужном угле тангажа или крена против фактического угла аппарата (по крену и тангажу / Roll and Pitch). Эти расхождения наиболее ярко видны в журнале из бортовой памяи полетного контроллера APM путем построения графика ATT сообщений: Roll-In против Roll и Pitch-In против Pitch и в меньшей степени NavYaw против Yaw
В приведеном выше примере фактическая Roll внимательно следует за нужным Roll-in для первой половины журнала, но потом расходиться. Полетный контроллер apm хотел удерживать Roll на уровне (нулевой roll) но это было невозможно, скорее всего это означает механическое повреждение. Это очень сильно отличается от программного сбоя в котором полетный контроллер ardupilot качался по Roll и по какой-то причине вдруг упал строго вниз , потому что в таких случаях желаемый Roll будет так же сумащедшим как и текущий Roll и будет следовать за ним на графике.
Дополнительные замечания:
- Журналы tlog как правило труднее использовать в этом случае потому, что у нас есть nav_roll и nav_pitch, которые удерживают нужный крен и тангаж, они обновляются только тогда , когда используется полетный режим RTL, Loiter или AUTO.
- В прошивке ArduCopter 3.1 и выше Roll-In и Pitch-In удерживают только нужный крен и тангаж во время стабилизации. А в режиме автопилота вы должны смотреть на NTUN сообщения: DRol и DPit.
Вибрации
Сильная вибрация у конфигурации ArduCopter вызывают у акселерометра, базирующемуся на высоте и горизонтальной позиции , заставляют дрейфовать далеко от реальности, что приводит к проблемам с удержанием высоты (обычно летит в небо) или режиме Loiter (дрейфует)
Вибрации лучше изучаь путем построение графиков из IMU сообщений с бортовой памяти APM по значениям AccX, AccY and AccZ. Значения AccX, AccY (в первую очередь используются для горизонтального управления положением) должны быть между -3 и 3 м/с/с. Значения акселерометра изменятся моментально, когда квадрокоптер движеся вверх или вниз, поэтому лучше достать данные порциями, когда полет квадрокоптера был стационарным, хотя даже в движении можно увидеть уровень вибрации сравнивая разницу между верхней и нижней частью "травы". иногда график прямолинеен, но когда "травинки" скачут, то скорее всего это проблема вибрации.
Ниже на графике указаны допустимые уровни вибрации.
Журналы TLOG RAW_IMU xacc, yacc and zacc можно использоватль, но их обновление происходит значительно медленее (как правило менее 10Гц) чем журнал из полетного контроллера ardupilot (50Гц) из-за этого становиться труднее понять являются ли изменения в акселерометре квадрокоптера перемещением или вибрацией
Если вы используете tlog шкалу в milli-gs то приемлемый диапазон для xacc и yacc от -300 до +300 и для zacc от -500 до -1500. Обратите внимание, что на рисунке значения ниже этого диапазона указывают на проблему вибрации , хотя этот пилот не жаловался на режимы AltHold и Loiter - это более вероятно , что квадрокоптер был не в стабильном наведении и частота обновления была низкой.
Вмешательства в работу компаса
Помехи от распределительной платы PDB, двигаелей, батареи , регуляторов моторов и других электрических устройств рядом с APM могут скинуть направление по компасу, который может привести к кругу ( известно как "туалетный боулинг")
Помехи от распределительной платы, двигателей, батареи, регуляторов скорости ESC и других электрических устройств квадрокоптера рядом с полетным контроллером ArduPilot Mega могут влиять на головное направление компаса, который может привести к "круговым полетам" ( так называемы туалетное смытие) или даже полет в неправильном направлении. Графическое значение mag_field в TLOG (находиться пот "CUSTOM") и дроссель (находиться под VFR_HUD) является самым простым способом, что бы увидеть количество помех. В графе ниже показано приемлимое количество помех. Вы можете увидеть как колеблится mag_field когда дросель газа поднят, но только движение вокруг на 10-20%. Ниже 30% движение является приемлемым. В диапазоне 30-60% находится серая зона, где он может быть в порядке (у некоторых пилотов) и очень плохом диапазоне магнитных помех будет отображаться скачками более 60%, когда дроссель поднят.
Примечания:
- Длина mag_field может быть от 120 ~ 550 в зависимости от того, где и каком месте находиться квадрокоптер, но обычно оно составляет около 330 .
- Магнитные помехи в виде процента от общего магнитного поля также отображаются в конце процедуры настройки compassmot.
- Бортовой журнал полетного контроллера Ardupilot mega содержит "сырые" данные компаса x, y и z осей (называемые MagX, MagY, MagZ), которые эквивалентны RAW_IMU xmag, ymag и zmag полям в TLOG. Длину поля можно вычислить загрузив из бортового журнала данные в Excel фильтруя по сообщениям COMPASS, а затем расчитать магнитное поле по формуле mag_field = SQRT (MagX^2, MagY^2, MagZ^2). Обратите внимание, что журналирование сообщения сомпаса не включены по умолчанию, потому, что он работает на частоте 50Гц и влияет немного на производительность процессора.
- Еще одни параметры которые нужно проверить, должны быть в пределах между - 150 и +150. Они находятся в TLOG группе SENSOR_OFFSET в качестве mag_ofs_x, mag_ofs_y, mag_ofs_z и в журнале полетного контроллера сообщения COMPASS в качестве OfsX, OfxY, OfxZ. Так же можно увидеть в параметрах как COMPASS_OFS_X, COMPASS_OFS_Y , COMPASS_OFS_Z.
- Изображение выше показывает короткий пик в начале графика, но это может быть проигнорировано потому, что это перед поднятием дроссельной заслонки. Это вероятно просто подключение других электрических устройств.
GPS глюки
Находясь в режимах автопилота (Loiter, RTL, AUTO) ошибки позиционирования от GPS могут привести ArduCopter к неправильному местоположению и спровоцировать к агресивному полету исправления позиции. Эти "глюки" появляюстся в обоих журналах : TLOG и журнале полетного контроллера ardupilot mega apm как уменьшение числа видимых спутников и увеличение HDOP.
Если с помощью графика TLOGs вы можете сделать это путем построения графика группы "GPS_RAW_IT" значений "eph" и "satellites_visible". Значения HDOP 1,5 (отображаются на экране 150) или ниже - это очень хорошо. Выше 2,0 (т.е. 200) указывает на плохое значение позиции. Количество спутников, ниже 9 так же плохо. Существенное изменение этих двух значений часто сопровождает изменение позиции GPS.
В журнале полетного контроллера ardupilot mega apm сообщений GPS вы найдёте HDOP и столбцы NSats. Примечание! Значения HDOP находятся в правельных единицах измерения в журнале полетного контроллера (т.е. не 100 с лишним , как в tlogs).
В прошивке ArduCopter 3.1 и выже присуствует алгоритм обнаружения "GPS глюков" для их игнорирования.
Проблемы системы питания (Угасание и прочие)
Внедрение модуля питания стало гораздо проще для людей, что бы обеспечить надежное энергоснабжение квадрокоптера на полетном контроллере APM. Это привело к массовому сокращению числа "пониженного" питания, но они все еще имеют место быть. Как правило они могут присуствовать в журналах и внезапно заканчиваться, когда квадрокоптер все еще находиться в воздухе (например барометр или инерциальная навигация высоты по прежнему сообщает о высоте выше нуля).
Используйте графики:- Журнал полетного контроллера, CTUN сообщения, значение Baro-Alt
- Журнал полетного контроллера, GPS сообщения, значения RelAlt (комбинированое значение акселерометра + барометра)
- Журнал TLOG значение VHR_HUD alt (комбинированое значение акселерометра + барометра)
- Журнал TLOG значение GLOBAL_POSITION relative_alt
Изменения в напряжении на борту полетного контроллера может быть признаком проблемы питания. Нормальные изменения в пределах от 0.10 до 0.15 вольт. Большие изменения могут быть признаком того, что другие устройства питающиеся на общей фазе APM вызывают "рябь" в блоке питания, что может привезти к "понижению" питания или другому странному поведению. Бортовое напряжение платы полетного контроллера можно отобразить на графиках:
- Журнале полетного контроллера в сообщениях CURRENT значение VCC
- Журнале телеметрии (tlog) группы HWSTATUS's значение Vcc
На изображение ниже показано просадка по напряжению на полетном контроллере на 0.15 вольт, когда подается дроссельный газ. Как правило это не очень хорошая вещь, но из-за того, что это только 0.15 вольт это наверное еще хорошо. Второй график ниже (из журнала полетного контроллера другого пилота) показывает более сильное изменение напряжение, но и как характерно пределах 0.15 вольт.
Неожиданные ошибки включая failsafes (защита отказа)
Когда происходит неожиданное поведение у полетного контроллера (особенно, когда пилот жалуется, что квадрокоптер не ответил на команды с радиоаппаратуры) это часто является одной из причины срабатывания failsafe (защита отказа). Есть 5 защит от отказов, которые могут быть активированны: защита газа, gps защита, защита наземной станции, защита отказа батареи и "виртуальный забор".
Самый простой способ найти срабатывание защиты посмотреть журнал полетного контроллера фильтруя по сообщениям ERR первый столбец.
В Subsys (подсистеме) есть область, которая генерирует вызвающую ошибку и ECODE (известная как "код ошибки") - это говорит нам, что ошибка была специальная. Ограниченное количество подсистем и кодов ошибок можно найти в исходных кодах конфигурации ArduCopter файла defines.h.
Sub Systems / Error Codes
- 1: Main (never used)
- 2: Radio
- ECode 1: “Late Frame” which means the APM’s onboard ppm encoder did not provide an update for at least 2 seconds
- ECode 0: error resolved which means the ppm encoder started providing data again
- 3: Compass
- ECode 1: the compass failed to initialise (likely a hardware issue)
- ECode 2: failure while trying to read a single value from the compass (probably a hardware issue)
- ECode 0: above errors resolved
- 4: Optical flow
- Ecode 1: failed to initialise (likely a hardware issue)
- 5: Throttle failsafe
- ECode 1: throttle dropped below FS_THR_VALUE meaning likely loss of contact between RX/TX
- ECode 0: above error resolve meaning RX/TX contact likely restored
- 6: Battery failsafe
- ECode 1: battery voltage dropped below LOW_VOLT or total battery capacity used exceeded BATT_CAPACITY
- 7: GPS failsafe
- ECode 1: GPS lock lost for at least 5 seconds
- ECode 0: GPS lock restored
- 8: GCS (Ground station) failsafe
- ECode 1: updates from ground station joystick lost for at least 5 seconds
- ECode 0: updates from ground station restored
- 9: Fence
- ECode 1: altitude fence breached
- ECode 2: circular fence breached
- ECode 3: both altitude and circular fences breached
- ECode 0: vehicle is back within the fences
- 10: Flight Mode
- ECode 0 ~ 10: the vehicle was unable to enter the desired flight mode
- (0=Stabilize, 1=Acro, 2=AltHold, 3=Auto, 4=Guided, 5=Loiter, 6=RTL, 7=Circle, 8=Position, 9=Land, 10=OF_Loiter)
- 11: GPS
- ECode 2: GPS Glitch
- ECode 0: GPS Glitch cleared
- 12: Crash Check
- ECode 1: Crash detected