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

Fisher15
tuskan:

Сомневаюсь, что этот способ поможет…
При включении пито делается следующее:

set rssi_adc_channel=0 – disable RSSI ADC
set airspeed_adc_channel=3 – map ADC channel 3 to airspeed sensor
set pitot_hardware=ADC – enable analog pitot tube

RSSI ADC отключается вероятнее всего со всеми своими RSSI_SCALE

Искал информацию по вопросу калибровки для аналога - ничего не нашел. Айртубе у меня заметно занижает (на 10-20% от гпс).
Есть мысли откорректировать сам электрический сигнал с датчика - либо подстроечник вместо выходного делителя на выходе датчика, либо между датчиком контроллером поставить платку с операционным усилителем и подстроечником, меняющим коэф. усиления. Буду пробовать.

tuskan
Fisher15:

Сомневаюсь, что этот способ поможет… При включении пито делается следующее:

с телефона было трудно выписывать, это был намек.
вот намек потолще 😃

github.com/iNavFlight/inav/blob/…/pitotmeter.h

HardRock

На самом деле вся полезная информация тут:
github.com/iNavFlight/inav/blob/…/pitotmeter.c

Если конкретно то:


src/main/sensors/pitotmeter.c:    .pitot_scale = 1.00f
src/main/sensors/pitotmeter.c:        // It also allows us to use pitot_scale to calibrate the dynamic pressure sensor scale
src/main/sensors/pitotmeter.c:        const float indicatedAirspeed_tmp = pitotmeterConfig()->pitot_scale * sqrtf(2.0f * fabsf(pitotPressure - pitotPressureZero) / AIR_DENSITY_SEA_LEVEL_15C);
src/main/sensors/pitotmeter.h:    float pitot_scale;                      // scale value

Там же параметры окружающей среды:


#define AIR_DENSITY_SEA_LEVEL_15C   1.225f      // Air density at sea level and 15 degrees Celsius
#define AIR_GAS_CONST               287.1f      //  J / (kg * K)
#define P0                          101325.0f   // standard pressure

Проще говоря, настроить корректировку программно нельзя. Зашито значение единица.
Это значит что для калибровки нужно пересобирать прошивку либо делать делитель на подстроечном резисторе.

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

Воздушная скорость на самолёте для автоматической навигации - не особо нужно (только чтобы не свалиться по ветру), наверно поэтому её вяло внедряют, а вот для полёта и особенно посадки - очень нужно.
Например у меня посадочная скорость условно 35 км/ч. При заходе с одной стороны GPS показывает 55 км/ч , а с другой 20 км/ч. Вопрос - какая моя реальная воздушная скорость в конкретный момент? Скорость GPS она ещё и тормозить может и прыгать… Особого доверия к винд эстиматору нет, он больше похож на показометр чем на индикатор + ветер на разных высотах разный.
Поэтому сейчас большинство наверно сажают самолёт “по ощущениям”, а не по приборам.

Olegfpv

Сажать самолет по ощущениям это действительно мощно сказано. Вы по серьезнее модель возьмите и посадите ее по ощущениям на впп . Где вобще газ нужно до 30-40% давать перед выравниванием что бы не завалить . Не знаю как на айнав и почему там тормозит жпс скорость . У меня на fy41 четко что жпс что воздушная плавно и очень чутко отображают свое значение. Самолет вобще на посадке срывной и запросто то козла словит то на морду упадет раньше времени. С воздушной скоростью я по ветру посажу не обронив его и есть примеры. Так что воздушная скорость нужна для тех кто понимает суть полета. Может мелкому крылу это как зайцу стоп сигнал. Там что на 35 что на 50км плюхать в траву.

Serpent

Вообще то iNav рождался как расширенная версия бюджетного автопилота. Весь комплекс задумывался как развитие уже существующих с добавкой навигации при стоимости в районе 40-60 баксов, а после падения цен (и при использовании китайских клонов) цена комплекта снизилась аж до 25-40 баксов.
А вы рассуждаете так, как будто на iNav_е собираетесь автоматизировать удержание глиссады для джета со взлётным весом килограмм в 15 и обижаетесь, что автор не обеспечил всем необходимым для этого инструментарием…
Надо быть всё таки реалистом, есть для подобного контроллеры иного уровня и цены. Хотя бы Питлаб посмотрите.

HardRock

Согласен, но у iNav хорошие перспективы, а его функционал уже перекрывает большинство хоббийных требований.

Serpent

Перспективы может и хорошие, только вот то памяти становится мало, то портов не хватает.
Каждому овощу - своя грядка!
Константин создал действительно отличный продукт, спасибо ему за это, но не надо хотеть слишком многого…

ВаликО
Serpent:

Думаю что всё таки сбой был, скорее всего по питанию, а потом он решил, что есть новая точка старта…
Удастся найти - смотрите логи.

Каким-то невероятным чудом по среди леса через неделю нашли борт. Причина падения: на высоте 400м был сильный ветер (пилот не я:) ), на удалении в 2км RTH с пульта -> расстояние до дома увеличивается и INAV переходит в аварийный режим посадки -> пока пилот понял что к чему сдуло +2км итого 4км, -> передергиваеим RTH с пульта на высоте 160м (ветер намного меньше) -> борт выходит на курс, но не дотягивает по АКБ.
Про краш наверно пишу не в этой ветке вы уж простите.

Serpent
ВаликО:

невероятным чудом по среди леса через неделю нашли борт

Поздравляю!
Повезло.

TrueMuMa
ВаликО:

на удалении в 2км RTH с пульта -> расстояние до дома увеличивается и INAV переходит в аварийный режим посадки

А почему айнав не увеличил газ чтобы лететь с положительной скоростю? Или был настолько сильный ветер что самолёт на полном газу не справлялся?

valera1984
HardRock:

На самом деле вся полезная информация тут:
github.com/iNavFlight/inav/blob/…/pitotmeter.c

Если конкретно то:


src/main/sensors/pitotmeter.c:    .pitot_scale = 1.00f
src/main/sensors/pitotmeter.c:        // It also allows us to use pitot_scale to calibrate the dynamic pressure sensor scale
src/main/sensors/pitotmeter.c:        const float indicatedAirspeed_tmp = pitotmeterConfig()->pitot_scale * sqrtf(2.0f * fabsf(pitotPressure - pitotPressureZero) / AIR_DENSITY_SEA_LEVEL_15C);
src/main/sensors/pitotmeter.h:    float pitot_scale;                      // scale value

Там же параметры окружающей среды:


#define AIR_DENSITY_SEA_LEVEL_15C   1.225f      // Air density at sea level and 15 degrees Celsius
#define AIR_GAS_CONST               287.1f      //  J / (kg * K)
#define P0                          101325.0f   // standard pressure

Проще говоря, настроить корректировку программно нельзя. Зашито значение единица.
Это значит что для калибровки нужно пересобирать прошивку либо делать делитель на подстроечном резисторе.

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

Воздушная скорость на самолёте для автоматической навигации - не особо нужно (только чтобы не свалиться по ветру), наверно поэтому её вяло внедряют, а вот для полёта и особенно посадки - очень нужно.
Например у меня посадочная скорость условно 35 км/ч. При заходе с одной стороны GPS показывает 55 км/ч , а с другой 20 км/ч. Вопрос - какая моя реальная воздушная скорость в конкретный момент? Скорость GPS она ещё и тормозить может и прыгать… Особого доверия к винд эстиматору нет, он больше похож на показометр чем на индикатор + ветер на разных высотах разный.
Поэтому сейчас большинство наверно сажают самолёт “по ощущениям”, а не по приборам.

а не проще цифровой датчик поставить

ru.aliexpress.com/item/…/32861712988.html?algo_pvi…

valera1984
ВаликО:

INAV как то учитывает скорость воздушного потока или это для себя?

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

PavelKa
valera1984:

а не проще цифровой датчик поставить

Уважаемый, пожалуйста, в другой раз не цитируйте излишне сообщения. Это Оверквотинг. Затрудняет понимание и нахождение сообщений. Запрещен во многих форумах.

HardRock
valera1984:

а не проще цифровой датчик поставить

Не проще и дешевле.
Весь комплект (трубка, шланг, датчик) на аналоговом стоит 1500, а цифровой один только стоит 2500. Учитывая как он используется в iNav - не имеет смысла.

HardRock

Есть другая трубка, она чуть дороже стоит, плюс если не бесплатную доставку выбирать (чтобы трекилось и ехало быстрее). Вобщем в пределах 1500р, но это никак не 3тр+ за цифровой. Для этого автопилота не имеет смысла.

www.aliexpress.com/item/…/32623711984.html?aff_fci…

Fisher15

Я выбирал между цифрой и аналогом… После того, как не нашел информацию о методике калибровки - заказал аналог. Калибровку аналога можно сделать вне полетника, пропустив сигнал через операционный усилитель (можно сделать что угодно - сдвиг, экспонента, коэф и тд.), возможно даже делителя банального хватит вместо ОУ - выход датчика 0-5 вольт, а вход на контроллере 0-3,3 вольта.
У кого не кривые руки - могут заказать датчик отдельно, он 500-600 р стоит, а трубку пито сделать самому.
ru.aliexpress.com/item/…/32826319846.html?algo_exp…
ru.aliexpress.com/item/…/32841915623.html?algo_pvi…
www.nxp.com/docs/en/data-sheet/MPXV7002.pdf
rcopen.com/blogs/39181/15473

Sensorisis

Может кто сталкивался, есть небольшая но неприятная проблема. В наличии r9 и r9mm, matek 405ctr inav 2.0, turnigy 9xrpro на optx 2.2.2. суть в чем. Имеем данные жпс на осд и данные жпс телеметрии на аппе. Проблема в том что они не совпадают. Точнее ошибка на телеметрии после первых 2 цифр. Местоположение вроде и верное но в нескольких километрах от того что показывает осд. На осд местоположение верное

karabasus
Sensorisis:

сть небольшая но неприятная проблема.

Так это же не ошибка, а отображение по разному. В осд градусы и десятичные знаки, а в opentx градусы, минуты и десятичные минут.

Sensorisis

Не подскажете, что мне нужно сделать чтобы бы все показатели совпадали?