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

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 😦

soliada
SergDoc:

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

Понял,тогда испытаю на коптере. Единственное,это будет мелколет на 3" пропеллерах.
ПС,есть что-то типа хубсана,сейчас попробую на него прилепить))

SergDoc

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

soliada

Ну,попробовал.По осям X и Y скачет в пределах 20-25 гуе-единиц,а вот по оси Z пипец,проседает единиц на 90.
Что интересно,прикрепленная сверху МПУ6050 показала по осям X и Y почти тот же разброс (фильтры в прошивке выключены),но по оси Z проседала не более чем на 40- 50 гуе-единиц.Испытания производились одновременно на 2х датчиках и 2х запущенных ГУИ.
Блин,извиняюсь,данные ошибочные.Не правильно сконфигурировал один из регистров и он видимо работал по умолчанию.Просто удивился,что при каждом включении приходилось делать калибровку.
Вообщем при тех настройках что были выше и при тех же условиях испытания.По оси X и Y разброс 5-6 гуе-единиц,по оси Z в пределах 3-4 гуе-единиц.

SergDoc

т.е. если сделать 1G = 512 так и будет как я и говорил, около 50 попугаев, так вот похоже фильтры MPU могут сгладить всё это, а в lsm нет, или же спектр другой, на мелколёте он повыше, так-же допускаю что аксель в 6000 лучше намного чем 6050, не думаю, что только из-за интерфейса они на столько разнятся в цене…

осталось увидеть iris не в рекламе, а у реальных пользователей…

vatanuki
mahowik:

ранее, когда мучил свою ИНС (а конкретно улучшайзер удержания позиции по гпс), так и не подобрал оптимальные коэф

а Вы не пробовали передавать показания акселя/гиры в сам жпс (ublox)?, хочю папробывать, и вот думаю может не сотит и ктото уже пробывал:)