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

flyfx

Доброе утро Господа, соратники!
Вчера приложил коптер метров с 200.
Ситуация развивалась след образом!
Мозги клон pixhawk 2.4.8. Отлетался хорошо, все настроил после переделок и решил ввысь забраться, увлекся набрал около 850 метров, спускаюсь обратно в лоитер, перешел в стаб чтоб побыстрей спускался где-то до 300 метров потом решил еще побыстрей и прибрал газ но не совсем, далее произошло следующие : Квадрокоптер завалился назади и перевернулся на стики не реагировал при даче газа, я несколько раз включал лоитер режим, на экране вылезла статистика за полет и дальше все планета! Логи увы не посмотреть так как папка LOG пуста при этом флешка почти вся забита, в крайнем полете MP ругался Bad Loggin. Скажите можно ли как то сделать защиту на минимальное положение газа ниже которого в полете нельзя установить в Стаб режиме И так далее? В любом случае мне странно что он завершил полет выдав статистику

flyfx
Alex83:

Похоже на disarm в воздухе

Спасибо! Я правда в английском не силен, но попробую переводить

extrasensi
flyfx:

Скажите можно ли как то сделать защиту на минимальное положение газа ниже которого в полете нельзя установить в Стаб режиме И так далее? В любом случае мне странно что он завершил полет выдав статистику

Настройте кривую газа на аппаратуре,только нужно не забывать отключать этот функционал при посадке на землю.Сделайте включение кривой газа на тумблер и при включенном тумблере,чтоб газ ниже 20% не опускался,а если тумблер 3х позиционный,то можно настроить,чтоб газ был не менее 20% во втором положении и не менее 50% в третьем,например,в режимах вроде loiter или альтхолд

Greyukrck
extrasensi:

Настройте кривую газа на аппаратуре,только нужно не забывать отключать этот функционал при посадке на землю.Сделайте включение кривой газа на тумблер и при включенном тумблере,чтоб газ ниже 20% не опускался,а если тумблер 3х позиционный,то можно настроить,чтоб газ был не менее 20% во втором положении и не менее 50% в третьем,например,в режимах вроде loiter или альтхолд

У меня на трёх позиционном расходы по всем четырём каналам управления 100%-75%-50%. Очень удобно. Рекомендую.

alexeykozin
Alex83:

Похоже на disarm в воздухе. github.com/ArduPilot/ardupilot/issues/7985

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

зы вчера игрались с коптером 130мм размера, уронили его метров со ста. Только пыль сдули и дальше летать.

flyfx
extrasensi:

Настройте кривую газа на аппаратуре

Яков, спасибо за совет!

alexeykozin:

а тут моторы дизармились потому что долго держали газ в нуле при спуске с большой высоты

Алексей, благодарю вас за внимание к моему вопросу!
Трудно конечно судить без логов, странным образом папка пуста при этом до этого там копились логи примерно в течении месяца, я их просматривал, возможно при падение что-то глючило, в любом случае отформатирую карту и по новой. В Stab режиме я спускался при положении газа ниже среднего , потом кратковременно прибрал еще больше и далее он стал заваливаться - перевернулся вверх ногами и все. Ну до ладно, буду учитывать этот момент. Конечно жалею что не спустился как положенно, но пока сам ошибок не набьешь не разберешься что к чему.
Вопрос:Почему пикса включает дизарм в воздухе даже при малом положении газа? Ведь она должна понимать что высота и скорость снижения, квадрик летит, или этот момент ей не отслеживается показание датчиков и жпс она все равно ориентируется на положение газа?
Каким параметром регулировать время до динарам в стабильностями режиме?

alexeykozin:

уронили его метров со ста

Я можно сказать отделался легко, защитный колпак в хлам, стойка жпс и ноги, походу еще антенна телеметрии сломалась . Квадр упал в поле где грязи по колено, моторы все битком в грязи но я их отмыл и продул, а рама TAROT 650 выдержала, лучи и пластины целы.
Вот так выглядел До а после уже не до фото было)))

sergbokh
alexeykozin:

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

flyfx:

Вопрос:Почему пикса включает дизарм в воздухе даже при малом положении газа? Ведь она должна понимать что высота и скорость снижения, квадрик летит, или этот момент ей не отслеживается показание датчиков и жпс она все равно ориентируется на положение газа?

Не могу найти в доках описание авто-дизарма. Но вроде бы условие авто-дизарма это мин газ + отсутствие изменения высоты.
Ручной дизарм тоже не делается одним стиком газа.

По вашему описанию можно допустить что коптер не смог стабилизироваться из-за слишком низкого газа. Он начал заваливаться, вы на это отреагировали не сразу, он завалился на большой угол и сработал crash check, который и задизармил.

When will the crash check disarm the motors?

When all the following are true for 2 full seconds:

  • the vehicle is armed
  • the vehicle is not landed (as far as it can tell)
  • the current flight mode is not ACRO or FLIP
  • the vehicle is not accelerating by more than 3m/s/s
  • the actual lean angle has diverged from the desired lean angle (perhaps input by the pilot) by more than 30 degrees
alexeykozin
sergbokh:

Не могу найти в доках описание авто-дизарма. Но вроде бы условие авто-дизарма это мин газ + отсутствие изменения высоты

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

не увидел чтобы ардукоптер проверял изменение высоты
github.com/ArduPilot/ardupilot/blob/…/motors.cpp#L…

сама по себе процедура проверки Copter::auto_disarm_check() запланирована в шедуллере и выполняется по расписанию (безусловно)

alexeykozin
sergbokh:

вот здесь вроде

ap.land_complete

теоретически флаг устанавливается только в случае если инерциалка сообщает что вертикальная скорость по модулю не более 1мс в течении интервала лэнд детектора
github.com/ArduPilot/…/land_detector.cpp#L80

  1. при этом мы смотрим актуальный репозиторий, а в конкретном случае у пользователя могла быть предшествующая прошивка с иной логикой.
  2. LAND_DETECTOR_TRIGGER_SEC по умолчанию всего 1 сек
    за эту секунду теоретически если накануне была прогазовка на минусовой скорости и сброс газа на ноль, достигнута в результате скорость менее +1мс по высоте, затем коптер уменьшил вертикальную скорость до нуля и стал снижаться но не успел набрать скорость снижения свыше -1мс (эдакая макушка “горки”) то лэнд детектор мог вполне сработать ложно

если судить теоретически то кажется невозможным эффкт когда коптер не наберет большую вертикальную скорость при нулевом газе исходя из ускорения свободного падения 9мс за с, однако на практике, учитывая запас кинетической энергии большого пропеллера раскрученного до больших оборотов вполне реалистично что аппрат может некоторое время удерживать высоту на остаточной ротации винтов

flyfx
sergbokh:

Он начал заваливаться, вы на это отреагировали не сразу, он завалился на большой угол и сработал crash check, который и задизармил.

alexeykozin:

LAND_DETECTOR_TRIGGER_SEC по умолчанию всего 1 сек
за эту секунду теоретически если накануне была прогазовка на минусовой скорости и сброс газа на ноль, достигнута в результате скорость менее +1мс по высоте, затем коптер уменьшил вертикальную скорость до нуля и стал снижаться но не успел набрать скорость снижения свыше -1мс (эдакая макушка “горки”) то лэнд детектор мог вполне сработать ложно

Очень похоже на мою картину происшедшего! Сказалось отсутсвие должного опыта управления коптером, неправильная тактика спуска, хотел как на лифте скоростном) Но крашчек отключать не буду, нужная вещь.

crand
crand:

А подскажите, пожалуйста. Это то, что надо - www.chipdip.ru/product/stm32f427vit6-2 ?

Заказал, получил.
У меня только доставка дорогая вышла. А на материке - в наличии в магазинах.
Ревизия 3.

alexeykozin

с практической точки зрения для многих типов мультироторов подходит следующая методика для скоростного спуска:
минимальный газ (не ноль а чуть выше деадзоны) + максимальный крен, т.е. 45град

flyfx

Все таки еще хотелось понять про crash_check,если это имело место быть у меня, то зависит ли его работа от режима. Допустим в stab режиме он работает по одному алгоритму, при включении acro по другому.?

sergbokh

Я выше цитату из оф. документации постил.
В Акро он не работает, в остальных режимах алгоритм один.

Вот это пожалуй основное

sergbokh:

the actual lean angle has diverged from the desired lean angle (perhaps input by the pilot) by more than 30 degrees

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

flyfx
sergbokh:

В Акро он не работает, в остальных режимах алгоритм один.

Спасибо большое! Теперь вроде понятно!

Makusim

Решил с апм пересесть на pixhawk, нацелился на pixhack v3. Потом нашёл F4BY. Получается что тот же pixhack nano. И вот вопрос наличие вторых(дублирующих) датчиков как то существенно улучшает надёжность и летные характеристики полётника?

crand

Добрый день.
Перепаял процессор, на плате не нашел контакты boot. Нашел только io-boot0.
Кто-то может подсказать алгоритм по прошивке нового процессора?
Спасибо.

Замыканием 2-х контактов, предложенных в Алексеем в ноябре 2015-го, добился появления устройства STM 32 Bootloader. Но нового com-порта нет.

art_80
crand:

алгоритм по прошивке нового процессора

подпаиваетесь к ногам проца, соответствующим разъёму ICSP (miso, mosi, reset и т.д.) Затем, используя usbASP заливаете загрузчик.