Создание собственной системы стабилизации
а теперь серьезно - тест шикарный!!
Плечо карусельки надо подлинней, будет более длиный и долгий пробег по кругу при том же центростремлении, надо бы что то наподобие кордовой модели сделать. Картонку с оперением и мотором?
но нужно действительно арминг учесть в незаармленном состоянии коэфициенты подтяга горизонта к акселю в 8 раз выше.
да, это важно. Нужно ещё раз проверить. Но мне кажется, что вес акселя сильно играть не будет, уменьшиться только скорость проявления симптомов, ибо таков алгоритм.
Алексей, как заармить без Р/У, через планнер?
и вроде обе ахрс скривились, но не от центростремительного а изза стенда не в горизонте
Стенд тоже изменил крен, это верно, но стенд всегда имел положительный крен (вправо), при раскрутке он немного уменьшился, а ахрс завалила крен влево в область отрицательных значений.
может доску на два шнурка к верху и на два к низу (к доске за края, а сверху и снизу вместе)?
Идея хорошая, подумаю как сделать. Тангаж тоже желательно зафиксировать.
а теперь серьезно
Когда у общества нет цветовой дифференциации штанов, то нет цели! А когда нет цели — нет будущего!
(с)
я тут похоже бесплатную штуку урвал ))) вот думаю, доедет или нет??? за малым почти пикс ))) датчики как на ф3, 2 проца 4-й и 1-й …
если питон работает и есть 2 рабочих USB-USART, то ничего больше не надо.
Ды я всё пытаюсь развить идею о способах связи (быстродействующей) stm c линуксом, чтоб совместить удобство того же питона и реалтайм ядра, автоматом такая связь позволит максимально быстро иметь в графике все нужные данные для проведения тестов… Благо Rpi+линукс идеально подходит для таких экспериментов.
Ну и размышления мои следующие: Usart - медленноват всёже, I2C - тоже,… остаётся SPI, но его желательно с DMA использовать, а тут уже надо лезть на уровень ядра линукса…
Может USB ?
Ethernet )))
Может USB ?
Ethernet )))
Thunderbolt?
Ну а если серьезно, то все это излишества. Проблем от USB будет только больше, а с Ethernet еще и роутеры/свичи добавятся.
Вундервафлю, ну конечно SPI… можно подсмотреть в OVERO…
а с Ethernet еще и роутеры/свичи добавятся.
зачем? сам себе малин - роутер… а Thunderbolt в stm нет как и в малине…
Может USB ?
Ethernet )))
Вот! Я вроде давал ссылку на ардуинолибу? Там вообще можно тащить данные по изернету и получать доступ к ардуине как реальному датчику. Просто мой способ проще, и не требует спецоборудования, кроме того можно гибко манипулировать входящими данными. Скажу более, USART вполне способен работать в данной связке, ибо узкое место не он, а способность XPlane формировать кадры данных.
Ну а если серьезно, то все это излишества. Проблем от USB будет только больше, а с Ethernet еще и роутеры/свичи добавятся.
Совершенно так.
Скажу более, USART вполне способен работать в данной связке, ибо узкое место не он, а способность XPlane формировать кадры данных.
речь о связке малина+стм, пикс с малиной работают через usart, протокол - мавлинк
Вундервафлю, ну конечно SPI… можно подсмотреть в OVERO…
Можно внешний SPI ethernet контроллер. Код взять из либы
речь о связке малина+стм
Я что-то пропустил, малина чем будет заниматься?
Можно внешний SPI ethernet контроллер. Код взять из либы
у меня какой-то валяется…
Я что-то пропустил, малина чем будет заниматься?
это к Олегу…
Можно внешний SPI ethernet контроллер.
а зачем? и у того и у того свой (аппаратный)
у меня какой-то валяется…
Поэтому выбрал USART, он у меня есть, да в симе GPS usart лишний
Я что-то пропустил, малина чем будет заниматься?
Мысль такая: “гонять” между stm и малиной фиксированный (непрерывный для ДМА) массив озу, со стороны stm заполнять его данными датчиков и расчетными величинами ИМУ, а со стороны малины гнать в обратную настройки/коэфициенты/команды. Таким образом реалтайм петля не будет прерываться линуксом + полный набор данных для визуализации процессов питоном… короче сделать что то вроде “прозрачного доступа к памяти”…
Есть мнение что в нашем карусельном деле бывает старинная но незаменимая вещь. старый советский проигрыватель
Мысль такая: “гонять”
Какая частота обновления планируется?
тарый советский проигрыватель
Это было по секрету, да за обедом.
о стороны stm заполнять его данными датчиков и расчетными величинами ИМУ, а со стороны малины гнать в обратную настройки/коэфициенты/команды
дык тут только SPI, как питоном SPI читать надо смотреть применение питона на малине.
карусельном деле бывает старинная но незаменимая вещь. старый советский проигрыватель
Да, было бы неплохо. Но у меня нет.
Вот видео
Для максимальной реалистичности можно еще на доску регулируемый вибратор закрепить 😁
регулируемый вибратор закрепить
кто в интимный магазин пойдёт? по сути: если есть, допустим по оси z, угловая скорость, то почему нельзя на основании её убрать центростремительные ускорения из вектора акселя?
Я всё веду к тому, что какая-то там магия Калмана EKF не совсем то, что нам нужно, да нужен адаптивный фильтр с обратной связью, но что-то похожее на комплиментарник с автоматическими развесовками датчиков…
на данный момент у меня всё что делает фильтр - это более неправильные данные из “неправильных” сырых данных, точнее - графики намного плавнее чем с обычного вийного комплиментарника (и доплывают данные до истинных значений медленней) да и в полёте никак не заметно - всем рулит ПИД… и барометр куда-то запропастился … каким-то неведанным усилием воли удалил начатый и за ночь написал заново драйвер MPU6000+HMC5883 с инициализацией через регистры и т.п., а не как в вие сначало инициализируется байпасом (что в моём случае сделать нельзя), а потом читается через регистры MPU, надо ещё внедрить его в инициализацию борды и проверить, но времени нету (
чёй-то так NuttX не хватает (консоли по большому счёту), что надо как-то в арду вклинивать?
Какая частота обновления планируется?
Тут чем больше тем лучше…, вопрос - возможна ли задумка в принципе, готовый малиновский драйвер SPI, не позволяет “фулл дуплекс”, хотя блочное чтение/запись поддерживает…
допустим по оси z, угловая скорость, то почему нельзя на основании её убрать центростремительные ускорения из вектора акселя?
Чёт интуитивно наверно нельзя, при большом радиусе вращения… Тут скорей опять надо от ГНСС траекторию как то высчитывать (радиус) и со скоростью скрещивать…
при большом радиусе вращения…
математики/физики есть? чёт я картинку нарисовал, поворачивается при любом радиусе и на тот же угол и при той же скорости - угловая скорость по собственной оси одинаковая, вечером посчитаю…
а вот с ускорением - шляпа, нужно знать радиус поворота(
если есть, допустим по оси z, угловая скорость, то почему нельзя на основании её убрать центростремительные ускорения из вектора акселя?
Потому что не известна кривизна траектории, ещё нужна нужна мгновенная скорость по касательной. Вроде Алексей писал, что Арду считает центростермление по скорости ГНСС и угловой скорости.
что надо как-то в арду вклинивать?
Что вклинивать, свою ИНС в арду?
чёт я картинку нарисовал, поворачивается при любом радиусе и на тот же угол и при той же скорости - угловая скорость по собственной оси одинаковая, вечером посчитаю…
Не путай угловую скорость и линейную, линейная = 2*пи*R * угловая.
а вот с ускорением - шляпа, нужно знать радиус поворота(
Где то попадался материал по этому поводу - решалось всё установкой двух акселерометров одновременно, но там другая “шляпа” - они должны размещаться на некотором приличном расстоянии друг от друга, типа “плечо” такое получалось… на самолете можно по крыльям разнести конечно (?), а на коптере как то не знаю… короче не вариант тоже… Всё таки неспроста уже давно по пиродатчикам горизонт ловить пытались люди, видать из акселя уже ничего не выжмешь… ну или всёж видеообработка с камеры и “мой любимый” RPi (не знаю каким боком его прикрутить, но блин хочется и чую что надо… 😃)
мысль такая - уменьшение влияния акселя при увеличении угловых скоростей - раз, ПИ - регулятор - где угловая скорость = пропорция, угол=интегральная составляющая, плюс ПД, где Д - это предыдущи регулятор при этом отношение П1/П2(тут образно) - обратная связь - это два… чёт мутное получается, но интересное )))
уменьшение влияния акселя при увеличении угловых скоростей
Я думаю его (аксель) надо вообще отключать выше определенных “углов атаки” и лететь чисто на гирах, у товарища видел как трикоптер летает просто на вертолетных гирах вообще без всяких ИМУ, так что в принципе может и прокатить…
Я думаю его (аксель) надо вообще отключать выше определенных “углов атаки” и лететь чисто на гирах
Не согласен, угол 0 ничем не лучше 90 или -180
у товарища видел как трикоптер летает просто на вертолетных гирах вообще без всяких ИМУ, так что в принципе может и прокатить…
Так это простой стаб угловых скоростей, и он крайне надежен, но проблема в том, что никакой “автономки” с таким стабом не реализовать. Пилот должен видеть ориентацию ЛА визуально.
чёт мутное получается, но интересное )))
эт да)) понял только первое правило, оно может сработать. А дальше, я так понял, интегратор угловых скоростей в ориентацию? Если так, то Д там лишнее…
понял только первое правило, оно может сработать.
а я уже передумал - не сработает, при условии длительного ускорения вдоль осей без угловых скоростей 😦 тьфу - сам запутался - всё нормально - угол ушел, а по соответствующей оси нет угловой скорости или она меньше тогда да П1/П2 - коэф влияния акселя - меньшее делим на большее - получаем меньше меньшего, большее делим на меньшее - получаем больше большего - только придётся ввести пределы а вот дальше муторней но интересней П2+Д2=П2-П1+И1 почти “классический” ПИД, но в нём нет лишних интеграторов, а интегральная составляющая в зависимости от ошибки не собирает сумму ошибок (увеличивает П), а уменьшает/увеличивает диф. составляющую, что в свою очередь позволяет довернуть пропорцией П2…
уточню - управление в данном случае по угловой скорости т.е. П1= РУ+угловая скорость (которую нужно погасить)
так упорядочу мысль:
/*фильтр*/
П1=угловая скорость+сигнал управления
угол =угол предыдущий+П1 *дт // управляющий вектор надо учесть
угол =угол*(1-П1/П2) + угол акселя*П1/П2
угол предыдущий=угол
/*регулятор*/
И1=угловая скорость *дт // так наверно правильней надо подумать… дельта угла?
П1И1 = П1-И1 //они противоположны
Д2=П1И1
П2=угол
Выход=П2-Д2