Вопросы по iNav
- Есть ли реализация iNav для Linux или другой ОС (ОСРВ)?
Нет. Inav/Betafligth это однопоточная встраиваемая программа для SMT32. Embedded bare application.
- сть ли возможность выполнить какой либо скрипт - Lua, Basic, Python… Типа как Lua в OpenTx?
Нет. Встраивать интерпретатор кода в однопоточную летную программу, работающую на голом железе, это что-то из разряда “безумие и отвага”.
- Или свернуть шею к Ардупилот +NAVIO 2 ?
Можно просто сразу свернуть шею своему самолету. Скоротать путь до креша.
- Например отключить мотор самолета, если и так поднимает термичкой.
Если все так просто, то и доработайте. Код Inav тут, в свободном доступе github.com/iNavFlight/inav Мне даже интересно, как при имеющейся сенсорике (бортовые вольметр, амперметр, датчики линейного и углового ускорений, координат, давления) определить “если и так поднимает термикой”.
Предполагаю, необходим интеллектуальный датчик термики.
Встраивать интерпретатор кода в однопоточную летную программу, работающую на голом железе, это что-то из разряда “безумие и отвага”.
Расскажите это ардупилоту 😄
Расскажите это ардупилоту
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
Программы и операционные системы реального времени поэтому так и называются, потому что каждый кусок алгоритма должен выполняться в строго отведенное ему время, и не более.
Ardupilot построен на базе ChibiOS
Смотря на каком полетнике.
…Смотря на каком полетнике.
Причем здесь полетники
, если дело в реализации используемой RTOS? =)
Понимаю, вам трудно ориентироватся в исходном коде.
Интерграция ChibiOS была начата 2018 году.
$ git log ardupilot/modules/ChibiOS/
commit 6d8d8630bc4afb6106938713c56320b4a3abd3ad
Author: bugobliterator <siddharthbharatpurohit@gmail.com>
Date: Sat Jan 13 04:23:06 2018 +0530
modules: update ChibiOS
commit b8e246f347482517042d61bf00646b242c4e5527
Author: Andrew Tridgell <andrew@tridgell.net>
Date: Fri Jan 5 17:50:07 2018 +1100
added ChibiOS submodule
До релизов 4.x и до сих пор в ветке 3.x используется своя реализация многопоточной операционной системы. К примеру, вы можете увидеть список планируемых заданий для версии 3.8.x github.com/ArduPilot/ardupilot/…/ArduCopter.cpp#L8…
То есть, если поднять историю, то Arducopter строился как много-ниточная система. В отличие от наследников Cleanflight, которые были и отстаются однопотоковыми встраиваемыми программами.
С новым годом всех!!! Счастья, здоровья, чистого неба и мягких посадок!!!
а это тема про айнав или арду?
Всем привет! Подскажите, пожалуйста, собираю квадрокоптер по примеру Юлиана (Череп который), все подключил, но при попытке протестировать моторы оказалось, что один крутиться как положено (цифра 3), два не крутятся вообще (цифры 1 и 4) и один крутиться, но не в ту сторону (цифра 2). Думал, что проблема в моторах, но поменял его с работающим мотором оказалось не так. В чем может быть проблема и как ее выявить? Версия INAV 3.0.2.
Все остальное работает (даже через аппаратуру армиться)
Скорее всего проблема в плате. На всякий случай попробуйте прошить по новой со стиранием памяти, но не восстанавливайте диф или дамп. А по новой настройте. Либо брак самой платы, либо както криво прошивка, либо криво настроили.
На новом регуле без калибровки могут моторы не заработать или неправильно набирать обороты…надо произвести калибровку регулятора оборотов - снимаете пропы, отключаете аккум, подключаете к айнав, во вкладке где проверяете моторы(ваше второе фото) включаете моторы, поднимаете газ бна максимум(100%), и подключаете аккум…коптер попищит или даже изобразит музычку моторами, затем убираете газ в минимум…коптер опять пропищит, это и будет означать, что он определился с газом для моторов, откалибровался…
для регуляторов через dshot калибровка не нужна
тут вопрос скорее в не правильно сборке или настройке. проверьте пайку
и подключаете аккум…коптер попищит
может попищать и подпалить плату, сперва акб подключаем потом уже к компу. Риск есть поджечь если сперва к компу, а потом акб.
Да, точно, по этому протоколу калибровка не нужна…
при калибровке именно подключается сначала к компу, и только после выставления газа к аккуму…
Попробовал, подключил к компу, выставил газ на максимум включил аккум, пискнул один раз регуль, моторы молчали. Убрал газ в нуль, пискнул еще раз регуль. При увеличении газа закрутилось все как и раньше. Тоже думал, что проблема в пайке (только второй коптер собираю), но если менять местами моторы ситуация не меняется: на тех же местах все крутиться
а ВЫ точно правильно сделали, выбрали пресет потом добавили в миксерах моторы? и еще настройки свои добавляли или чужие загружали?
Проверьте моторы в Blheli конфигураторе
Смотрел видео Юлиана и настраивал по его инструкциям. На вкладку “Preset” от не заходил. Когда подключил пустой контроллер INAV предложил выбрать тип, я отказался и оставил как есть, перешел на вкладку “Mixer”, платформу выбрал “Multirotor”, в миксере “Quad X”, нажал на “Save and Reboot”. Все остальное после перезагрузки подтянулось само. В “Outputs” поменял с “Multishot” на “DSHOT 600” для ESC протокола. Пробовал вернуть обратно - тоже не помогло
Подключил питание к коптеру, но в главном окне ничего не изменилось - так и пишет, чтобы подключили питание к ESC
фото пайки и подключения сделайте регуля к полетнику
Версия конфигуратора и прошивки одинаковая? Если разная, то могут быть проблемы.