Автопилот iNav полёты с GPS

kasatka60

Тоесть одновременно подъем с разворотом?
На каждый случай разворот с подъемом может и спасет от здания, но может встретить дерево или другое строение

karabasus
Serpent:

В третьем айнаве самолёт набирает высоту перед возвратом домой по спирали.

Не совсем точно- верно будет может набирать , в inav 3.0 есть и обычный набор высоты с последующим разворотом. Выбирается включением/включением соответствующей настройки в конфигураторе.

kasatka60:

Тоесть одновременно подъем с разворотом?

Да.

Mistel

Чёт смотря на то как скачет количество спутников склоняюсь к версии что кратковременно параметр упал ниже gps_min_sats
К тому же обратите внимание на то что в первом полёте было 18 спутников когда все нормально отработало а во втором меньше 10

Plohish
Mistel:

склоняюсь к версии что кратковременно параметр упал ниже gps_min_sats

и заморгали координаты! ? 😃

Mistel
Plohish:

и заморгали координаты! ?

не понимаю о чём вы

Plohish

о том что при снижении ниже gps_min_sats, должны замигать координаты, не?

Mistel
Plohish:

о том что при снижении ниже gps_min_sats, должны замигать координаты, не?

Так он возможно снизился в моменте, осд не успело отобразить но для триггера аварийной посадки оказалось достаточно. Но сейчас пересмотрел, не думаю что версия состоятельная т.к. на момент срабатывания EL было аж 10 спутников.
Мне вот другое непонятно, судя по ОСД связь есть и причём неплохая. О каком FS идёт речь? И почему не возвращалось управление…

kasatka60

У меня было когда количество спутников упало ниже 6, но я тогда летел в круизе и автоматом переключило в режим angle. Может тут просто глич по координатам временно поймал? Айнав же должен был вывести сообщение и должны моргать спутники на осд?

Mistel:

И почему не возвращалось управление…

Так этот режим можно както отменить отменить?

Mistel

Вот что нашёл

#if defined(USE_NAV)
case FAILSAFE_RETURN_TO_HOME:
if (receivingRxDataAndNotFailsafeMode && sticksAreMoving) {
abortForcedRTH();
failsafeState.phase = FAILSAFE_RX_LOSS_RECOVERED;
reprocessState = true;
}
else {
if (armed) {
beeperMode = BEEPER_RX_LOST_LANDING;
}
bool rthLanded = false;
switch (getStateOfForcedRTH()) {
case RTH_IN_PROGRESS:
break;

case RTH_HAS_LANDED:
rthLanded = true;
break;

case RTH_IDLE:
default:
// This shouldn’t happen. If RTH was somehow aborted during failsafe - fallback to FAILSAFE_LANDING procedure
abortForcedRTH();
failsafeSetActiveProcedure(FAILSAFE_PROCEDURE_AUTO_LANDING);
failsafeActivate(FAILSAFE_LANDING);
reprocessState = true;
break;
}
if (rthLanded || !armed) {
failsafeState.receivingRxDataPeriodPreset = PERIOD_OF_30_SECONDS; // require 30 seconds of valid rxData
failsafeState.phase = FAILSAFE_LANDED;
reprocessState = true;
}
}
break;

собственно о чём это говорит:

  1. условие отключения
    if (receivingRxDataAndNotFailsafeMode && sticksAreMoving) {
    abortForcedRTH();

  2. Условие emergency landing
    else {
    if (armed) {
    beeperMode = BEEPER_RX_LOST_LANDING;
    }
    bool rthLanded = false;
    switch (getStateOfForcedRTH()) {
    case RTH_IN_PROGRESS:
    break;

case RTH_HAS_LANDED:
rthLanded = true;
break;

case RTH_IDLE:

Есть конечно догадки по этой логике но лучше если расшифрует тот кто хорошо умеет код читать 😃

вот ссылка на сам код

Pilot737

Я не понял алгоритм написанного……

karabasus
Pilot737:

Я не понял алгоритм написанного……

Я тоже. Типа читайте сами я нашел что то похожее? Странно, мы и сами умеем искать.

Mistel:

кто хорошо умеет код читать

Наверное нужно его ждать.

Serpent

А читать сложно. Чаще всего самому написать легче, чем понять тонкости написанного другим.
А если “других” несколько и код неоднократно правился, то…

P.S. Надо смотреть не кусок текста, а все возможные условия, для этого надо пересматривать весь код.
Или проще садиться и думать, что было не так в настройках или самом полёте.
Но это только хозяин модели сможет сказать (если глаз уже не замылен)…

tuskan
Mistel:

// This shouldn’t happen. If RTH was somehow aborted during failsafe - fallback to FAILSAFE_LANDING procedure

норм.
если пришла отмена РТХ и во время этого статус - ФС, то посадка.
интересно, если управление по мавлинку - как оно отработает?

Pilot737
tuskan:

норм.
если пришла отмена РТХ и во время этого статус - ФС, то посадка.
интересно, если управление по мавлинку - как оно отработает?

Дмитрий, а можно уточнить. Если RTH по потери связи, то стики не трогать и не пытаться восстановить связь?

Serpent
Pilot737:

Если RTH по потери связи, то стики не трогать и не пытаться восстановить связь?

Проблема растёт как минимум еще с 2015 года - Константин Шарлаимов (автор айнава) еще тогда писал:

When RTH can’t activate (no GPS etc) and failsafe requests RTH, getStateOfForcedRTH() … will always return RTH_IDLE and the machine will enter FAILSAFE_LANDED state, disarm mid-flight and drop out of the sky.

Это был еще Гитхаб и cleanflight, про айнав народ и не слышал вроде…

When RTH can’t activate (no GPS etc) and failsafe requests RTH

Т.е. похоже попало какое то из условий (очень кратковременно) и полётник ушел в принудительную посадку. А оттуда уже не вышел…
Похоже если модель УЖЕ идёт домой, то лучше ждать и не дёргаться.
Для меня это тоже стало новостью, причем неприятной.
Надо учитывать.

karabasus
Serpent:

Похоже если модель УЖЕ идёт домой, то лучше ждать и не дёргаться.
Для меня это тоже стало новостью, причем неприятной.

Дергайся, не дергайся, если пропадут спутники будет тоже самое. Никакой новости нет. Но вот то что мы видим на видео и переход в emergency landing ни в одно из задекларированных условий не укладывается, есть видимо ещё что-то что мы не знаем (либо в коде либо в ситуации с утратой самолета).

kasatka60

А как определить, что проблема была точно в GPS?

karabasus
kasatka60:

А как определить, что проблема была точно в GPS?

В обсуждаемом случае, я думаю, никак. Да и вообще, мое мнение- по потере летучки - вина пилота 90% - не нужно лететь дальше чем срабатывает куча предупреждений по FS, на первых 2-3 подряд нужно разворачиваться и набирать высоту. А дальше можно оставить всё автопилоту. Я думаю спасло бы переключение в любой полетный режим и потом в принудительное RTH если-бы прошла команда.

Serpent
karabasus:

переход в emergency landing ни в одно из задекларированных условий не укладывается

Мы просто не знаем всех условий.
Коду уже немало лет и он не раз переписывался.
Или не видим явного…

Pilot737
karabasus:

В обсуждаемом случае, я думаю, никак. Да и вообще, мое мнение- по потере летучки - вина пилота 90% - не нужно лететь дальше чем срабатывает куча предупреждений по FS, на первых 2-3 подряд нужно разворачиваться и набирать высоту. А дальше можно оставить всё автопилоту. Я думаю спасло бы переключение в любой полетный режим и потом в принудительное RTH если-бы прошла команда.

Согласен, но я был уверен, что при потере связи самолёт вернётся. Да и удаление 10 км это не предел для моего сетапа (за час до этого улетал на 15 км в другом направлении и возвращался в режиме RTH, по команде с пульта, связь не пропадала).

Mistel
Pilot737:

Да и удаление 10 км это не предел для моего сетапа (за час до этого улетал на 15 км в другом направлении и возвращался в режиме RTH, по команде с пульта, связь не пропадала).

А самоль то в итоге так и не нашли?