Автопилот Arduplane - открытое ПО

Morozyaka

Люди добрые, помогите советом: Имеется PX4,которые неплохо работал на ЛК. Вчера переставил на другое ЛК и не получается настроить
1)Сервы настройл, но в режиме стабилизации реагируют крайне слабым отклонением (MIXING_GAIN поднял до 1), в Manual - всё норамльно
2) Газ не работает совсем никак. При подачи газа, в режиме FBWA начинает дёргаться левая серва. Газ не работает ни в ручном режиме, ни в стабилизациию Каналы проверил - и в PX и в передатчике 3-й канал газ.
Летать хочется аж жуть, а тут такая беда.

alexeykozin
  1. а пиды стабилизации настроить?
  2. что пишет в мишен планере при попытке заармить?
    инструкцию хотябы разок пробежали глазами?
Morozyaka

Алексей, спасибо. Инструкцию читал, но далеко не всё понятно. Как оказалось - был включён арминг с пульта, а не по кнопке. Р в увеличил на 1 и вроде норм теперь. Полёт покажет 😁

Glinco

Как связан арминг и дерготня сервы?

Morozyaka

Хотел бы я сам знать, но проблема пропала. Может это как-то связано с малым Р?

Карабас

Теоретический вопросец(наверное Козину). Я заметил, что APM PRO MINI добавляет приличную задержку. В ручном режиме еще куда не шло, а в режиме стабилизаций - рули заметно запаздывают. Так понимаю, что ppm энкодер тоже вносит свою лепту. Если я сразу подам ppm сигнал на Ардупилот, то задержка уменьшится или нет?

alexeykozin

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

ппм энкодер задерживает всего на 1 пятидесятую долю секунды.
некоторые лрс приемопередатчики вносят ощутимую задержку порядка до полсекунды

couger
alexeykozin:

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

Попробовал сброс к дефолтным параметрам, не помогло. Все равно не может считать и отобразить параметры. Решил перезалить прошивку - пишет Error connection - no connection/
Пощел по кругу - залил загрузчик в PPM-encoder, потом прошивку в него. Прошло без ошибок. Потом фьюзы в Мегу 2560 - без ошибок, заливаю загрузчик - выдает ошибку верификации, в статье на apmcopter написано что такое возможно и ничего страшного. Пытаюсь залить прошивку через МP - опять no connection… Все. Здесь мои познания закончились
Я не знаю что с ним еще можно сотворить…

alexeykozin

через авердуде и isp пробовали erase?
навсякий случай проверьте питание что но 5в, пайку кварца.
что бут что пршивка должны шиться без ошибок

couger

Вот как выглядели мои мучения вчера -

Насчет очистки - вот это имелось в виду?

D:\PPM_Boot_FW_Avrdude_USBasp>avrdude -C avrdude.conf -p m2560 -c usbasp -P usb -e

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e9801
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.

avrdude: safemode: Fuses OK

avrdude done. Thank you.

насчет питания 5в - что и где надо проверить? сейчас плата от всего отключена, только USB или программатор подключаю…

Вот вывод avrdude при прошивке фьюзов

D:\2560_Boot_FW_Avrdude_USBasp>avrdude -q -e -C avrdude.conf -p m2560 -c usbasp
-P usb -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m -Ulock:w:0x0F:m

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9801
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: reading input file “0xFD”
avrdude: writing efuse (1 bytes):
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:
avrdude: verifying …
avrdude: 1 bytes of efuse verified
avrdude: reading input file “0xD8”
avrdude: writing hfuse (1 bytes):
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD8:
avrdude: load data hfuse data from input file 0xD8:
avrdude: input file 0xD8 contains 1 bytes
avrdude: reading on-chip hfuse data:
avrdude: verifying …
avrdude: 1 bytes of hfuse verified
avrdude: reading input file “0xFF”
avrdude: writing lfuse (1 bytes):
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:
avrdude: verifying …
avrdude: 1 bytes of lfuse verified
avrdude: reading input file “0x0F”
avrdude: writing lock (1 bytes):
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:
avrdude: verifying …
avrdude: 1 bytes of lock verified

avrdude: safemode: Fuses OK

Вот что пишет при прошивке загрузчика

D:\2560_Boot_FW_Avrdude_USBasp>avrdude -e -C avrdude.conf -p m2560 -c usbasp -P
usb -U flash:w:stk500boot_v2_mega2560.hex

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9801
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: reading input file “stk500boot_v2_mega2560.hex”
avrdude: input file stk500boot_v2_mega2560.hex auto detected as Intel Hex
avrdude: writing flash (262106 bytes):

Writing | ################################################## | 100% 119.40s

avrdude: 262106 bytes of flash written
avrdude: verifying flash memory against stk500boot_v2_mega2560.hex:
avrdude: load data flash data from input file stk500boot_v2_mega2560.hex:
avrdude: input file stk500boot_v2_mega2560.hex auto detected as Intel Hex
avrdude: input file stk500boot_v2_mega2560.hex contains 262106 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 76.56s

avrdude: verifying …
avrdude: verification error, first mismatch at byte 0x1e000
0xff != 0x0d
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done. Thank you.

Может я чтото не так делаю? Но насчет этой ошибки в статье “Прошиваем контроллер APM. Загрузчик” было сказано не напрягаться…

X3_Shim
couger:

Вот как выглядели мои мучения вчера

А у вас 3.3 вольат в порядке ? А то флеш от 3.3 и как то похоже что у вас оно не пашет.

Хотя прошивку то не во внешний флеш пишется. Чет ладно, не буду умничать 😃

Spartak1245
Карабас:

Теоретический вопросец(наверное Козину). Я заметил, что APM PRO MINI добавляет приличную задержку. В ручном режиме еще куда не шло, а в режиме стабилизаций - рули заметно запаздывают. Так понимаю, что ppm энкодер тоже вносит свою лепту. Если я сразу подам ppm сигнал на Ардупилот, то задержка уменьшится или нет?

У меня такая же беда только на канале газа порядка 1.5сек. На сервах не обратил внимание. Тоже интересует вопрос.

couger
X3_Shim:

А у вас 3.3 вольат в порядке ?

Проверил на разьеме I2C - 3.26, верно?

X3_Shim
couger:

Проверил на разьеме I2C - 3.26, верно?

да, все отлично.

alexeykozin

у меня в колекции бутов такая строчка для фьюзов
avrdude -q -C avrdude.conf -p m2560 -c diecimila -P ft0 -b 19200 -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m -Ulock:w:0x0F:m -B 4000

-B 4000 означает низкий бауд
строка прошить бут
avrdude -q -C avrdude.conf -p m2560 -c diecimila -P ft0 -b 57600 -e -V -U flash:w:stk500boot_v2_mega2560.hex

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

X3_Shim:

Хотя прошивку то не во внешний флеш пишется

внешняя датафлешка только для логов и маршрута, параметры в епроме проца

couger
alexeykozin:

у меня в колекции бутов такая строчка для фьюзов

Попробовал, с тем же результатом…фьюзы и бут заливаются, прошивка не хочет, МР ругается “Communication error - no connection”

alexeykozin:

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

А похоже у меня ваш набор - скачивал по ссылке из статьи о прошивке с апмкоптера…дудка там 5.11

Т.е. всё? Бобик сдох?..

Karbafos

Может пропустил. А мишн другой не подтыкали, ну или AP2. Последняя обнова у них глючная какая то.

alexeykozin
couger:

Т.е. всё? Бобик сдох?..

может мультиплексор или с 32 атмегой еще что.
бут льется через ISP а прошива то через сериал.
но дам подсказку: вместо бута можно шить прошиву, она не будет правда обновляться иначе чем через ISP но с этим можно жить.

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

couger
Karbafos:

А мишн другой не подтыкали, ну или AP2.

Опробовал идею. Но,

Теже яйца…кстати, Всех с Пасхой! 😃

alexeykozin:

бут льется через ISP а прошива то через сериал. но дам подсказку: вместо бута можно шить прошиву, она не будет правда обновляться иначе чем через ISP но с этим можно жить.

Т.е. я нахожу прошивку в виде hex, заливаю ее через USBASP через ISP порт в мегу2560, да?

alexeykozin:

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

Извиняюсь, не понял куда подключать тогда телеметрию, что значит напрямую? Кроме того ведь мега32 еще и РРМ декодирует, ну в моем случае SBUS, т.е. если она не работает - значит приемник не подключить?

upd: Попытался залить прошивку через ISP

avrdude -C avrdude.conf -c usbasp -p m2560 -U flash:w:“C:\Users\CFO\Documents\Mission Planner\firmware.hex”:a -e

avrdude.EXE: Device signature = 0x1e9801
avrdude.EXE: erasing chip
avrdude.EXE: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.EXE: reading input file “C:\Users\CFO\Documents\Mission Planner\firmware.hex”
avrdude.EXE: input file C:\Users\CFO\Documents\Mission Planner\firmware.hex auto detected as Intel Hex
avrdude.EXE: writing flash (245062 bytes):

Writing | ################################################## | 100% 99.24s

avrdude.EXE: 245062 bytes of flash written
avrdude.EXE: verifying flash memory against C:\Users\CFO\Documents\Mission Planner\firmware.hex:
avrdude.EXE: load data flash data from input file C:\Users\CFO\Documents\Mission Planner\firmware.hex:
avrdude.EXE: input file C:\Users\CFO\Documents\Mission Planner\firmware.hex auto detected as Intel Hex
avrdude.EXE: input file C:\Users\CFO\Documents\Mission Planner\firmware.hex contains 245062 bytes
avrdude.EXE: reading on-chip flash data:

Reading | ################################################## | 100% 69.78s

avrdude.EXE: verifying …
avrdude.EXE: verification error, first mismatch at byte 0x0001
0x94 != 0x04
avrdude.EXE: verification error; content mismatch

avrdude.EXE: safemode: Fuses OK

avrdude.EXE done. Thank you.

X3_Shim
couger:

Кроме того ведь мега32 еще и РРМ декодирует, ну в моем случае SBUS, т.е. если она не работает - значит приемник не подключить?

PPM можно напрямую на мегу2560, PWM в пролете, sbus видимо тоже.

khomyakk

Читаю документацию по автопилоту.
Режим автовзлёта
Вот цитата из документации
Testing Ground Takeoff in FBWA mode
It is sometimes useful to test the takeoff code using the FBWA flight mode. The way you do this is to set the FBWA_TDRAG_CHAN parameter to an RC input channel on your transmitter for a switch (usually a momentary switch, such as the trainer switch). When this RC channel goes high while you are on the runway waiting for takeoff in FBWA mode the autpilot will check if you have configured the TKOFF_TDRAG_ELEV and TKOFF_TDRAG_SPD1 parameters. If they have been set to non-zero values then the elevator will be controlled in FBWA in an identical manner to how it is controller for an AUTO takeoff. The elevator will go to the TKOFF_TDRAG_ELEV value (usually 100% for a tail dragger) as soon as that RC channel goes high, and will stay there until the aircraft reaches a ground speed of TKOFF_TDRAG_SPD1 meters per second.

This provides a convenient way to test auto takeoff in FBWA mode, and also is a nice way to get better ground steering in FBWA mode in general.

Я так понимаю, что и без автоматического режима, в режиме FBWA можно организовать автовзлёт. Кто-то пользуется? Если можно, подробнее на понятном языке обьяснить?
Я так понимаю, на тумблер назначить канал FBWA_TDRAG_CHAN больше 1700.
Назначить процент TKOFF_TDRAG_ELEV, угол поднятия руля высоты в процентах,
Назначить TKOFF_TDRAG_SPD1, вот здесь до конца не понял.
Газ на полную, кидаем самолёт и он набирает высоту подняв руль высоты на заданный в процентах угол и удерживая самолёт от крена.
То есть обычный FBWA c поднятым РВ ?
Наверно этот режим будет полезен и в полёте для набора высоты-для подьёма на большую высоту, чтобы стиком не пользоваться?