PIXHAWK PX4 Autopilot еще одна летающая железка

Arkady68
ufk:

Аналогично и с баро, на разных версиях ардупилота и с разыми дефолтными настройками влияние баро и инерциалки на удержание высоты находятся в разных “пропорциях”… например в 3.3 была проблема с удержанием высоты при скоростных пролетах из за влияния процессов описанных в законе Бернулли… т.о. видимо влияние баро было увеличено а инерциалки уменьшено и как следствие получили данную проблему(видимо решили подстроится под любителей летать на отбойных молотках, лол)…

зачем гадать, есть параметр EK2_ALT_M_NSE: Baro measurement noise (m)
This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.
Плохо, что есть куча параметров имеющих смежное влияние, и не знаешь иногда что же из низ трогать. Описания влияния параметров нет толкового…
А по поводу комасов у меня случился прорыв в лучшую сторону когда я отключил обучение компаса по маневрам. Этот параметр есть на оба компаса, попробуйте его поставить в “никогда” и надеюсь у вас всё устаканится 😃

art78g

Кто нибудь разбирался с устройством пиксхавка? Меня интересует вопрос - на плате есть место под установку гироскопа l3gd20. Есть ли смысл его впаивать? будет ли от этого выигрыш?

Greyukrck

Ранее тут спрашивал пользовал ли кто3DR Pixhawk Mini? store.3dr.com/products/3dr-pixhawk
Для информации - ответ от поддержки 3dr:
Благодарим вас за обращение в службу технической поддержки 3DR.
Как указано в кратком руководстве по началу работы, используйте QGroundControl, поскольку pixhawk mini был сделан для прошивки PX4 и не поддерживает прошивку APM.

schs
arb:

К отказоустойчивости данный случай отношения не имеет. Для того чтобы система поняла, что кто-то из компасов отказал нужны четкие критерии.

При реальном полёте, по получению достаточных данных от GPS, можно вычислить более проблемный или подобрать коррекцию под него.

macrokernel
Hyperion:

нормально

Не ту картинку приложил, это были дефолтный PIDы 😁

@Hyperion, можно было и намекнуть 😉

На всякий случай повторю вопрос: первый раз делаю автотюн, нормально настроилось, или что-нибудь надо подправить вручную?

Вот мои PIDы после автотюна:

arb
schs:

При реальном полёте, по получению достаточных данных от GPS, можно вычислить более проблемный или подобрать коррекцию под него.

А это логично? Зачем подбирать коррекцию для проблемы когда можно просто взять правильный первоисточник (ЖПС) и использовать его данные, что в принципе сейчас система и делает. Надо только не мешать системе, типа

Arkady68:

А по поводу комасов у меня случился прорыв в лучшую сторону когда я отключил обучение компаса по маневрам.

macrokernel:

но, кажется, стал резковат.

Если стал резковат, то можно вернуть обратно стабилайз. Или прогнать автотюн с другим к-том автотюна (более мягким).

Hyperion
macrokernel:

Вот мои PIDы после автотюна:

если еще не поняли сарказма, то поясняю.
Для того чтобы оцепить пиды надо не скрин пидов выложить, а логи 😃

Hyperion

на мой взгляд маловато P

По графикам кажется что текущее положение коптера чуууучуть не дотягивает до желаемого. Но если управление нравится то можно и забить)
для сравнений лог моего после автотюна

В моем случае показалось что P Наоборот великовато, потому что есть перекомпенсации. Хочу как разберусь с вибрациями запустить еще раз автотюн с меньшей агрессивностью.

Другой вариант - оценить просто данные ERRRP, ERRYAW
ваш коптер

мой

но летать разумеется нужно примерно одинаково)

alexeykozin
Hyperion:

чуууучуть не дотягивает до желаемого

нуу если коптер был в полете в моменты где десрол и рол расходились в 30 градусов а разок и 40 то какое то уж очень осторожное суждение.

алексей, у вас шкала расхождений в 2 градуса на деление а на верхнем атт рол 20 градусов на деление.
(хотя могу ошибаться цвета тредов практически неотличимы)

Hyperion

блин тупанул, спасибо за замечание. надо было одной группой сделать.

macrokernel

Спасибо, оба Алексея.

Смысл понятен: надо смотреть логи 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 градусов? Можете, пожалуйста, указать, на какой секунде или номер записи журнала? Я в анализе логов пока не силён.

macrokernel

Алексей Дегтярев, мы с Вами точно один и тот же лог смотрим? Я сделал скриншот того участка графика, который Вы изобразили на картинке:

У меня он почему-то выглядит по-другому.

Набросал скриптик, который считает максимальное расхождение в логе.

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.

alexeykozin
macrokernel:

Какое расхождение считается хорошим?

такого требования нет, каждый ищет для себя.
если строго контролировать положение - уходит больше энергии, такая тактика не подходит для долголетов предназначенных для висения на рекорд в штиль. У подобных аппаратов при взлете и полетах в условиях турбулентности может быть и 10 и даже больше градусов “промах”
если точность и устойчивость к турбулентности на первом месте а время полета второстепенно то строят аппарат который допускает не более одного-двух градусов ошибки

macrokernel:

Набросал скриптик, который считает максимальное расхождение в логе.

вроде как есть уже показатель отображающий максимальное расхождение ролпитч от требуемого.
rp_error или как то так называется

macrokernel

Мне время полёта предпочтительнее.

Вот тут пишут, что в логе рассматриваемые параметры указываются в сотых долях градуса (centi-degrees). Таким образом, получается, что максимальное расхождение по роллу в моем логе - 18.49 - это 0.1849 градуса? Так это вообще отлично! Или я что-то неправильно понимаю?

ufk
Arkady68:

зачем гадать, есть параметр EK2_ALT_M_NSE: Baro measurement noise (m)

Плохо, что есть куча параметров имеющих смежное влияние, и не знаешь иногда что же из низ трогать. Описания влияния параметров нет толкового…

А по поводу комасов у меня случился прорыв в лучшую сторону когда я отключил обучение компаса по маневрам. Этот параметр есть на оба компаса, попробуйте его поставить в “никогда” и надеюсь у вас всё устаканится 😃

Причем тут гадать, проблему с удержанием в 3.3 озвучивали разработчики, они навярняка знают о всех переменных(конкретно итальяшка даже видео этой проблеме посвятил, можете на оф. канале поискать)… к слову, строго говоря я на 3.3 вообще не летал, перескочил с 3.2 сразу на 3.4(по многим причинам)

это да, плюс от версии к версии различные изменения происходят, которые не протоколируются особо… ну если только следить на гитхабе…

Оно по дефолту выключено ну и я в курсе, однако спасибо за подсказку, может кому то поможет… я те свои проблемы(как и другие) давно решил… я много летаю и поэтому если что то вылезает быстро нахожу и далееуже по ситуации.

arb:

А это логично? Зачем подбирать коррекцию для проблемы когда можно просто взять правильный первоисточник (ЖПС) и использовать его данные, что в принципе сейчас система и делает.

А если глич, а если плохой прием гпс, а если висим…
Вот для этого все это и городят имхо, так и достигается отказоустойчивость… больше датчиков - больше вероятность при отказах/проблемах не потерять аппарат

alexeykozin
macrokernel:

Вот тут пишут, что в логе рассматриваемые параметры указываются в сотых долях градуса (centi-degrees)

там пишут про другие параметры, каждый параметр в своих единицах.

macrokernel

Как же другие? Те же самые, ведь: ATT.Roll, ATT.Pitch - разве нет?

arb

А если глич, а если плохой прием гпс, а если висим…
Вот для этого все это и городят имхо, так и достигается отказоустойчивость… больше датчиков - больше вероятность при отказах/проблемах не потерять аппарат

Где-то это уже обсуждали, но можно еще раз.
В измерениях для точности отказоустойчивости нужна статистика. Уже давно отработано, что в этом случае используется 1, 3, 5 измерений и более. Четные не применяются (особенно 2). 2 к статистике отношения не имеет. 1 измерение на удачу, 3 (5) - отбрасывается ошибочное (за диапазоном остальных) и считается среднее. При 2 непонятно кого отбрасывать.
Поэтому если так хочется, то ставьте хотя-бы 3 компаса, 3 жпс и 3 акселя. А 2 это ни то , ни се.

alexeykozin
macrokernel:

Как же другие? Те же самые, ведь: ATT.Roll, ATT.Pitch - разве нет?

посмотрите шкалу
от -180 до 180 тоесть 360 градусов. (а не ±18000 )
фрагмент лога содержит переворот тоесть переход через 180 градусов

macrokernel

Я не вижу в этом логе ничего близкого к 180. Минимальное значение ATT.Roll в этом логе - -48.44, максимальное - 53.19. По pitch - от -43.09 до 38.05. Вы точно второй лог смотрите (более поздний)? Первый - автотюн, второй - полёт.