Вопросы по iNav

rc468
schs:

по увеличению высоты

Как он отличает его от простого увеличения высоты?
Вот например коптер увеличивает высоту
Контроллер это видит и снижает тягу на винтах
Высота перестает увеличиваться
Контроллеру все равно, там термик или не термик, правильно?
Если высота увеличиваться не перестает, что происходит? Тяга снижается еще больше, вплоть до минимальной.
Тут мы и приходим к stop motors on low throttle. Или, если это не работает, то тупо ставим min throttle = 0 и моторы останавливаются сами.

EHOT

коптерам этот режим не грозит. Можно “откалибровать” количество “газа” в нетермичную погоду, когда борт летит без снижения высоты, точнее говоря - с нулевой вертикальной скоростью.
тут мнесколько факторов, в том числе и аэродинамическое качество планирования.
если надо поенять - поднимает ли борт термичкой ли мотором - устанавливаем газ в подобранное ранее значение - и определяем как изменяется высота.
Снижаемся, “тапкавпол” - летим дальше.
Но можно откалибравать и в более щиром диапазоне. Построить зависимость набора высоты от количества газа. Кивая это получится или линейный график дело второе. Ключевое - то что построена зависимость в безтермичную погоду.
Теперь если в штатном полете при определенном количестве газа - мы делаем поправку на вертикальную скорость по построенной зависимости.

Но все это оффтоп.
Меня интересует - как прикрутить СВОЙ скрипт в обработку текущих параметров полета и выдаче управляющих воздекйствий на члены управления?
В Ardupilot это можно сделать.
Дальше продолжать?

kasatka60
EHOT:

В Ardupilot это можно сделать.
Дальше продолжать?

Тут давно на это намекают.

rc468
EHOT:

если надо поенять - поднимает ли борт термичкой ли мотором

А вот зачем это понимать? Задача в приципе какая стоит - чтобы борт не поднимался? Для этого используется тяга моторов? Снижение тяги приводит к прекращению подъема? Тогда какая разница, чем он поднимается?

EHOT

Задача конкретная - иметь возможность выполнить скрипт под текущие нужды без модификации прошивки тчк

rc468

Про задачу понятно 😃 вопрос отдельный

schs
rc468:

Вот например коптер увеличивает высоту

Для коптера парения в термиках нет, насколько мне известно.

rc468:

Контроллеру все равно, там термик или не термик, правильно?

обрабатываюся многие параметры. Можете почитать в документации подробнее.
ardupilot.org/plane/docs/soaring.html

rc468
schs:

обрабатываюся многие параметры. Можете почитать в документации подробнее.

подробнее там, если в итоге, то срабатывает тупо по параметрам высоты.
ну вот реально тупо - SOAR_ALT_MIN, SOAR_ALT_MAX и SOAR_ALT_CUTOFF.
вот и вопрос - зачем тогда все остальное.
высота падает - включаем тягу
высота растет - выключаем тягу
по какой причине растет или падает высота - какая разница?

shakalby

подскажите как добавить пресеты по этой ссылке? есть статья ?
Rate Dynamics где найти такой пункт?
команды писать в CLI консоле?

Koloboff

Ссылка на эмуфлайт. При чем здесь айнав?

shakalby

github.com/iNavFlight/inav/releases листайте в низ до Оценить динамику
Релизы кто ни будь читает изменения)))?

летал на новой прошивке 7 дюймовый, на 4 айнаве последнем, при подлете к дому, точнее к стене дрон тянет в стену. раньше такого не было( тоесть он сильно гуляет по навигации режиму на метр - два его носит медленно. Что то они там намудрили с нави режимами

kasatka60

Собирай логи и пиши разрабам, пусть правят.

shakalby

кто ни будь ставил сонар или датчик лидара???
как они работают на препятствие ???

EHOT

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

R0K

Использую попроше VL53L0X на своём экранопланчике.Над водой утромболее или менее, когда солнце, то проблемы. Вот американец использует

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

shakalby

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

SadSoldier
EHOT:
  • Есть ли реализация iNav для Linux или другой ОС (ОСРВ)?

Нет. Inav/Betafligth это однопоточная встраиваемая программа для SMT32. Embedded bare application.

EHOT:
  • сть ли возможность выполнить какой либо скрипт - Lua, Basic, Python… Типа как Lua в OpenTx?

Нет. Встраивать интерпретатор кода в однопоточную летную программу, работающую на голом железе, это что-то из разряда “безумие и отвага”.

EHOT:
  • Или свернуть шею к Ардупилот +NAVIO 2 ?

Можно просто сразу свернуть шею своему самолету. Скоротать путь до креша.

EHOT:
  • Например отключить мотор самолета, если и так поднимает термичкой.

Если все так просто, то и доработайте. Код Inav тут, в свободном доступе github.com/iNavFlight/inav Мне даже интересно, как при имеющейся сенсорике (бортовые вольметр, амперметр, датчики линейного и углового ускорений, координат, давления) определить “если и так поднимает термикой”.

Предполагаю, необходим интеллектуальный датчик термики.

Koloboff
SadSoldier:

Встраивать интерпретатор кода в однопоточную летную программу, работающую на голом железе, это что-то из разряда “безумие и отвага”.

Расскажите это ардупилоту 😄

SadSoldier
Koloboff:

Расскажите это ардупилоту

Ardupilot построен на базе ChibiOS

ChibiOS/RT — компактная многозадачная операционная система реального времени (ОСРВ) для встроенных систем. Данная ОСРВ характеризуется высокой мобильностью, маленьким объёмом и, в основном, по своей архитектуре оптимизирована для чрезвычайно эффективного переключения между задачами.

В ней множество потоков исполнения, переключаемых планировщиком потоков-заданий

    xTaskCreate(_timer_thread, "APM_TIMER", TIMER_SS, this, TIMER_PRIO, &_timer_task_handle);
    xTaskCreate(_rcout_thread, "APM_RCOUT", RCOUT_SS, this, RCOUT_PRIO, &_rcout_task_handle);
    xTaskCreate(_rcin_thread, "APM_RCIN", RCIN_SS, this, RCIN_PRIO, &_rcin_task_handle);
    xTaskCreate(_uart_thread, "APM_UART", UART_SS, this, UART_PRIO, &_uart_task_handle);
    xTaskCreate(_io_thread, "APM_IO", IO_SS, this, IO_PRIO, &_io_task_handle);
    xTaskCreate(_storage_thread, "APM_STORAGE", STORAGE_SS, this, STORAGE_PRIO, &_storage_task_handle); //no actual flash writes without this, storage kinda appears to work, but does an erase on every boot and params don't persist over reset etc.

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

Inav/Betaflight/Emuflight и прочие наследники Cleanflight это однониточная программы. Один поток команд в цикле. Если что-то заблокирует этот поток, даже будет придерживать этот поток на несколько циклов обработки данных с сенсоров, то летная система в общем случае итого рухнет в последнем состоянии. Что, кстати, иногда и происходит, по разным причинам.

PS

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