OpenPilot and CopterControl

openpilot
AlcoNaft43:

У проекта две проблемы:

Абсолютно согласен с первой проблемой: разработчиков не хватает, тем более, что сейчас по ряду причин два разработчика GCS не могут уделять достаточно времени проекту. Потому везде подчеркивается: “Get involved”, “Подключайтесь и помогайте проекту, если он вам нравится”. В этом плане нельзя не поблагодарить несколько русскоязычных участников (двое из них присутствуют в этой ветке): Сергея (большой FPV трикоптер) и Андрея (FPV самолет) с Украины, помогающих тестировать и оптимизировать настройки, и Дмитрия из России, который очень активно помогает в работе над симуляционным проектом в ожидании железа.

Мы были бы рады, если бы к работе над проектом подключились и другие талантливые разработчики, например, тот же Олег Syberian.

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

В данное время платы в производстве на выходе и их будет много. Цель проекта - чтобы они всегда были в наличии. Так что второй проблемы, я бы сказал, не существует. Или, точнее говоря, не будет существовать очень скоро.

Ну и, чтобы не быть голословным, я надеюсь, Дмитрий не будет возражать, если я продублирую тут его замечательное видео SiTL симуляции. На нем прошивка OpenPilot, скомпилированная для PC, управляет симулированным же самолетом в симуляторе. Железа нет вообще, исключительно симуляция. За подробностями отсылаю на форумы OpenPilot, где его работа описана более подробно. Спасибо, Дмитрий!

serj

Что-то я не понял- а компас-то там есть?
Тим говорил, что нету… Как же коптер без компаса стабилизируется? Также, на видео в 6.39 видна интересная фишка… может, она Fligh Gear-ная , а может и нет… но мнгновеный переворот по крену на 90 градусах тангажа недвусмысленно намекает на эйлеровский базис (как следствие отсутствия кватернионов) или полной неадекватности модели… 😃

AlcoNaft43
serj:

Что-то я не понял- а компас-то там есть? Тим говорил, что нету… Как же коптер без компаса стабилизируется?

Компас планируется в полной версии OpenPilot, где для задачи определения положения в пространстве будет отдельная плата. Для задач именно “стабилизации” коптера, самолета и вертолета компас не нужен. Ухода по Yaw практически нет и так.

openpilot
serj:

Что-то я не понял- а компас-то там есть?
Тим говорил, что нету… Как же коптер без компаса стабилизируется?

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

Полный вариант называется OpenPilot Pro/INS и включает в себя все, но в природе существует только несколько рабочих прототипов. Потому о нем говорить рано.

И есть также урезанная версия называемся CopterControl. Она задумывалась только как стабилизатор без функций удержания и навигации. В ней нет компаса, у нее своя ниша и свое назначение.

Тем не менее, несмотря на четкое разделение двух продуктов ввиду не совсем правильного исходно названия продукта OpenPilot (приставка Pro/INS появилась позже), все ожидают от CC функциональности Pro или считают, что это есть основная плата, а компасы и прочее выйдет как дополнение. Нет, это разные продукты, но СС использует 95% исходного кода полного OP.

Потому у меня в руках сейчас уже находится небольшая (14x14мм) плата с барометром и магнетометрами, подключаемая к CC по I2C. С ней + GPS можно будет выполнять функции удержания позиции и на коптерах. Но пока нет разработчика, кто бы написал (или запустил код OP Pro) для нее на CC. Это не является приоритетной задачей для разработчиков проекта, но это возможно силами новых участников.

Но все же повторю, что CC не задумывался как основная платформа - это побочный продукт для своей ниши (хотя и достаточно функциональный для своей цены). Он не конкурирует с Mikrokopter, например, иначе при доращивании его он станет таким же монстром, как и MK с кучей плат и за уши притянутыми интерфейсами типа роутинга serial через Navi c FC. Это возможно, но нецелесообразно. Лучше дождаться основного продукта.

HikeR
serj:

Также, на видео в 6.39 видна интересная фишка… может, она Fligh Gear-ная , а может и нет… но мнгновеный переворот по крену на 90 градусах тангажа недвусмысленно намекает на эйлеровский базис

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

потом, наверное не крен Вы имели ввиду, а тангаж, ну так тут все просто. работал режим Rate, на полное отклонение РУС-а “электроника” отреагировала как и должна, согласно заданным максимальным угловым скоростям. а если вы все-таки имели ввиду крен, то это просто внешняя камера слишком резко перевернулась.

а вот в этом видео действительно нет кватерионов ;) тогда еще не дошел до передачи их из симулятора, посчитал что достаточно только угловых положений. но прошивке нужны не сырые, а уже обработанные данные, которых и не было. но это влияет только на режим выравнивания по горизонту, которого в видео не представлено. на текущий момент оба режима я таки запустил, дело действительно в отсутсвии необходимых цифр.
кстати, если в полете какая-то часть данных пропадает, то прошивка ведет себя на удивление адекватно, с ума не сходит и самолет в землю не вгоняет. я пытался максимально достоверно имитировать обмен инфой, цифры от GPS-а идут с частотой 5-10Гц, гироскопы и акселеометры пулеметят 60 раз в секунду, датчики давления и воздушной скорости 2-3 раза в секунду. и получилось так, что вместо высоты пошли пакеты с угловыми скоростями (мой косяк), прошивка как-то выключила сбоящие модули и далее полет шел походу только по GPS. поэтому идеально ровный полет превратился в змею, но итоговый курс не поменялся. кстати, магнитные датчики в програмной симуляции отключены, видимо потому что сим не умеет отдавать неправильные данные ;)

но, текущее положение дел такого, что четыре ядра по 3.5ГГц не хватает для рилталмовой симуляции. прошивка на компьютере полностью съедает одно ядро, а распараллеливаться она не умеет. в результате весь процесс идет раз в 20 медленнее, чем на реальном железе, то есть если взять не цессну, а что-то более быстрое, то результат будет не очень, не хватает быстродействия. нужна живая настоящая плата ;)
ну и симулятор гражданской авиации не совсем подходящее решение, пока что самый подходящий вариант - это Aerosim RC, там и квадро- и всякие другие коптеры есть, и плагины для эмуляции разных OSD имеются, ну и почти все цифры он может наружу отдать. но на халяву работает только 2 минуты :( гранды же симуляторостроения пока не замечены в возможности поделиться внутренней инфой, но это так, к слову.

openpilot
HikeR:

кстати, если в полете какая-то часть данных пропадает, то прошивка ведет себя на удивление адекватно, с ума не сходит и самолет в землю не вгоняет.

Я слышал, это нынче актуально для владельцев FY20A и FY90Q: и те, и другие жалуются, что данные продукты нынче практикуют вгонять самолеты и квадрики в землю без всякой навигации…

Кроме того, хочу обратить внимание, что в данное время навигация в OP (и, соответственно, модели для PC, так как код там один и тот же) не отлаживалась. Потому то, что мы видим сейчас, все еще сырое. Оно уже способно удерживать позицию на квадрике и самолете, но не дошло до уровня даже беты.

но, текущее положение дел такого, что четыре ядра по 3.5ГГц не хватает для рилталмовой симуляции. прошивка на компьютере полностью съедает одно ядро

Скорее, GCS, а не прошивка?

Но вообще да, писали, что в данное время лучше симулятор запускать на отдельной машине.

нужна живая настоящая плата

Скоро будет 😃

ну и симулятор гражданской авиации не совсем подходящее решение, пока что самый подходящий вариант - это Aerosim RC, там и квадро- и всякие другие коптеры есть, и плагины для эмуляции разных OSD имеются, ну и почти все цифры он может наружу отдать. но на халяву работает только 2 минуты

Я не думаю, что это большая проблема: X-Plane и IL2 тоже коммерческие. Так что если есть модельный симулятор, который способен выдавать нужные данные - было бы очень интересно его тоже поддержать. Кому надо - купит и будет пробовать, если результат будет того стоить.

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

Я бы поправил: не замечены в желании, а не в возможности.

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

HikeR
openpilot:

Скорее, GCS, а не прошивка?

не, GCS вся такая многопоточная что аж страшно иногда, если включить плавное обновление легко забирается на второе ядро 😉 прошивка же в рабочем состоянии сидит только на одном ядре, только когда у нее что-то переклинит система потом долго очухивается.

openpilot:

Я не думаю, что это большая проблема: X-Plane и IL2 тоже коммерческие.

ИЛ-2 это уж для того чтобы “было”, практической пользы от него еще меньше чем от FG. фишка же X-Plane в его аэродинамической модели, но она совершенно не годится для коптеров и маленьких моделей.
но все равно в итоге упираемся в необходимость наличия железа. я тут вспоминал как перегревался и трещал мой компутер когда в Протеусе эмулировал прошивку для Турниджи, а ведь там куда менее мощная Мега стоит по сравнению с OpenPilot-ом.

openpilot:

есть протокол обмена с сервером для совместных полетов, где также, по идее, все должно быть из данных.

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

наткнулся на подобную фишку у прикольного сима на Java - Clearview, на сайте ни слова, но в ресурсах лежит некое cvapi, предоставляющее полное положение модели, линейные и угловые скорости, плюс прием команд управления. приедет железка - буду пробовать.

а вот если уж Вы пытались общаться с фениксовыми разработчиками, то может попробуете и к аэросимовцам постучаться? у них не хватает всего чуть-чуть чтобы полноценно и документированно выдать все нужные цифры.

да, пользуясь случаем хочу уточнить. большинство трехосных стабилизаторов рекомендуется располагать строго “горизонтально”, что меня всегда удивляло. ведь используется 3 практически идентичных гироскопа, но канал вращения обрабатывается как-то иначе. в CopterControl такая зависимость тоже есть, или можно всунуть плату боком в маленького 250-ого верта (ибо иначе она просто не влезет)?

openpilot
HikeR:

ИЛ-2 это уж для того чтобы “было”, практической пользы от него еще меньше чем от FG.

Я бы сказал, что он просто имеет известный интерфейс. Только что пообщался в скайпе с Дэвидом (основателем проекта), он говорит, что был интерес от создателя AerosimRC в поддержке OP симуляции. Просто не дошел ход - у проекта действительно не хватает ресурсов.

но все равно в итоге упираемся в необходимость наличия железа. я тут вспоминал как перегревался и трещал мой компутер когда в Протеусе эмулировал прошивку для Турниджи, а ведь там куда менее мощная Мега стоит по сравнению с OpenPilot-ом.

Тут есть существенная разница: протеус эмулирует процессор, а OP компилирует просто математику под код процессора PC. Потому дело, скорее всего, в неэффективной реализации FreeRTOS порта под win32. Просто оно мало кому нужно, и потому порт как бы есть, но особо не оптимизирован, мое предположение.

как в любой сетевой игре физика не передается в сеть, только координаты и положение.

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

наткнулся на подобную фишку у прикольного сима на Java - Clearview

Ага, слышал про такой.

а вот если уж Вы пытались общаться с фениксовыми разработчиками, то может попробуете и к аэросимовцам постучаться? у них не хватает всего чуть-чуть чтобы полноценно и документированно выдать все нужные цифры.

См. выше. Если есть возможность сформулировать то, чего не хватает, то у меня есть уверенность на 99%, что мы сможем выйти на разумные контакты. Если Вы поможете с поддержкой сима, я готов взяться за организационную часть.

да, пользуясь случаем хочу уточнить. большинство трехосных стабилизаторов рекомендуется располагать строго “горизонтально”, что меня всегда удивляло. ведь используется 3 практически идентичных гироскопа, но канал вращения обрабатывается как-то иначе. в CopterControl такая зависимость тоже есть, или можно всунуть плату боком в маленького 250-ого верта (ибо иначе она просто не влезет)?

Этой уникальной возможностью с первого же дня использования CC начал пользоваться Сергей на метровом FPV трикоптере (на форумах в Украине есть много инфо). Он заменил платой CC плату KK, и для этого пришлось ставить ее с разворотом на 45 градусов.

Я же на своем микроквадрике (16см мотор-мотор по диаметру) переключал конфигурацию с + на x тоже всего двумя заменами конфига: выбором конфигурации моторов (из списка с Quad + на Quad X) и установкой 45 градусов по оси Z для платы.

В целом, в настройках есть 3 поля ввода: угол установки по X, Y, Z в градусах. Таким образом плату можно поставить хоть по диагонали куба - важно лишь прописать эти три угла, и оно будет работать в любом положении.

Ссылка на документацию по attitude configuration (она не видна в GCS без подключения платы CC или OP, потому Вы ее и не увидели).

HikeR
openpilot:

дело, скорее всего, в неэффективной реализации FreeRTOS порта под win32.

увы, это для меня темный лес. хотя даже в официальных демках для mingw и msvc стоит ремарка типа “не использовать в продакшене, это чисто для посмотреть”.

openpilot:

Если есть возможность сформулировать то, чего не хватает

я заканчиваю катавасию со злосчастным джойстком чтобы (по возможности) его приняли для master, думаю что возможность гарантированного обмена с симом на 60-120Гц куда лучше текущих 20 на выход и сколько-получится на вход 😉 ну а после этого подключать любые сторонние симы довольно легко.

openpilot:

аким образом плату можно поставить хоть по диагонали куба

вот это весьма радует.
а отсутствующая страничка с конфигами восполняется UAV браузером 😉 я таким образом “подгонял” начальное положение чтобы самолет в удержании горизонта летел немного задрав нос (контроля высоты пока нет, поэтому работает).

openpilot
HikeR:

а отсутствующая страничка с конфигами восполняется UAV браузером 😉

Да, UAV Object Browser дает полный доступ как ко всем настройкам, так и ко всем текущим оперативным данным системы. Добавление в исходниках единственного XML файла с описанием нового объекта автоматически добавит набор исходников для всех прошивок и GCS, и оно все автоматически подключается к телеметрии. А остальные страницы интерфейса - это всего лишь некая пользовательская надстройка, скрывающая под собой детали и объекты реализации. Поэтому новые вещи сначала отлаживаются через браузер. Ну а потом уже к ним дописывается пользовательский интерфейс, визарды и т.п.

HikeR

еще видео для затравки. работает стабилизация по горизонту, но и некоторые проблемы тоже присутсвуют (версия с аннотациями, присутсвует HD):

1 month later
sergei_1923

Я что-то не пойму , РРМ поддерживается или нет ? Неделю пытался настроить , не видит приёмника , хотя пищет что он законектился.

241176552
sergei_1923:

Я что-то не пойму , РРМ поддерживается или нет ? Неделю пытался настроить , не видит приёмника , хотя пищет что он законектился.

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

openpilot
sergei_1923:

Я что-то не пойму , РРМ поддерживается или нет?

Да, отдельной (пока что) прошивкой. См. FAQ Q7.

sergei_1923
HikeR:

начните с оффорума, а именно с советов по настройке.

Неделю там пасусь , ничего не помогает:)

openpilot:

Да, отдельной (пока что) прошивкой. См. FAQ Q7.

Конкретно мучаюсь с приёмником Футаба R617FS .Фсяких других сателитов и прочих не имею . Конкретно когда ставлю галочку калибровка , выскакивает табличка , типа движки нужно отсоеденить навсегда в вкладке arming setting. А они там и так типа disarmed …😵. В общем туплю что-то не въеду , вон на скриншоте видно противную табличку , дальше ничего не пущает делать .
Можно пошагово инструкцию плиз для простой Футабы.

andriver

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

AlcoNaft43

Да и вообще непонятно, причем тут вопрос о PPM? Футаба же PWM выдает, не ее конечно можно модифицировать на выдачу PPM по 5 каналам, но это явно не тот случай. Да и вообще, заходите к нам на огонек в русский раздел форума…

HikeR
sergei_1923:

вон на скриншоте видно противную табличку , дальше ничего не пущает делать .

а просто кнопку OK нажать?

sergei_1923
AlcoNaft43:

Да и вообще непонятно, причем тут вопрос о PPM? Футаба же PWM выдает, не ее конечно можно модифицировать на выдачу PPM по 5 каналам, но это явно не тот случай. Да и вообще, заходите к нам на огонек в русский раздел форума…

Я особо не вникаю , что оно там выдаёт , на табло в Футабе написано РРМ , значит я и думаю что это оно, ещё для меня есть PCM, больше я не заморачиваюсь, как-то не нужно было , теперь видать нужно изучать… В общем снёс всё нафиг , залил всё по новой безо фсяких РРМ. Выставил PWM в закладках , такая-же фигня при попытке калибровке , выскакивает табличка и всё.Делал всё как на видео и в Советах по настройке, ну не идёт у меня и всё

HikeR

вы в табличке кнопку-то нажимаете, или просто на нее смотрите?
перед каждой калибровкой программа принудительно включает блокиратор моторов, чтоб вы, не дай бог, вертя стиками не сунули палец в ротор/пропеллер. именно это и написано на табличке, “настройки блокиратора будут установлены на ‘всегда заблокировано’ для вашей безопасности”.
нажимаете OK, проводите калибровку, сохраняете настройки, на третьей вкладке “Arming Settings” возвращаете на место выключение блокиратора через первый же выпадающий список.

на каком этапе что-то не получается?