Навигация для Cleanflight'а или CF/iNav

Немного предыстории
Практически с самого начала моего увлечения мультироторами я летаю на Cleanflight. До поры до времени меня всё устраивало, но когда мне надоело летать низко-близко встал вопрос возврата домой (обычного и по отказу РУ). После некоторого ковыряния в коде я решил переделать всю навигацию с нуля.

Так в апреле 2015 года началась работа над проектом Nav-Rewrite (который позже переименовался в iNav).

Главной идеей проекта стало добавление к “официальному” Клинфлайту продвинутой навигации.

Что уже сделано

  • Новые полетные режимы ALTHOLD, POSHOLD и RTH
  • Улучшенная фильтрация гироскопов и акселерометров
  • Новый алгоритм определения положения в пространстве. Точнее и быстрее.
  • Инерциальная навигационная система, дополняющая GPS для большей точности
  • Улучшенная калибровка акселерометра и компаса
  • “Умный” возврат домой, использующий безопасную высоту и умеющий сам посадить аппарат
  • Возврат домой по отказу РУ
  • Автономные миссии по путевым точкам (в процессе разработки)

Что стоит почитать перед тем как прошиться
Калибровка акселерометра
Параметры CLI
Защита от пропаданий GPS
Режимы навигации

Сборки:
github.com/iNavFlight/inav/releases

Документация:
github.com/iNavFlight/inav/wiki

Ветка на RCG:
www.rcgroups.com/forums/showthread.php?t=2495732
Основное обсуждение и отладка идет именно тут.

  • 10271
Comments
Радиомоделист

Очень интерсная и нужная разработка, подписался на RC group

Можаефф

А совсем стабильного кода нет? А то трудно выбрать между совсем нестабильным и более-менее стабильным. 😃

Еще одна большая проблема, это компас. Он стоит на плате и на него идут сильные наводки, единственный вариат, это подключить внешний компас, но на платах Назе это невозможно, потому что невозможно отключить внутренний. Очень не продуманно.
Можно его конечно вырезать, выкусить, выпаять, но хочется, что бы все было по человечески.

jShadow
Можаефф;bt143373

А совсем стабильного кода нет? А то трудно выбрать между совсем нестабильным и более-менее стабильным. 😃

Еще одна большая проблема, это компас. Он стоит на плате и на него идут сильные наводки, единственный вариат, это подключить внешний компас, но на платах Назе это невозможно, потому что невозможно отключить внутренний. Очень не продуманно.
Можно его конечно вырезать, выкусить, выпаять, но хочется, что бы все было по человечески.

Совсем стабильного кода не бывает 😁 Даже NAZA нет-нет, но улетает домой в Китай!

Встроенный компас - зло. С ним нормальную навигацию получить почти нереально, увы. И отключить встроенный компас программно тоже нельзя. Компас “на борту” - это HMC5883L, внешний, обычно, тот же чип, на одной шине их друг от друга не отличить. Есть чип компаса AK8975, который поддерживается Клинфлайтом и продается в виде модуля, например на eBay. Сам я его не пробовал, но, в теории, должен заработать.

jShadow

Коллеги, может быть стоит создать тему в местном форуме для обсуждения?

Можаефф

Вот тут я не могу с вами согласится. Я уверен, что с кодом у Назы все в порядке. При таких колоссальных продажах, у компании достаточно ресурсов, что бы написать безбаговый код. А отсутствие бесконечных обновлений, как у Ардупилота, говорит о том, что они выпускают сразу надежные прошивки. И я уверен, что Наза никуда просто так не улетает, потому что создать условия для улета практически любого контроллера, возможно и без ошибок прошивки.

А вот как раз код, который пишет один человек, заставляет сильно задуматься о его надежности, соответственно использовать его на дорогом коптере несколько рискованно, а дешевых у меня нет. Поэтому ваш проект очень интересен, но какие преимущества он дает перед тем же Ардукоптером, где все уже реализовано и неплохо работает, и нет проблем с отключением компасов?
Учитывая и то, что на мелких коптерах функции GPS тоже не нужны для фристайла и гонок, а там где они нужны, можно использовать Рево, который уже продается по 40$.

jShadow
Можаефф;bt143400

Вот тут я не могу с вами согласится. Я уверен, что с кодом у Назы все в порядке. При таких колоссальных продажах, у компании достаточно ресурсов, что бы написать безбаговый код. А отсутствие бесконечных обновлений, как у Ардупилота, говорит о том, что они выпускают сразу надежные прошивки. И я уверен, что Наза никуда просто так не улетает, потому что создать условия для улета практически любого контроллера, возможно и без ошибок прошивки.

А вот как раз код, который пишет один человек, заставляет сильно задуматься о его надежности, соответственно использовать его на дорогом коптере несколько рискованно, а дешевых у меня нет. Поэтому ваш проект очень интересен, но какие преимущества он дает перед тем же Ардукоптером, где все уже реализовано и неплохо работает, и нет проблем с отключением компасов?
Учитывая и то, что на мелких коптерах функции GPS тоже не нужны для фристайла и гонок, а там где они нужны, можно использовать Рево, который уже продается по 40$.

Никто силой не тянет пробовать, на шибко дорогой коптер можно и MikroKotper-овский контроллер поставить, или WooKong. 😉 Если устраивает APM или REVO - это ж замечательтно! Меня вот не устраивает 😁

Большие ресурсы не помешали DJI выпустить Inspire с ошибками в коде и за год продаж выпускать обновления каждый месяц, а то и чаще, так что дело все-таки не в количестве разработчиков, а в желании поскорее выпустить новый продукт. Для DJI покупатели чего-то нового работают бетатестерами, причем за свои собственные деньги.

По поводу преимуществ моего подхода - тут вопрос исключительно вкуса. Кто-то не хочет заморачиваться и покупает Фантома, кто-то привык к APM. Ну а кто-то хочет полетный софт, который работает на контроллерах от NAZE и CC3D до REVO и Sparky, подходит для коптеров от 150-мм мелочи до метровым октокоптеров. На самолетах, кстати, он тоже работает (правда пока без навигации).

Можаефф

Сама идея этого проекта мне тоже нравится, потому что с удовольствием перешел бы с Маховика на 32 битную платформу, еще и более дешевую. У него, кстати тоже очень хорошо работает удержание высоты.

Но хотелось бы тогда понять, чем ваш подход лучше чем в АПМ и Рево. Железо, по сути, везде одинаковое, и для автономных полетных режимов принципиальная разница в качестве работы, сейчас, только в прошивках.

jShadow
Можаефф;bt143410

Сама идея этого проекта мне тоже нравится, потому что с удовольствием перешел бы с Маховика на 32 битную платформу, еще и более дешевую. У него, кстати тоже очень хорошо работает удержание высоты.

Но хотелось бы тогда понять, чем ваш подход лучше чем в АПМ и Рево. Железо, по сути, везде одинаковое, и для автономных полетных режимов принципиальная разница в качестве работы, сейчас, только в прошивках.

Он не лучше и не хуже, он по своей сути такой же. Полноценная инерциальная навигационная система, выдающая координаты и скорости в пространстве + ПИД-регуляторы для управления газом и креном + конечный автомат для управления всем этим хозяйством. По большому счету разница только в том, что это Клинфлайт 😁

DrSanek

Я правильно понимаю что это всё для коптеров? Давно хочу попробовать клинфлайт, но так и не понял как у него обстоят дела с автовозвратом для самолетов.

jShadow
DrSanek;bt143471

Я правильно понимаю что это всё для коптеров? Давно хочу попробовать клинфлайт, но так и не понял как у него обстоят дела с автовозвратом для самолетов.

Самолетная часть кода сейчас активно допиливается до летающего состояния.

Можаефф

А на SP Pro Racing F3 тоже нет отключения встроенного компаса?

jShadow
Можаефф;bt143563

А на SP Pro Racing F3 тоже нет отключения встроенного компаса?

Увы, тоже нет.
Я вообще разочаровался в SPRF3, и не я один. На RCG куча комментариев об умерших, глючащих с т.д. платах. Я и сам сдуру купил SP RacingF3, уже успел пожалеть. У Гидры проблемы с контролем качества хуже чем у китайцев. Коннекторы криво припаяны, плата зависает, прошивается со 2-3 раза.
Может использовать плату у которой компаса просто нет? Вроде Naze Rev6?

Можаефф

Тогда буду держаться от Спрф3 подальше.
Хорошая идея на счет Назе6. Там только баро стоит совсем мелкий BMP280. Он достаточно хорош?

jShadow
Можаефф;bt143580

Тогда буду держаться от Спрф3 подальше.
Хорошая идея на счет Назе6. Там только баро стоит совсем мелкий BMP280. Он достаточно хорош?

Если честно, я на Назе6 не летал. BMP085 был так себе, BMP180 - получше (на нем сейчас вполне успешно летаю), думаю и BMP280 тоже будет неплохо себя вести. Я обычно беру CC3D, подключаю к нему внешний барометр, компас и GPS и в полет 😃

Можаефф

У таймкопа написано, что этот барометр низкого разрешения. Все же лучше брать с нормальным тогда.

jShadow
Можаефф;bt143586

У таймкопа написано, что этот барометр низкого разрешения. Все же лучше брать с нормальным тогда.

Судя по даташитам “низкого разрешения” BMP280 и “более точный” MS5611 идут ноздря в ноздрю по погрешности:
MS5611 - погрешность 1.5 мбар, разрешение 0.012 мбар
BMP280 - погрешность 1.7 мбар, разрешение 0.0016 мбар

Видимо таймкопу просто нужно продавать более дорогие Naze6 Full 😃

К тому же в полете я полагаюсь больше на акселерометр, барометр нужен только для относительно медленной (ФНЧ=1Гц) коррекции ошибки интегрирования. Я жду плату RMRC DoDo с BMP280, тогда можно будет какие-то практические тесты сравнения BMP180/BMP280/MS5611 провести.

ekuzmi

Константин, сложновато прочитать все обсуждение на английском языке.
Можете описать тут подходящий набор оборудования? Я был уверен, что SP F3 с барометром и магнетометром решит проблему, а тут оказывается, что нет. Может SP F3 Acro, плюс внешний магнетометр, барометр и GPS? А то у Бориса Б. в CC3D уже код для гоночных квадриков не влазит, а тут еще навигация…
Думаю, разумно было бы ограничить для начала варианты оборудования (например, зачем нужен такой контроллер без барометра). Кому интересен проект - купят все нужное, тем более, что это существенно дешевле чем DJI NAZA. Уверен, что DJI можно и нужно обогнать по функциональности, качеству стабилизации и навигации 😃 По стабилизации они уже давно позади проекта Betaflight, полет по точкам у вас уже реализован, осталось совсем чуть чуть.😉

jShadow

Евгений, приветствую!
Магнитометр на борту - источник большинства проблем с навигацией. Варианты железа:

  1. SPRacingF3 Acro + GPS, компас, барометр
  2. RMRC DoDo F3 + GPS, компас (у ДоДо барометр на борту)
  3. Naze32 Rev6 Acro + GPS, компас (тоже барометр на борту, но процессор F1)

С магнитометром на борту тоже можно летать, но нужно очень тщательно продумывать силовую проводку и размещение компонентов. У меня Flip32+ с компасом на борту успешно летает на квадре 650 размера, правда пришлось силовую проводку переделывать раза три 😁

GPS - любой, в т.ч. от NAZA. Лучше Ublox Neo-M8N, он и относительно недорогой и точный. С Neo-6M тоже можно вполне успешно летать, не далее как вчера мне iNav с Neo-6M спас квадр от улета в дальние дали - поймал потерю управления, но возврат домой все сделал как нужно.

С Борисом Б. достаточно тесно работаем и делимся кодом, кое что создавалось для iNav и мигрировало в Betaflight, кое что - наоборот. iNav малость отстает от Betaflight по качеству стабилизации, но это в основном из-за того, что Betaflight работает на 1(2) кГц, а я вынужден мириться с 500 Гц.

DJI с его ценами - в топку!

ekuzmi

Мне кажется, с любого контроллера можно срезать магнетометр (обычно отрезают дорожку питания). А на GPS типа Neo-6M магнитометр есть.
И главный вопрос, оно хоть работает, можно на него цеплять камеру за 1 КБ на подвесе или лучше немного подождать? 😉
Я вижу, что люди летают. Вопрос падают ли?
Я летал сначала на DJI Phantom, не падал, но он улетел 😦 Потом летал на APM и PIXHAWK. Ни тот ни другой не улетел, но падали регулярно, очевидно от этого и не улетели 😃
Точно нужно тему на этом форуме разместить. Народ подтянется! И инструкцию бы на русском языке. Хотя понимаю, что не разорваться…

jShadow
ekuzmi;bt144686

Мне кажется, с любого контроллера можно срезать магнетометр (обычно отрезают дорожку питания). А на GPS типа Neo-6M магнитометр есть.
И главный вопрос, оно хоть работает, можно на него цеплять камеру за 1 КБ на подвесе или лучше немного подождать? 😉
Я вижу, что люди летают. Вопрос падают ли?
Я летал сначала на DJI Phantom, не падал, но он улетел 😦 Потом летал на APM и PIXHAWK. Ни тот ни другой не улетел, но падали регулярно, очевидно от этого и не улетели 😃
Точно нужно тему на этом форуме разместить. Народ подтянется! И инструкцию бы на русском языке. Хотя понимаю, что не разорваться…

Открыл тему тут rcopen.com/forum/f123/topic443443

Я бы пока не стал цеплять 1k$ камеру к iNav, все ж таки экспериментальный код 😁

Хотя если все правильно настроить - все работает и вроде не глючит. Другой вопрос что настройка может потребовать шаманских плясок и бубна!

ViktorSV

подскажите что нужно настроить чтобы коптир удерживал положение и домой возвращался. полетный контроллер sprf3 6dof модуль gps. по радиолинковской телеметрии вижу что ловит от 11 до 12 спутников, координаты виду, скорость вижу, наклоны, дальность. прошивка inav последняя.

fpv_mutant

То же стал осваивать iNav!