Создание собственной системы стабилизации

SergDoc

Так вот чёт такое подозрение, что либо я не умею готовить DMA либо где-то бяко, ибо процессорное время на него тратится порядком 😦 ладно поживём - увидим…

SergDoc

На улице дождик, 3D-Fix-а нет, снимать тоже было некому, руки трясутся - но любопытство и упрямство вещи такие…
И вот что я хочу сообщить: Плюйте тому в рожу кто говорит что Арду плохо летает!!! Эта зараза летит, можно сказать из коробки!!! откалибровал радио, откалибровал датчики - и вот, мягкий отрыв от земли и мы на СТОКОВЫХ пидах висим как прибитые к небу, немного дрейфуем по ветру (проверял пока только в стабе), мягко без дёрганий, на быстром спуске расколбаса не заметил 😃
Как это всё прикручено: мосх жестко к раме на пластиковых стойках, на одном пропе бабочка почти в полсантиметра, и это всё преспокойно летает!!! Слов нет, дабы передать все ощущения - одни мысли, которые по этическим соображениям выкладывать не стоит…
Ну и оговорюсь, Огромная заслуга в том, что я сегодня поднял в воздух это чудо, прнадлежит Александру Rual, он сделал основной порт на мою плату, я только слегка допилил под свои нужды, так же спасибо Алексею Sir Alex, что помог разобраться в тонкостях Арду 😃
Ну что, заряжаю батарейки и ищу человека способного держать камеру в руках 😃
Ну и немного дёгтя: ещё очень много работы предстоит: запустить(подправить) АЦП, запустить пищалку, и кучу всякой дребедени сделать переделать, но это уже на новой плате, старая, как не прискорбно, выполнила свою функцию, теперь дело за доработанным железом…

soliada
soliada:

Может кто нибудь из товарищей разработчиков помоч с кодом для www.st.com/web/catalog/sense_...C1449/PF253884

Сам спросил-сам более менее разобрался.С МультиВием вроде работает.Нужна помощь зала))) Есть табличка Acceleration data rate configuration
где на выбор есть множество вариантов частоты чтения. 0т 3.125Гц до 1600Гц. Какую лучше выбрать?
Так же есть табличка Accelerometer anti-alias filter bandwidth с частотами 733,194,362,50Гц, здесь что выбрать?
Ну и собственно Acceleration full-scale selection с вариантами от 2g до 16g,как я понимаю 16g самый чувствительный вариант?
С компасом что-то не догоняю.Адрес у него точно такой же как и у акселерометра,т.е 2 датчика имеют один и тот же адрес,а различаются только регистры.Как в этом случае быть?

SergDoc

Ставь 1600 733 8g с адресом по барабану если регистры разные, читаешь/пишешь всё равно адрес->регистр, должно переварится 😃

soliada

Ок.Если получится,вечером выложу результаты испытаний в Виевских попугаях из ГУИ. А может в качестве вибростенда применить мобильник?Честно говоря неохота морочиться с моторами и пропеллерами.

SergDoc

Дождик, ветерок (видно как коптер постоянно сносит в одну сторону), Fix-a нет, но в одном месте свербило 😃
Я не задовался целью создать мегаблокбастер, просто тестовое видео. К сожалению самого интересного человек не заснял - я немного обнаглел и летал влево-вправо с резкими разворотами и к себе подлетал, ну да ладно.
В одном месте видно - слегка приложил коптер, хотел посмотреть быстрый спуск да не расчитал слегка (не один коптер не пострадал)
Вобщем смотрим обсуждаем:

mahowik
SergDoc:

Плюйте тому в рожу кто говорит что Арду плохо летает!!! Эта зараза летит, можно сказать из коробки!!!

плевок принят! 😃
не вру! на моем конфиге пират 3.0.x не полетел толком, точнее его носило как в ураган, как по высоте так и по горизонту, еле удерживал… уже писал как то об этом N страниц назад… вероятно вибрации… моторы не калибрую никогда, пропы с большего на отвертке, рама джидай клон…
потом залил свою прошиву и стабильность вернулась… не сочтите за рекламу…

SergDoc

Гиры на 42Гц ставил? а то там чёрти что по умолчанию, и ещё если у тебя AIO довольно старый, то может по акселю какая беда - там жеж куча ревизий было.
Я как и описывал выше - аппарат видавший виды, пропы с бабочкой, балансировал так-же ножиком канцелярским на отвёртке поскрёб и всё (один вообще не трогал - махнул рукой, так сойдёт)…
Ощущения чесно скажу - ну нереальны, аппарат чётко слушается каждого движения - с какой-то можно сказать грациозностью, развороты поразили точностью, на том-же baseflight для разворота намного больше пространства надо, имеются завалы в стороны, а тут как на шпинделе каком провернулся и усё, тормозить полёт тоже приятно 😃 и это моторы ровнентко так жужжат - как будто и не пытаются компенсировать что-то даже нестрашно к себе подлетать, короче я был поражен всем этим. Выпадет погода - попробую удержание позиции и высоты… Повторюсь, пиды стоковые, на этой раме впринципе нонсенс - короткие лучи (дабы в сумку влазить) 11 пропы (перекрывают больше чем 2/3 луча)…

mahowik
SergDoc:

Гиры на 42Гц ставил?

так там же СирАлексом уже все прописано что надо, т.е. либо 20 либо 42 гц нч фильтр…
ну и потом надо помнить что у тебя всеж F4, т.е. алгоритмика пашет без провалов по таймингам в лупе…

SergDoc

Вполне, но зараза в пиках до 45гр греется, да Алексей писал что тормоза на авр бывают 😦

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

mahowik
SergDoc:

Вполне, но зараза в пиках до 45гр греется

ну так этож фигня! что такое 45 град для чипов, т.е. полупроводников… т.е. считай холодный… 😃
или для stm32 это уже много? лень в даташит лезть 😃

rual
SergDoc:

Вобщем смотрим обсуждаем:

Спасибо,Сергей! Основа работает! ГПС и тд пляшут от ровного горизонта, т.е. при наличии погоды всё будет нормально.

mahowik:

потом залил свою прошиву и стабильность вернулась…

Саш, тут важна РЕГУЛЯРНОСТЬ чтения акселя, если она превосходит бирейт, т.е. БЕЗ пропусков отсчётов, то нормально. В противном случае будет ловить случайное отклонение от вектора G. PX4 (ну и F4BY) должен читать 1000Гц отсчётов.
Видимо твоя прошыва больше усредняет, меньше влияния акселя на горизонт, возможно ПИДы ИНС завышены.
Кста, я тут к версии Ф3Дисковери МПУ6050 прикрутил ТОЛЬКО в качестве АКСЕЛЯ, похоже та же ситуация, но пока не разбирался.

mahowik:

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

собсно об этом выше писал

SergDoc

Надо будет твою прошивку в baseflight допилить (если время будет) посмотреть как оно 😃

rual
SergDoc:

ставил на край стола на лыжу боком и держал так примерно перпендикулярно столу ну т.д.

А вот это для ИНС ОБЯЗАТЕЛЬНО!

Нужно для компенсации дрейфа акселя.

SergDoc
mahowik:

или для stm32 это уже много? лень в даташит лезть

не нестрашно, да и датчики отодвинуты от проца, на baseflight холодный был…

rual:

А вот это для ИНС ОБЯЗАТЕЛЬНО!

в следующий раз, даст бог, на квадрике на заводской раме калибровать буду 😃

mahowik
rual:

Видимо твоя прошыва больше усредняет, меньше влияния акселя на горизонт, возможно ПИДы ИНС завышены.

ранее, когда мучил свою ИНС (а конкретно улучшайзер удержания позиции по гпс), так и не подобрал оптимальные коэф. соотношения аксель-гпс и отключил ее в итоге, хотя по графикам все ок было, т.е. в осях и знаках ошибок нет… уверен на 95% 😃 Теперь осознаю, что всеж надо было вибрации на платформе пофиксить сперва… иначе похоже никак. Для оси Z с инерциалкой попроще, т.к. для компенсации интеграторов используется быстрый и относительно точный (по сравнению с гпс) барометр. А вот для X,Y осей картинка другая, т.к. для повышения точности нужно больше доверия полагать на аксель (из-за того что гпс врет в большом диапазоне + тормозит по координатам на 1-2 сек), а тут уже вибрации выводят интеграторы из состояния равновесия… ну и да, для инерциалки по X,Y нужно калибровку шкал акселя по всем осям добавлять, что в арду 3.0.х и сделали на сколько помню… по Z необязательно, т.к. можно больше веры полагать на баро в компл. фильтре… т.е. баро устаканивает Z интегратор и по вибрациям и по нелинейностям шкалы акселя…

rual:

Кста, я тут к версии Ф3Дисковери МПУ6050 прикрутил ТОЛЬКО в качестве АКСЕЛЯ, похоже та же ситуация, но пока не разбирался.

а что за I2C драйвер использовал для F3? на сколько помню драйвер от F4 не подходит (хотя и то и то Cortex-M4) и там нужен какой то изврат или стороннюю либу пользовать…

SergDoc
mahowik:

а что за I2C драйвер использовал для F3? на сколько помню драйвер от F4 не подходит (хотя и то и то Cortex-M4) и там нужен какой то изврат или стороннюю либу пользовать…

не i2c практически одинаковы, есть мелкие нюансы, сводящиеся к настройке портов, по моему я больше ничего не переделывал, а на сколько понимаю то периферия в f3 больше похожа на f1 чем на f4?

mahowik

Самое главное забыл. ВЫ МОЛОДЦЫ! 😃
Давно пора порвать всякие там не бюджетные PX4 и пиксхавки! Не останавливайтесь! 😃

SergDoc

А тут какбы обратной дороги нет уже 😃 я чё в попыхах запускал в небо всё это дело - ибо уже надо 😃

soliada
SergDoc:

Ставь 1600 733 8g с адресом по барабану если регистры разные, читаешь/пишешь всё равно адрес->регистр, должно переварится

Собственно сделал все как Вы посоветовали. Честно говоря нечем было снимать ролик кроме телефона,а он был в этот момент вибростендом.
Датчик приклеил к экрану обычным 2х сторонним скочем,поставил в режим вибровызова и позвонил))) С указанными Вами настройками по оси Z в гуевских попугаях прыгало в пределах 2х единиц,по осям X и Y в пределах 4-5ти единиц (телефон полз по столу в момент вибрации)
Делитель был подобран таким образом,что в крайних положениях он был 1G= 256
Компас так и не настроил. Что-то не могу разобраться какие Гауссы и частоту чтения надо выставлять?И что надо выбрать,хай или лоу резолюшн?
Да,датчик в Москве в дорогом магазине стоит 130руб,но по идее,можно взять по 60-70руб. Вроде как уже скоро должен придти и L3GD20,правда подозреваю что не тот,что в пиксхавке.

SergDoc

Я более склонен полагать, что у него возникает резонанс с вибрацией от моторов примерно на частоте 4-5 кГц т.е. как раз на середине газа…

Мы так и не услышали начальника транспортного цеха пока нет никаких данных не по iris не по его контроллеру pixhawk 😦