PIXHAWK PX4 Autopilot еще одна летающая железка
К отказоустойчивости данный случай отношения не имеет. Для того чтобы система поняла, что кто-то из компасов отказал нужны четкие критерии.
При реальном полёте, по получению достаточных данных от GPS, можно вычислить более проблемный или подобрать коррекцию под него.
нормально
Не ту картинку приложил, это были дефолтный PIDы 😁
@Hyperion, можно было и намекнуть 😉
На всякий случай повторю вопрос: первый раз делаю автотюн, нормально настроилось, или что-нибудь надо подправить вручную?
Вот мои PIDы после автотюна:
При реальном полёте, по получению достаточных данных от GPS, можно вычислить более проблемный или подобрать коррекцию под него.
А это логично? Зачем подбирать коррекцию для проблемы когда можно просто взять правильный первоисточник (ЖПС) и использовать его данные, что в принципе сейчас система и делает. Надо только не мешать системе, типа
А по поводу комасов у меня случился прорыв в лучшую сторону когда я отключил обучение компаса по маневрам.
но, кажется, стал резковат.
Если стал резковат, то можно вернуть обратно стабилайз. Или прогнать автотюн с другим к-том автотюна (более мягким).
Вот мои PIDы после автотюна:
если еще не поняли сарказма, то поясняю.
Для того чтобы оцепить пиды надо не скрин пидов выложить, а логи 😃
Сарказм уже распознал. Что надо выложить логи ещё не понял.
В архиве - два файла: 1) лог автотюна; 2) лог полёта с новыми PIDами.
www.dropbox.com/s/…/autotune-logs.zip?dl=0
на мой взгляд маловато P
По графикам кажется что текущее положение коптера чуууучуть не дотягивает до желаемого. Но если управление нравится то можно и забить)
для сравнений лог моего после автотюна
В моем случае показалось что P Наоборот великовато, потому что есть перекомпенсации. Хочу как разберусь с вибрациями запустить еще раз автотюн с меньшей агрессивностью.
Другой вариант - оценить просто данные ERRRP, ERRYAW
ваш коптер
чуууучуть не дотягивает до желаемого
нуу если коптер был в полете в моменты где десрол и рол расходились в 30 градусов а разок и 40 то какое то уж очень осторожное суждение.
алексей, у вас шкала расхождений в 2 градуса на деление а на верхнем атт рол 20 градусов на деление.
(хотя могу ошибаться цвета тредов практически неотличимы)
Спасибо, оба Алексея.
Смысл понятен: надо смотреть логи Roll-DesRoll, Pitch-DesPitch, Yaw-DesYaw и, если расхождение большое, тюнить дальше. Алексей Дегтярев, чем Вы рисуете графики? В Mission Planner какая-то непонятная шкала, не ясно, что за величина по оси Y, поэтому сложно оценить насколько велико расхождение.
P.S. Это APM Planner. Устанавливаю.
P.P.S. Похоже, что величины по оси Y одинаковые в APM Planner и Mission Planner.
Какое расхождение считается хорошим?
Спасибо, оба Алексея.
Смысл понятен: надо смотреть логи Roll-DesRoll, Pitch-DesPitch, Yaw-DesYaw и, если расхождение большое, тюнить дальше. Алексей Дегтярев, чем Вы рисуете графики? В Mission Planner какая-то непонятная шкала, не ясно, что за величина по оси Y, поэтому сложно оценить насколько велико расхождение.
P.S. Это APM Planner. Устанавливаю.
P.P.S. Похоже, что величины по оси Y одинаковые в APM Planner и Mission Planner.
Какое расхождение считается хорошим?
Я у себя вижу максимум 20 градусов (если по оси Y градусы) расхождение по роллу на 42-ой секунде. Далее - 10 - 12, не больше. По питчу 8 - 10. По яву - вообще всё один-в-один.
Алексей Козин, где у меня ролл расходится на 30 - 40 градусов? Можете, пожалуйста, указать, на какой секунде или номер записи журнала? Я в анализе логов пока не силён.
Алексей Дегтярев, мы с Вами точно один и тот же лог смотрим? Я сделал скриншот того участка графика, который Вы изобразили на картинке:
У меня он почему-то выглядит по-другому.
Набросал скриптик, который считает максимальное расхождение в логе.
Roll:
$ cat 2017-06-04\ 13-17-38.log |grep ‘^ATT’ |cut -d, -f3,4 | sed -r -e ‘s/^ //’ -e ‘s/, / - /’ -e ‘s/(.*)/define abs(x) {if (x<0) {return -x}; return x;}; abs\(\1)/’ | bc |sort -n |tail -1
18.49
Pitch:
$ cat 2017-06-04\ 13-17-38.log |grep ‘^ATT’ |cut -d, -f5,6 | sed -r -e ‘s/^ //’ -e ‘s/, / - /’ -e ‘s/(.*)/define abs(x) {if (x<0) {return -x}; return x;}; abs\(\1)/’ | bc |sort -n |tail -1
9.66
Среднее значение расхождения:
Roll:
$ cat 2017-06-04\ 13-17-38.log |grep ‘^ATT’ |cut -d, -f3,4 | sed -r -e ‘s/^ //’ -e ‘s/, / - /’ -e ‘s/(.*)/define abs(x) {if (x<0) {return -x}; return x;}; abs\(\1)/’ | bc |awk ‘{ total += $1 } END { print total/NR }’
1.42087
Pitch:
$ cat 2017-06-04\ 13-17-38.log |grep ‘^ATT’ |cut -d, -f5,6 | sed -r -e ‘s/^ //’ -e ‘s/, / - /’ -e ‘s/(.*)/define abs(x) {if (x<0) {return -x}; return x;}; abs\(\1)/’ | bc |awk ‘{ total += $1 } END { print total/NR }’
0.861155
Так что ну никак у меня нет расхождения 30 - 40.
Какое расхождение считается хорошим?
такого требования нет, каждый ищет для себя.
если строго контролировать положение - уходит больше энергии, такая тактика не подходит для долголетов предназначенных для висения на рекорд в штиль. У подобных аппаратов при взлете и полетах в условиях турбулентности может быть и 10 и даже больше градусов “промах”
если точность и устойчивость к турбулентности на первом месте а время полета второстепенно то строят аппарат который допускает не более одного-двух градусов ошибки
Набросал скриптик, который считает максимальное расхождение в логе.
вроде как есть уже показатель отображающий максимальное расхождение ролпитч от требуемого.
rp_error или как то так называется
Мне время полёта предпочтительнее.
Вот тут пишут, что в логе рассматриваемые параметры указываются в сотых долях градуса (centi-degrees). Таким образом, получается, что максимальное расхождение по роллу в моем логе - 18.49 - это 0.1849 градуса? Так это вообще отлично! Или я что-то неправильно понимаю?
зачем гадать, есть параметр EK2_ALT_M_NSE: Baro measurement noise (m)
Плохо, что есть куча параметров имеющих смежное влияние, и не знаешь иногда что же из низ трогать. Описания влияния параметров нет толкового…
А по поводу комасов у меня случился прорыв в лучшую сторону когда я отключил обучение компаса по маневрам. Этот параметр есть на оба компаса, попробуйте его поставить в “никогда” и надеюсь у вас всё устаканится 😃
Причем тут гадать, проблему с удержанием в 3.3 озвучивали разработчики, они навярняка знают о всех переменных(конкретно итальяшка даже видео этой проблеме посвятил, можете на оф. канале поискать)… к слову, строго говоря я на 3.3 вообще не летал, перескочил с 3.2 сразу на 3.4(по многим причинам)
это да, плюс от версии к версии различные изменения происходят, которые не протоколируются особо… ну если только следить на гитхабе…
Оно по дефолту выключено ну и я в курсе, однако спасибо за подсказку, может кому то поможет… я те свои проблемы(как и другие) давно решил… я много летаю и поэтому если что то вылезает быстро нахожу и далееуже по ситуации.
А это логично? Зачем подбирать коррекцию для проблемы когда можно просто взять правильный первоисточник (ЖПС) и использовать его данные, что в принципе сейчас система и делает.
А если глич, а если плохой прием гпс, а если висим…
Вот для этого все это и городят имхо, так и достигается отказоустойчивость… больше датчиков - больше вероятность при отказах/проблемах не потерять аппарат
Вот тут пишут, что в логе рассматриваемые параметры указываются в сотых долях градуса (centi-degrees)
там пишут про другие параметры, каждый параметр в своих единицах.
Как же другие? Те же самые, ведь: ATT.Roll, ATT.Pitch - разве нет?
А если глич, а если плохой прием гпс, а если висим…
Вот для этого все это и городят имхо, так и достигается отказоустойчивость… больше датчиков - больше вероятность при отказах/проблемах не потерять аппарат
Где-то это уже обсуждали, но можно еще раз.
В измерениях для точности отказоустойчивости нужна статистика. Уже давно отработано, что в этом случае используется 1, 3, 5 измерений и более. Четные не применяются (особенно 2). 2 к статистике отношения не имеет. 1 измерение на удачу, 3 (5) - отбрасывается ошибочное (за диапазоном остальных) и считается среднее. При 2 непонятно кого отбрасывать.
Поэтому если так хочется, то ставьте хотя-бы 3 компаса, 3 жпс и 3 акселя. А 2 это ни то , ни се.
Как же другие? Те же самые, ведь: ATT.Roll, ATT.Pitch - разве нет?
посмотрите шкалу
от -180 до 180 тоесть 360 градусов. (а не ±18000 )
фрагмент лога содержит переворот тоесть переход через 180 градусов
Я не вижу в этом логе ничего близкого к 180. Минимальное значение ATT.Roll в этом логе - -48.44, максимальное - 53.19. По pitch - от -43.09 до 38.05. Вы точно второй лог смотрите (более поздний)? Первый - автотюн, второй - полёт.
я имею ввиду не какой то конкретный лог а приведенные в последних постах картинки
в вашем случае тоже градусы а не сотые их доли верно?
По смыслу больше похоже на градусы, но документация на Arducopter утверждает, что сотые. Возможно, MissionPlanner при конвертации из bin в log делит на 100.
Свои логи я выкладывал выше.
помоему там косяк в описалове. По всем косвенным признакам выглядит как градусы а не сотни градуса. Проверить легко - заармить и положить коптер на 90 градусов и поглядеть что будет в логе.
Причем в логе нету здоровых чисел
ATT, 32740378, 4.19, 4.19, -0.57, -0.57, 90.59, 90.59, 0.00, 0.00
явно градусы