Вопросы по iNav

Talentfrei

Переставил на nav_user_control_mode=CRUISE и nav_manual_speed=300 и все стало чудненко !!!

lokanaft

RTL как то странно работает, если отлететь метров на 30 на высоте трёх метров, то взлетает на 10 метров и идёт строго к месту взлёта по линии с такой скоростью, что я даже не решился это досмотреть ни разу) Если подальше и повыше то лучше, но очень сильно дёргает в обратку и мгновенно вращает курс, потом идёт со снижением, но метров до 15 к точке взлёта и снижается также быстро до самого конца, но один раз всё таки притормозил в двух метрах.
На апм это выглядит так, что
сначала он более менее останавливается,
поднимается до 15м - зависит от настройки, обратно не спускается до самого конца,
в новых прошивках уже можно ввести цифру, на сколько ему подняться перед обратным путём чисто визуально против дёрганья в обратку, можно 0 оставить,
начинает путь назад медленно вращаясь на курс, либо как был остаётся - от настройки,
спускается с заданной скоростью и в 5 метрах начинает спускаться ну очень медленно.

mahowik
jShadow:

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

jShadow:

У APM логика такая же как у меня - считается ожидаемая точка остановки, а вот PX4 оттормаживается, а только потом захватывает позицию.

Ну так, если компас врет, то и расчет точки останова будет не верным по идее + как мне кажется это совсем не тривиальная задача сделать подобный правильный расчет, т.е. зависит от конфигурации дрона, пидов + внешних условий. Можно конечно программно задавать желаемoe ускорение торможения дрона (т.е. target acceleration и полагать что он выполнил этот таск), но это такой же фейк в итоге 😃 Не знаю, не смотрел как это сделано у тебя, в апм и пиксе, т.е. всего лишь мысли…

У меня в текущей имплементации, ИНС используется только для удержания позиции, т.к. остальным режимам типа полет по точкам и возврат домой сантиметровая точность не нужна (возможно пересмотрю это на след-й релиз). Но появляется ограничение, когда в момент активации удержания позиции стартует ИНС и приходится брать сырые гпс координаты в качестве точки удержания. И если коптер двигается с приличной скоростью, то сырые гпс координаты заметно отстают. Соот-но нужна компенсация. Варианта два и оба простые:

  1. врубаем торможение по скорости на 1-2 сек, далее делаем захват точки с удержанием
  2. врубаем торможение по скорости до определенного порога (например 1м/с), далее делаем захват точки с удержанием

upd: rcopen.com/forum/f134/topic224458/6330

karabasus

Спасибо Константин (jShadow) за прошивку и за советы, удалось сегодня прошить и настроить Taulabs Sparky 1 , из сложностей только один момент был - решил не использовать внутренний компас (гулял ± 5-7 градусов), а прицепить внешний, заодно с GPS такой banggood.com/UBLOX-NEO-M8N-BN-880-Flight-Control-G… но на плате нет разъёма i2c для компаса пришлось запаивать в переходные отверстия (в родной прошивке от Taulabs есть возможность переназначить flexi порт). Дома всё работает отлично-летает лучше чем с прошивкой от taulabs - в поле попробую позже. (Ну и не забывать про ориентацию внешнего компаса)

jShadow
lokanaft:

Вот лог: lokanaft.ru/blackbox_log_2016-04-14_190341.TXT

Висел просто на месте пытался держать.

Проблема в том, что с этими настройками

set nav_use_midthr_for_althold = ON
set alt_hold_deadband = 50

надо довольно точно попасть в середину газа чтобы поймать “висение”. Как только это удалось (~2:40 по времени ПК) - висит хорошо, дрейф высоты минимальный.

При таком низком газе висения (20%) лучше выставить set nav_mc_hover_thr=1170, включить альтхолд сразу после арминга (до взлета), и взлетать уже с удержанием.

Ну или сделать

set nav_use_midthr_for_althold = OFF

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

ashtuchkin:

Сейчас думаю начать с того, чтобы эмулировать GPS формат и просто передавать коптеру текущее положение (как я понимаю там точность 1/10^7 градуса долготы/широты => 1.1 см), а далее просто использовать RTH.

Да, это самый простой вариант.

lokanaft:

RTL как то странно работает

Надо смотреть логи.

lokanaft:

на 30 на высоте трёх метров, то взлетает на 10 метров и идёт строго к месту взлёта по линии с такой скоростью, что я даже не решился это досмотреть ни разу) Если подальше и повыше то лучше, но очень сильно дёргает в обратку и мгновенно вращает курс, потом идёт со снижением, но метров до 15 к точке взлёта и снижается также быстро до самого конца, но один раз всё таки притормозил в двух метрах.

Проблема в том, что удержание направления (MAG HOLD) пока сильно зависит от “set rc_rate = 90”. Отсюда и очень агрессивное дерганье по курсу. Я об этом глюке знаю и он обязательно будет поправлен!

Скорость возврата определяется set nav_max_speed = 300 - это 3м/с. Можно зажать до 100 (1 м/с), тогда возврат будет медленный и печальный.
То же самое посадка: set nav_landing_speed = 200 (2 м/с).

karabasus:

Спасибо Константин (jShadow) за прошивку и за советы, удалось сегодня прошить и настроить Taulabs Sparky 1 , из сложностей только один момент был - решил не использовать внутренний компас (гулял ± 5-7 градусов), а прицепить внешний, заодно с GPS такой www.banggood.com/UBLOX-NEO-M8...p-971082.html? но на плате нет разъёма i2c для компаса пришлось запаивать в переходные отверстия (в родной прошивке от Taulabs есть возможность переназначить flexi порт). Дома всё работает отлично-летает лучше чем с прошивкой от taulabs - в поле попробую позже. (Ну и не забывать про ориентацию внешнего компаса)

Пиды настраивали или так полетело? Уже не первый раз слышу, что INAV летает лучше OpenPilot/Taulabs 😃

mahowik:

Ну так, если компас врет, то и расчет точки останова будет не верным по идее + как мне кажется это совсем не тривиальная задача сделать подобный правильный расчет, т.е. зависит от конфигурации дрона, пидов + внешних условий. Можно конечно программно задавать желаемoe ускорение торможения дрона (т.е. target acceleration и полагать что он выполнил этот таск), но это такой же фейк в итоге Не знаю, не смотрел как это сделано у тебя, в апм и пиксе, т.е. всего лишь мысли…

Вот я и в раздумьях, как сделать. Пока меня устраивает как есть, думаю к версии 1.2 буду допиливать.

Talentfrei

Мне пришлось на обоих квадриках пиды настраивать. Причем P на обоих двойной, I на обоих в половину меньше, D на одном в два раза больше, на другом почти в три!

karabasus
jShadow:

Пиды настраивали или так полетело? Уже не первый раз слышу, что INAV летает лучше OpenPilot/Taulabs

Пока не подстраивал - так полетел, на дефолтных (рама ZMR250). Сейчас поеду в поле, испытаю с ветром. Заодно и Poshold и возврат. Ну и самолетик возьму мелкий (mini sky walker) на него тоже поставил openpilot CC3d с прошивкой inav.

lokanaft
jShadow:

Скорость возврата определяется set nav_max_speed = 300 - это 3м/с. Можно зажать до 100 (1 м/с), тогда возврат будет медленный и печальный.

Ну это нормально, только вот он летел непосредственно в точку на земле, а не на высоте 15м.

jShadow
karabasus:

Пока не подстраивал - так полетел, на дефолтных (рама ZMR250). Сейчас поеду в поле, испытаю с ветром. Заодно и Poshold и возврат. Ну и самолетик возьму мелкий (mini sky walker) на него тоже поставил openpilot CC3d с прошивкой inav.

Отпишитесь по результату, мне очень интересно как Sparky у вас полетит 😃

lokanaft:

Ну это нормально, только вот он летел непосредственно в точку на земле, а не на высоте 15м.

Вот я и говорю - нужны логи 😃

lokanaft

Хочу сейчас на крыле с cc3d и gps с компасом попробовать. Для этой сборки нужны какие то особые указания или можно откалибровать аксель и компас и можно в тучу?

jShadow
lokanaft:

Хочу сейчас на крыле с cc3d и gps с компасом попробовать. Для этой сборки нужны какие то особые указания или можно откалибровать аксель и компас и можно в тучу?

Самолетный код сильно не отлажен пока. Особенно ПИДы требуют доводки - умолчания на самолетах работают плохо. Надо быть готовым в любой момент перехватить управление и “спасать” самолет руками.

Да, еще желательно использовать собственную сборку из исходника - я не далее как час назад поправил серьезную ошибку в коде контроллера позиции (используется RTH/PH), после фикса код еще не тестировался.

Talentfrei

Мои PID на ZMR 250
set p_pitch = 105
set i_pitch = 20
set d_pitch = 150
set p_roll = 95
set i_roll = 20
set d_roll = 130
set p_yaw = 110
set i_yaw = 50
set d_yaw = 0
set p_level = 160
set i_level = 10
set d_level = 75

jShadow
Talentfrei:

Мои PID на ZMR 250

Ничего себе! Многовато и P и D на питче и ролле. Либо это 3S сетап на очень тяжелом квадрике, либо квадрик в полете вибрирует с дикой частотой (впрочем это не мешает INAV летать и даже правильно считать навигацию)

Talentfrei

Это 3S и пропеллеры 6х4 И ничего не вибрирует

jShadow
Talentfrei:

Это 3S и пропеллеры 6х4

А моторы? Такие дикие коэффициенты у меня только на 450 квадре с моторами 920кв и пропами 10x4.5. Вся мелочь летает с гораздо меньшими коэффициентами.

Talentfrei

DYS 1806 2300KV

Единственное при посадке на асфальт прыгаед…

jShadow
Talentfrei:

DYS 1806 2300KV

Похоже пропеллеры слишком тяжелые для этих моторов. Я похожее видел с 1806 + 5x4.5 пропами. Инерция большая, крутящий момент мотора маленький, быстро менять скорость вращения не получается, приходится очень сильно менять управление не моторах чтобы хоть моторы успевали реагировать. С более легкими пропеллерами или более мощными моторами (2204 или 2205) он полетит лучше 😁

karabasus

В общем пришел я с поля - погода правда подкачала - ветер поднялся до 12м/с. В Angle режиме летает отлично . В NAV althold при полете вперед теряет высоту, при полете назад так же набирает (баро закрыт поролонкой), на месте висит без изменения высоты. А вот режимы Nav poshold и NAVRTH не получилось проверить - с компасом я чтото намудрил. Вроде как установил для модуля BN-880 align_mag = CW0FLIP
(установив дополнительно mag_declination = 1010 (вроде как для моей локации 10.1 градусов)). Но работает некорректно. Коптер унитазит по большому кругу и затем резко начинает улетать. Буду разбиратся.

karabasus

Сейчас обратил внимание, что ещё странно - при выборе родного компаса - set mag_hardware=0, показывает стороны света верно только при установке align_mag = CW270FLIP, при align_mag = DEFAULT показания сдвигаются на 90 градусов

Talentfrei

Поставил карбоновые трех лопастные 5x4 вот результат.
set p_pitch = 65
set i_pitch = 20
set d_pitch = 110
set p_roll = 55
set i_roll = 20
set d_roll = 100

Летает правда вроде лучше. На асфальте больше не прыгает.