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

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 заливаете загрузчик.

crand
art_80:

подпаиваетесь к ногам проца

Для меня это слишком сложно. Я и перепаять то его еле смог. Писали же, что можно через USB загрузчик залить. Я на это и расчитывал.

art_80
crand:

Писали же, что можно через USB загрузчик залить

Возможно ошибаюсь, но через USB загрузчики можно заливать в том случае, когда уже есть загрузчик. С чистым процом такой номер не пройдёт, Вам потребуется программатор.

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

crand

Пробовал разные драйвера подставлять. Получается либо STM32 Bootloader, но нет порта. Либо появляется порт с неустановленными драйверами, либо в USB устройствах - STM Device in DFU Mode. Причем в этом режиме видится DfuSeDemo. Да и Zadig устройство видит.

Может еще какой контакт на землю подать?

alexeykozin:

для pixhawk www.dropbox.com/s/psnrwvlviw...aders.zip?dl=0
там два файла один для проца ио второй для главного

Или я что-то напутал? И надо не bin а dfu файлы?

art_80

Вроде когда в DFU Mode, то должно шиться, попробуйте мишн планер запустить, что он скажет.

crand

Та как он будет шиться, если процессор без загрузчика?