Специальные цены   новые товары
+ Ответить в теме
Страница 161 из 165 ПерваяПервая ... 151 159 160 161 162 163 ... ПоследняяПоследняя
Показано с 6,401 по 6,440 из 6569

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

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от Gapey ак что по мере миниатюризации (снижении массогабаритов) , а также повышении эффективность моторов , регулей , аккумуляторов ...

  1. #6401

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от Gapey Посмотреть сообщение
    ак что по мере миниатюризации (снижении массогабаритов) , а также повышении эффективность моторов , регулей , аккумуляторов реально необходимая частота циклов обработки будет расти ...
    Совершенно так. Сам с проблемой недостаточной скорости регулей столкнулся только на 150м размере, 550й летал на 50Гц стандартных ХК-регулях.

  2.  
  3. #6402

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8

  4. #6403

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    F7BY начало )))
    Лучше сразу ARM11BY.. чтоб, так сказать, "на пике прогресса"..

  5. #6404

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Привет, единомышленники! спустя год работы от начала освоения стм32 и освоения алгоритмов коптеров мне удалось наконец осуществить свою мечту - создать собственный контроллер коптера. Сразу говорю, что летает он ни чуть не лучше, а местами и хуже коммерческих аналогов. Вообщем то получен огромный опыт в отладке, программировании, поиске проблем и многом другом. Математика довольно простая, никаких фильтров Калмана (следующий этап), в основе простые П, ПИ регуляторы компенсирующие дрейф относительных датчиков абсолютными датчиками.
    Теперь по платформе - летает все это на плате STM32F407Discovery, ДУС/акселерометр - MPU6500, барометр - MS5611, магнитометр - HMC5883l, ЖПС/ГЛОНАСС датчик - Ublox Neo 8n. Дополнительно установлен Bluetooth передатчик/приемник для связи с землей, Buzzer, SD-карта для записи логов. Организация логов такова - каждый интересующий меня блок пишется в свой файл в бинарном виде, разбивается по времени, с разной частотой. Платформа летает под FreeRTOS.
    Хотелось бы отдельное спасибо сказать Александру Русакову (rual) за большущую помощь и подсказки в начале пути!
    Несколько видео:



  6.  
  7. #6405

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    летает он ни чуть не лучше, а местами и хуже
    Судя по видео, аппарат весьма достойно "цепляется" и за GPS и за горизонт, так что не надо скромничать..), если софт рукотворный и написан за год, то вообще просто гениально..

  8. #6406

    Регистрация
    09.02.2016
    Адрес
    Чебоксары
    Возраст
    31
    Сообщений
    17
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Привет, единомышленники! спустя год работы от начала освоения стм32 и освоения алгоритмов коптеров мне удалось наконец осуществить свою мечту - создать собственный контроллер коптера. Сразу говорю, что летает он ни чуть не лучше, а местами и хуже коммерческих аналогов. Вообщем то получен огромный опыт в отладке, программировании, поиске проблем и многом другом. Математика довольно простая, никаких фильтров Калмана (следующий этап), в основе простые П, ПИ регуляторы компенсирующие дрейф относительных датчиков абсолютными датчиками.
    Теперь по платформе - летает все это на плате STM32F407Discovery, ДУС/акселерометр - MPU6500, барометр - MS5611, магнитометр - HMC5883l, ЖПС/ГЛОНАСС датчик - Ublox Neo 8n. Дополнительно установлен Bluetooth передатчик/приемник для связи с землей, Buzzer, SD-карта для записи логов. Организация логов такова - каждый интересующий меня блок пишется в свой файл в бинарном виде, разбивается по времени, с разной частотой. Платформа летает под FreeRTOS.
    Хотелось бы отдельное спасибо сказать Александру Русакову (rual) за большущую помощь и подсказки в начале пути!
    Здорово.
    А как ваша система ведет себя в АТИ режиме ?
    Если возможно сделайте видео АТИ режима.
    АТИ интересует так как это наиболее сложный режим работы.
    Заранее спасибо.

  9. #6407

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Судя по видео, аппарат весьма достойно "цепляется" и за GPS и за горизонт, так что не надо скромничать..), если софт рукотворный и написан за год, то вообще просто гениально..
    есть некоторые моменты, например небольшие колебания, перерегулирования, унитазинг, а в конце одного из видео аппарат вообще потерял устойчивость (сейчас уже поправил), у visasta летает идеально, к тому же еще в 2012.
    Здорово.
    А как ваша система ведет себя в АТИ режиме ?
    Если возможно сделайте видео АТИ режима.
    АТИ интересует так как это наиболее сложный режим работы.
    Заранее спасибо.
    Под АТИ режимом понимается простое управление угловым положением? в Арду он зовется Stabilize - он проще режима удержания позиции и высоты. Другое дело, что его надо тщательно настроить, вот в этом вся сложность.
    Видео есть еще полугодичной давности


    Управление высотой, но наклон аппарата контролируется непосредственно стиком пульта

  10.  
  11. #6408

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Платформа летает под FreeRTOS.
    Ваши оценки системы: задержка прерываний, надежность, сложность в настройке ??? ну и вообще впечатления..
    (я мучаю CoOS, поэтому интересно сравнить..)

  12. #6409

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Даже сравнить не с чем, вся моя работа с FreeRTOS -это несколько задач и прием и передача семафоров. Мьютексов, таймеров, динамической памяти я не юзал. По надежности ну у меня иногда зависало, но это 99 процентов мои косяки. По началу были глюки, но потом разобрался, что нужно следить за стеком задач, объемом кучи и тд. Эта РТОС достаточно популярна, так что любые баги выявляются быстро, я б сказал что надежна. Ставится легко. Но из всей работы фриртос была одной из самых простых во многом благодаря Курницу. Задержки прерываний есть, но я не замерял. Не представляю задачи, где будут ощутимы на работе задержки ядра РТОС. При том, что в моем проекте ядро имеет наибольший приоритет среди прерываний.

  13. #6410

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    У меня тут идея возникла. Что можно полностью отказаться от магнитометра и акселерометра в перспективе (для коррекции горизонта). Вот если посудить что магнитометр, что акселерометр всего лишь вносят небольшую коррекцию в угловую скорость ДУСа, а по факту вносят еще и шумы и ошибку, связанную с неравномерным магнитным полем, магнитными полями от тока в случае магнитометра, линейные ускорения в случае акселерометра. Так вот если так посудить, то коррекцию угловой скорости ДУСа может выполнять любой другой АБСОЛЮТНЫЙ датчик ориентации. Идея такая - есть ЖПС датчик на борту, есть ЖПС датчик у оператора, по радиоканалу на борт передаются координаты оператора. В мозге аппарата есть свои координаты и координаты оператора, соответственно можно построить ТРЕХМЕРНЫЙ вектор, который как раз и будет служить корректирующим для скорости гир. Если применить технологию RTK для ЖПС то можно еще и отказаться от акселерометра. Может я ошибаюсь где то, как вам идейка?

  14. #6411

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Может я ошибаюсь где то, как вам идейка?
    без акселя и компаса мне как-то плохо представляется переход из локальных координат к глобальным, если при движении ешё можно отказаться от компаса то в висении он нужен.... а акселерометр по-моему ничему не мешает особенно при использовании либо отдельных датчиков, либо как в тех же 6500 - 9250 настраиваются они отдельно, и если с ДУС-ов мы може мзять те же 8 килогерц то аксель можно "зажать" по самое небалуйся...
    и вообще у меня создаётся впечатление, что траблы с компасом преследуют только арду, хотя например в либрепилоте и таулабсе калибровка компаса вообще никакая.... если кто не в курсе я добавил (сделал HAL и попросил добавить) F4BY в betaflight - выйдет в 3.0 релизе, так вот там компас намного лучще работает, и это без всяких страшных слов типа EKF... и ешё пытал betaflight чисто на 9250 без компаса и барометра - довольно приятно управляется и высоту "держит" без барометра... конечно не держит, но не дёргается как арду в стабе - вечно стиком дёргай...

  15. #6412

    Регистрация
    12.02.2015
    Адрес
    Комсомольск-на-амуре
    Возраст
    33
    Сообщений
    742
    Записей в дневнике
    1
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Может я ошибаюсь где то, как вам идейка?
    GPS это датчик не ориентации, а положения. Вне зависимости от положения и угловых скоростей коптера координаты коптера и оператора не поменяются, если коптер не меняет положения.

    Плюс к тому, как быть, если GPS "потерялся" или врет?

    Компас, при правильном его использовании довольно точный инструмент, про аксель я вообще молчу. Кстати, аксель - критически важная штука не только для ориентации, но и для ИНС.

  16. #6413

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Вы меня не поняли, магнитометр очень капризная штука, неровное его расположение будет давать перекосы в ориентации при наклонах аппарата, влияние наводок от токов тоже вносит лепту, к тому же чем сложнее система тем меньше надежность... У меня до сих пор затыки с компасом, хотя он на ножке стоит.
    Акселерометр в ИНС я не собирался выкидывать, я же написал, что только для коррекции горизонта, я его не хочу использовать. Я же не пустыми словами кидаюсь, я сам все это прощупал...
    У меня стоит датчик MPU6500 у него отдельные фильтры на гиру и на аксель... Хоть сколько аксель не зажимай - от линейных ускорений не избавиться, которые будут вносить ошибку в ориентацию.
    GPS это датчик не ориентации, а положения
    Вот прочтите еще раз. Две пары координат а значит есть вектор.
    Идея такая - есть ЖПС датчик на борту, есть ЖПС датчик у оператора, по радиоканалу на борт передаются координаты оператора. В мозге аппарата есть свои координаты и координаты оператора, соответственно можно построить ТРЕХМЕРНЫЙ вектор, который как раз и будет служить корректирующим для скорости гир
    Вектор - а значит есть направление. значит есть ориентация, причем АБСОЛЮТНЫЙ датчик.
    Плюс к тому, как быть, если GPS "потерялся" или врет?
    Если правильно его использовать то он не врет. У меня удержание высоты кстати только по ЖПС, без барометра. Почитайте про RTK, и вопрос о потере и вранье отпадет.
    Напомню как работают большинство фильтров ориентации: берется реальный вектор (ускорения свободного падения, магнитного поля Земли или любой другой) с абсолютного датчика и сравнивается с виртуальным вектором, то есть продуктом этого фильтра, далее в зависимости от строения фильтра, рассмотрим фильтр Махони эта разность векторов поступает в ПИ регулятор, а его выход в скорости с ДУСа, после чего инегрируется до положения, потом снова выделяется интересующий нас виртуальный вектор и тд и тп.
    Так вот абсолютный вектор с пары ЖПС датчиков у нас есть. А виртуальный строится чисто геометрически исходя из проинтегрированных скоростей с ДУСов и положения коптера. Примерно понятно?
    Но тут я не до конца представляю все это у себя в голове, вот и спрашиваю.
    обращаю еще раз внимание на то что, в расчет идет не просто координаты аппарата, а координаты оператора, то есть уже вектор.

  17. #6414

    Регистрация
    12.02.2015
    Адрес
    Комсомольск-на-амуре
    Возраст
    33
    Сообщений
    742
    Записей в дневнике
    1
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Вот прочтите еще раз. Две пары координат а значит есть вектор.
    Вектор-то есть, но толку от него... Вот представьте себе, у дома координаты, допустим (0;0;0), у коптера (10;10;5). Как повернут коптер? Как он наклонен? Я знаю где он находится относительно дома, но я ничего не знаю об ориентации самого коптера в пространстве, потому что независимо от углов крена GPS позиция оператора и коптера будет та же самая.

    Фокус с магнитным полем и гравитацией в том, что направление этого вектора в система координат ЛА зависит от ориентации ЛА в пространстве. В случае с GPS ЛА и GPS дома, направление вектора от ориентации ЛА в пространстве никак не зависит.

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

    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    У меня стоит датчик MPU6500 у него отдельные фильтры на гиру и на аксель... Хоть сколько аксель не зажимай - от линейных ускорений не избавиться, которые будут вносить ошибку в ориентацию.
    Правильная калибровка (нуля и масштаба) и фильтровать все что значительно отличается от 1G.

    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Если правильно его использовать то он не врет.
    GPS врет по определению на несколько метров. Плюс позиция плавает на те же несколько метров. Плюс иногда GPS отключают для обслуживания над некоторыми областями.

  18. #6415

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Вектор-то есть, но толку от него... Вот представьте себе, у дома координаты, допустим (0;0;0), у коптера (10;10;5). Как повернут коптер? Как он наклонен? Я знаю где он находится относительно дома, но я ничего не знаю об ориентации самого коптера в пространстве, потому что независимо от углов крена GPS позиция оператора и коптера будет та же самая.

    Фокус с магнитным полем и гравитацией в том, что направление этого вектора в система координат ЛА зависит от ориентации ЛА в пространстве. В случае с GPS ЛА и GPS дома, направление вектора от ориентации ЛА в пространстве никак не зависит.
    Вот это золотые слова вот в этом есть доля правды, Но тут есть небольшой момент. Тут просто вектора немного отличаются в том плане, что аксели и магнитометры используются в локальной СК, то есть как вы и говорите от ориентации ЛА будет меняться вектор. А с ЖПС немного другая ситуация, нам нужно менять виртуальный вектор ЖПС направления таким образом, чтобы он не менялся в зависимости от ориентации аппарата, то есть рассматриваем его уже в глобальной СК, ну типа обратная задача.
    Про калибровки акеселерометра и магнитометра я естественно знаю, более того у меня 9 коэффициентов на каждый датчик.
    Акселерометр никаким образом не сможет отделить ускорение свободного падения (которое используется в корректировке ориентации) от линейных ускорений, как не фильтруй, как не калибруй.
    Про ЖПС это вы конечно правы, но несколько метров ошибки изменят мой вектор направления на доли градуса, что не внесет большой ошибки. Но тут опять же для повышения точности можно усовершенствовать до системы RTK.
    Тут еще другой вопрос - почему никто такое не придумал, или я просто не видел, может в реале я туплю, на самом деле это нереально.

  19. #6416

    Регистрация
    12.02.2015
    Адрес
    Комсомольск-на-амуре
    Возраст
    33
    Сообщений
    742
    Записей в дневнике
    1
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    А с ЖПС немного другая ситуация, нам нужно менять виртуальный вектор ЖПС направления таким образом, чтобы он не менялся в зависимости от ориентации аппарата, то есть рассматриваем его уже в глобальной СК, ну типа обратная задача.
    Векторы акселя и компаса существуют и в локальной и в глобальной системе координат, а вектор направления на дом - только в глобальной системе координат, от не зависит от ориентации ЛА в пространстве, только от его местоположения. Так что при всем желании его не получится использовать для коррекции ориентации.

    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Акселерометр никаким образом не сможет отделить ускорение свободного падения (которое используется в корректировке ориентации) от линейных ускорений, как не фильтруй, как не калибруй.
    Не может, поэтому и говорю, использовать только тот вектор ускорения, который более-менее похож на "чистую" гравитацию (|a| ~= 1G)

  20. #6417

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Да может вы и правы, я еще подумаю, и расскажу

  21. #6418

    Регистрация
    12.02.2015
    Адрес
    Комсомольск-на-амуре
    Возраст
    33
    Сообщений
    742
    Записей в дневнике
    1
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Да может вы и правы, я еще подумаю, и расскажу
    Вообще, использовать еще и GPS для расчета ориентации было бы круто. Будет интересно, если я не прав.

  22. #6419

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Все правильно вы сказали, я не прав, не хватает еще одной вещи, надо иметь какой то датчик, который реагирует, когда поворачивается в сторону оператора, тогда можно реализовать мою систему. А этот датчик - это уже отдельный геммор, лучше уж оставить магнитометр.

  23. #6420

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    надо иметь какой то датчик, который реагирует, когда поворачивается в сторону оператора
    радиокомпас с узко направленной антенной)))
    как по вашему самолёты во вторую мировую пролетали пол континента и не сбивались с курса без GPS?

  24. #6421

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Во во, что то подобное

  25. #6422

    Регистрация
    15.06.2011
    Адрес
    Ростов-на-Дону
    Возраст
    45
    Сообщений
    864
    имея 3 антенны разнесенные по краям борта можно вычислить не только координаты но и положение в пространстве по сигналам со спутников ... но ... борт должен быть достаточно большим (чем дальше разнесены антенны тем точнее ) ... при достаточно больших габаритах можно воспользоваться геодезическими высокоточными модулями , но их цена оставляет желать лучшего ....
    в идеале обрабатывать сигнал со всех антенн одним модулем , тогда точность будет выше (можно будет мерять задержки/фазовый сдвиг сигнала между антеннами)... только существует ли такой модуль ...

  26. #6423

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Вы меня не поняли, магнитометр очень капризная штука, неровное его расположение будет давать перекосы в ориентации при наклонах аппарата
    Да, это факт .. , любые т.н. "MARG алгоритмы" этим страдают, поэтому подмешивать компас в общую кучу с горизонтом - плохая затея, не смотря на всю красивость алгоритмов типа Магвика и Махони..
    Вот посмотри: (щас кстати пытаюсь реализовать у себя) http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4570372/
    - товарищи хитрым способом сделали (?) курс по магнитометру+аксель отдельно от всего остального и кажется довольно не плохо..

  27. #6424

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,290
    Записей в дневнике
    19
    Скончался Рудольф Калман

    казалось бы как один человек мог столько успеть?!

  28. #6425

    Регистрация
    23.08.2011
    Адрес
    Краснодар
    Возраст
    38
    Сообщений
    950
    Записей в дневнике
    2
    Цитата Сообщение от oleg70 Посмотреть сообщение
    хитрым способом сделали (?) курс по магнитометру+аксель отдельно от всего остального и кажется довольно не плохо
    Ну это было на заре развития, сейчас я уверен, что все полетники магнитометр только для курса используют. Но даже если только курс подвержен наводкам магнитного поля - все равно это остается проблемой. Интересно, как удалось решить эту проблему ребятам из X-sense. В их сенсорах есть режим AHS - Active Heading Stabilization, где они заявляют крайне низкие ошибки по курсу даже в условиях сильных магнитных помех. Если кто тестировал его, интересно услышать так ли это на самом деле.

  29. #6426

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от mahowik Посмотреть сообщение
    казалось бы как один человек мог столько успеть?!
    РИП. Человек занимался Делом. А большинство из нас постоянно находятся в беличьем колесе житейских проблем...
    Цитата Сообщение от oleg70 Посмотреть сообщение
    любые т.н. "MARG алгоритмы" этим страдают, поэтому подмешивать компас в общую кучу с горизонтом - плохая затея, не смотря на всю красивость алгоритмов типа Магвика и Махони..
    Я беру только проекцию мага на на мнимый горизонт, поэтому компас влияет только на курсовую ориентацию. Однако в моих широтах даже небольшой завал горизонта существенно отклоняет курс (

    Цитата Сообщение от alexmos Посмотреть сообщение
    Интересно, как удалось решить эту проблему ребятам из X-sense. В их сенсорах есть режим AHS - Active Heading Stabilization, где они заявляют крайне низкие ошибки по курсу даже в условиях сильных магнитных помех.
    Действительно интересно, особенное если без внешней коррекции (только как?!).

    И на каких датчиках?


    Цитата Сообщение от alexmos Посмотреть сообщение
    Если кто тестировал его, интересно услышать так ли это на самом деле.
    Да, крайне интересно.

  30. #6427

    Регистрация
    12.02.2015
    Адрес
    Комсомольск-на-амуре
    Возраст
    33
    Сообщений
    742
    Записей в дневнике
    1
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Да, это факт .. , любые т.н. "MARG алгоритмы" этим страдают, поэтому подмешивать компас в общую кучу с горизонтом - плохая затея, не смотря на всю красивость алгоритмов типа Магвика и Махони..
    У меня сделано просто - вектор магнитного поля (в системе отсчета ЛА) вращается в систему отсчета "Земля", от него отбрасывается Z, вращается обратно в систему ЛА и скармливается MARG. На самом деле более оптимально, но смысл тот же. Так компас а) скомпенсирован по крену (наклоны ЛА не влияют на курс), б) не влияет на горизонт.

  31. #6428

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от jShadow Посмотреть сообщение
    вектор магнитного поля (в системе отсчета ЛА) вращается в систему отсчета "Земля", от него отбрасывается Z, вращается обратно в систему ЛА
    Точно так.

  32. #6429

    Регистрация
    24.03.2013
    Адрес
    Магнитогорск
    Возраст
    22
    Сообщений
    144
    Цитата Сообщение от alexmos Посмотреть сообщение
    В их сенсорах есть режим AHS - Active Heading Stabilization, где они заявляют крайне низкие ошибки по курсу даже в условиях сильных магнитных помех. Если кто тестировал его, интересно услышать так ли это на самом деле.
    По мануалу они используют фильтр Калмана. Я предполагаю, что в матрицу шумов измерений магнитометра идет разница между константным вектором магнитного поля Земли для данной местности + офсеты (калиброванным) и полученными измерениями. То есть по-простому, если вектор отличается от нормального, то есть какие то наводки, значит измерения сильно зашумлены, им не доверяем.
    UPD.
    4.4 Active Heading Stabilization (AHS)
    One powerful feature when it comes to heading estimation is Active Heading stabilization (AHS). AHS
    uses the magnetometers to estimate the gyro bias, but it does not reference the heading. This way,
    drift in heading can be as low as 1 deg after 60 minutes for the MTi 100-series and 3 deg after 60
    minutes for the MTi 10-series. When the magnetic field is disturbed, AHS will still function. The
    frequency though of the updates of the gyro bias will be lower, as AHS is triggered only when the
    magnetic field is stable.
    There is one known situation where AHS will have a detrimental effect on the performance. When the
    magnetic field is changing very slowly (e.g. when an object is rotating slowly, less than e.g. 0.5 deg/s),
    AHS might estimate the gyro bias incorrectly.
    When AHS is applied to a filter profile that uses the magnetic field as a reference, the magnetic field
    will no longer be used as a reference. Heading output will be heading tracking instead of referenced
    heading.
    Собсно, кратко они пишут, что при резких изменениях магнитного поля, частота оценки биаса гиры по Z становится меньше. При этом если скорость изменения магнитного поля низкая, то AHS будет работать некорректно, и соответсвенно курс будет неверен.
    Последний раз редактировалось ИльяПРо; 05.08.2016 в 10:29.

  33. #6430

    Регистрация
    23.08.2011
    Адрес
    Краснодар
    Возраст
    38
    Сообщений
    950
    Записей в дневнике
    2
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Собсно, кратко они пишут, что при резких изменениях магнитного поля, частота оценки биаса гиры по Z становится меньше. При этом если скорость изменения магнитного поля низкая, то AHS будет работать некорректно, и соответсвенно курс будет неверен.
    Да, предполагал что-то подобное. Спасибо за информацию. А датчики у них от Fairchild - FIS 1100. https://www.fairchildsemi.com/products/sensors/
    У меня есть отладочный комплект - один-в-один как на картинке xsense. Видимо, лицензировали софт и продают под разными брендами.

  34. #6431

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от rual Посмотреть сообщение
    Действительно интересно, особенное если без внешней коррекции (только как?!).
    Я вот ссылочку выше давал, может кто попробует сделать реализацию на Си ? Там вроде идея относительно просто и доступно разжевана... если есть понятия в области кватернионов то вообще - "конструкция выходного дня"..
    (я себе накропал уже функцию, но пока че то не клеится, с кватернионами приходится разбираться по ходу,.. может оси не так выравниваю, может банальная ошибка в алгоритме вращения... короче работать надо)

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

    если кому интересно, вот моя пробная функция (попытка реализации):
    Вложения
    Последний раз редактировалось oleg70; 05.08.2016 в 15:23.

  35. #6432

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Я вот ссылочку выше давал, может кто попробует сделать реализацию на Си ? Там вроде идея относительно просто и доступно разжевана... если есть понятия в области кватернионов то вообще - "конструкция выходного дня"..
    Там разжевывают математику как вращать кватернионами локальные вектора и как комп.фильтр сделать в кватернионах. Где там "изюминка" с хорошим магом?

  36. #6433

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от rual Посмотреть сообщение
    Где там "изюминка" с хорошим магом?
    Идея алгоритма такая (как я понял в меру знания языка):
    1. рожаем кватернион акселерометра (с нужными хитрыми ограничениями для избежания сингулярностей)
    2. берём вектор магнитометра и вращаем его полученным ранее хитрым кватернионом акселя.
    3. теперь рожаем кватернион магнитометра (тоже с хитрыми ограничениями от авторов..)
    4. рожаем конечный кватернион (Yaw) перемножая кватернион акселя (1.) и кватернион мага (3.)

    типа основной "замес" в том, что кватернион магнитометра - получаем сначала как функцию от кватерниона акселя а потом при перемножении их "убиваются все сингулярности" и - вот оно якобы счастье... (графики, аплодисменты и т.д. )))
    Вообще говоря похоже на:
    Цитата Сообщение от jShadow Посмотреть сообщение
    У меня сделано просто - вектор магнитного поля (в системе отсчета ЛА) вращается в систему отсчета "Земля", от него отбрасывается Z, вращается обратно в систему
    но, не уверен, может и есть что то другое...

  37. #6434

    Регистрация
    23.08.2011
    Адрес
    Краснодар
    Возраст
    38
    Сообщений
    950
    Записей в дневнике
    2
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Вот тогда и обсудим результаты, глядишь чего и получится....(уж больно хорошие результаты пророчат авторы статьи) Там, кстати, во второй части (пока не смотрел подробно) ещё и про влияние негравитационых ускорений акселя есть решение, через динамический коэфициент усиления....
    Да ничего там нового нет, все тот же комплементарник только в замороченной форме кватернионов (со всеми вытекающими математическими тонкостями через которые придется продираться). Динамический коэффициент на акселе по анализу длины вектора гравитации - идея старая, но не рабочая, хороша только для тестовых отчетов, но в реальности его нужно применять очень акуратно, особенно если система постоянно в движении (я так и не получил заметных улучшений).

    Цитата Сообщение от oleg70 Посмотреть сообщение
    1. рожаем кватернион акселерометра (с нужными хитрыми ограничениями для избежания сингулярностей) 2. берём вектор магнитометра и вращаем его полученным ранее хитрым кватернионом акселя. 3. теперь рожаем кватернион магнитометра (тоже с хитрыми ограничениями от авторов..)
    Вот именно что все хитрости нужны только для того, чтобы применить математику кватернионов к этой задаче. Тогда как в форме DCM все очень тривиально и просто считается.

  38. #6435

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от alexmos Посмотреть сообщение
    чтобы применить математику кватернионов к этой задаче.
    Наверно люди неспроста потратили силы на это, может и результат всёж получше будет чем у DCM (?),

    Цитата Сообщение от alexmos Посмотреть сообщение
    Да ничего там нового нет, все тот же комплементарник
    Ну да, согласен (в принципе они этого и не скрывают), но меня больше заинтересовала часть именно про магнитометр и аксель..

    Цитата Сообщение от alexmos Посмотреть сообщение
    Тогда как в форме DCM все очень тривиально и просто считается.
    Посоветуйте источник, где посмотреть, если не трудно...

  39. #6436

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,290
    Записей в дневнике
    19
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Собсно, кратко они пишут, что при резких изменениях магнитного поля, частота оценки биаса гиры по Z становится меньше. При этом если скорость изменения магнитного поля низкая, то AHS будет работать некорректно, и соответсвенно курс будет неверен.
    либо вы пропустили самое главное, либо опустили это как очевидное

    но основная мысль в этом абзаце
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    One powerful feature when it comes to heading estimation is Active Heading stabilization (AHS). AHS uses the magnetometers to estimate the gyro bias, but it does not reference the heading.

    Тут идея в том что они НЕ корректируют азимут по магнетометру (как это сделано в open source системах, которые смотрел), а корректируют биас гир!
    И это очень похоже на то, о чем говорил visasta пару годков назад. Что мол ему пофигу например на силовые наводки на компас и что он его использует лишь для коррекции...
    В общем идея такова Берем дифференциал мага по Z, и сравниваем его с угловой скоростью по Z. Если отличие не больше определенного порога (скажем 10%), то корректируем биас гиры, если порог выше, то значит маг врет и тогда в сад его, либо в э том случае уменьшаем коэф. коррекции биаса гиры (с увеличением % отличия между угловой скоростью гир по Z и диф. мага по Z).

    А вот тут они меня запутали
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    When AHS is applied to a filter profile that uses the magnetic field as a reference, the magnetic field will no longer be used as a reference. Heading output will be heading tracking instead of referenced heading.
    Пишут что маг все же используется для азимута, но при этом НЕ используется когда, когда работает AHS (т.е. биас гир коректируется по магу)

    UPD:
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    Собсно, кратко они пишут, что при резких изменениях магнитного поля, частота оценки биаса гиры по Z становится меньше.
    Цитата Сообщение от ИльяПРо Посмотреть сообщение
    When the magnetic field is disturbed, AHS will still function. The frequency though of the updates of the gyro bias will be lower, as AHS is triggered only when the
    magnetic field is stable.
    и тут речь скорее не про резкие изменения магнитного поля, а про некоректные изменения, т.е. когда диффернциал. маг поля сильно не сходится с угловой скоростью гиры...
    Последний раз редактировалось mahowik; 05.08.2016 в 19:27.

  40. #6437

    Регистрация
    23.08.2011
    Адрес
    Краснодар
    Возраст
    38
    Сообщений
    950
    Записей в дневнике
    2
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Наверно люди неспроста потратили силы на это, может и результат всёж получше будет чем у DCM (?),
    просто другой подход. Есть матрицы поворота, есть кватернионы которые некотрые вещи решают проще (интерполяция угла например) но это лишь математика, а логика та же - комплементарный фильтр. Хотя, возможно я ошибаюсь и где внутри формул скрыты существенные отличия. Просто мне сложно понять все эти выкладки с кватернионами до последнего символа, тогда как DCM я понимаю полностью.

    Цитата Сообщение от mahowik Посмотреть сообщение
    В общем идея такова Берем дифференциал мага по Z, и сравниваем его с угловой скоростью по Z. Если отличие не больше определенного порога (скажем 10%), то корректируем биас гиры, если порог выше, то значит маг врет и тогда в сад его, либо в э том случае уменьшаем коэф. коррекции биаса гиры (с увеличением % отличия между угловой скоростью гир по Z и диф. мага по Z).
    Да, видимо так и происходит, но вся соль в деталях реализации. Например, поворачиваем сенсор вблизи металлического предмета, и ДУС видит одну скорость а компасс другую (т.к. вектор идет по эллипсоиду и в зависимости от ориентации к полуосям будет разная скорость). Или, объект медленно движется посупательно в неравномерном магнитном поле - вектор поля крутится, а гироскопа нет. При этом разница может вполне укладываться в 10%.

  41. #6438

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,290
    Записей в дневнике
    19
    Цитата Сообщение от alexmos Посмотреть сообщение
    Да, видимо так и происходит, но вся соль в деталях реализации. Например, поворачиваем сенсор вблизи металлического предмета, и ДУС видит одну скорость а компасс другую (т.к. вектор идет по эллипсоиду и в зависимости от ориентации к полуосям будет разная скорость). Или, объект медленно движется посупательно в неравномерном магнитном поле - вектор поля крутится, а гироскопа нет. При этом разница может вполне укладываться в 10%.
    все верно тут дьявол в деталях
    важно верно найти признаки/события глюков мага + вкл/выкл лимиты настроить... но даже если все будет работать, то нет 100% гарантии что система не выпрыгнет из штанов (из стабилизации) в определенный момент...

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

  42. #6439

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от oleg70 Посмотреть сообщение
    1. рожаем кватернион акселерометра (с нужными хитрыми ограничениями для избежания сингулярностей)
    2. берём вектор магнитометра и вращаем его полученным ранее хитрым кватернионом акселя.
    3. теперь рожаем кватернион магнитометра (тоже с хитрыми ограничениями от авторов..)
    4. рожаем конечный кватернион (Yaw) перемножая кватернион акселя (1.) и кватернион мага (3.)
    У меня так самая первая АХРС работала, при больших вибрациях получаются большие нелинейности, из-за высокой вероятности попадания в зону неопределенности.


    Цитата Сообщение от oleg70 Посмотреть сообщение
    типа основной "замес" в том, что кватернион магнитометра - получаем сначала как функцию от кватерниона акселя а потом при перемножении их "убиваются все сингулярности" и - вот оно якобы счастье... (графики, аплодисменты и т.д. )))
    Не вчитался как тут, у меня в первом алго формировался кватернион из произведения (поворота) кватерниона акселя на кватернион мага. Болтало его страшно. Потом он, уменьшенный на коэф. фильтра, складывался с кватернионом АХРС(угловым интегралом ДУС), после кватернион АХРС нормировался.


    Цитата Сообщение от mahowik Посмотреть сообщение
    они НЕ корректируют азимут по магнетометру (как это сделано в open source системах, которые смотрел), а корректируют биас гир!
    У меня так работают все алго, начиная со 2й версии (сентябрь 2013). Начальное смещение дусов высчитывается при арминге перед полётом.

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

    Цитата Сообщение от mahowik Посмотреть сообщение
    важно верно найти признаки/события глюков мага + вкл/выкл лимиты настроить... но даже если все будет работать, то нет 100% гарантии что система не выпрыгнет из штанов (из стабилизации) в определенный момент...
    Тут всё просто - нужно ограничить вектор мага и отбросить координату Z, кватернион доворота будет (mx,my,0,0). Алго может "выскочить из штанов" только при деградации итогового кватерниона АХРС стремящемуся к (0,0,0,0), чтоб так не получилось нужно ограничивать угловые дельты за отсчёт до МаксУгловаяСкорость*dt (на случай получения глючного отсчёта от ДУС), также ограничивать макс.значения смещения и макс. скорость изменения смещения за отсчёт.

    Цитата Сообщение от mahowik Посмотреть сообщение
    для стабильности, к этому механизму корекции биас гиры, можно добавить корекцию вектора азимута по гпс, когда система в движении...
    А есть мысли как это сделать? У мну в моделях работает, а в природе нет(((

    Цитата Сообщение от oleg70 Посмотреть сообщение
    Я вот ссылочку выше давал, может кто попробует сделать реализацию на Си ?
    Вот из моего первого проекта (в файле imu.cpp).

    Код:
    #ifdef ACC_COMP_MODE    /******* аксель + компас ********/	
    	 if (vAcc.z < 0.0f)
    	 {
    	 	qAcc.set(0,0,1,0);
    		/* находим кватернион положения по акселю */
    		q.set(-vAcc.x,vAcc.y,vAcc.z, 0);		
    		/* приведение вектору гравитации */	
    		qAcc *= q;		
    		qAcc.normalize();
    		qAcc.w += 1.0f;
    		
    		q.set(1,0,0,0); 
    		qAcc *= q;		 	
    	} else {
    		qAcc.set(0,0,-1,0);
    		/* находим кватернион положения по акселю */
    		q.set(vAcc.x,vAcc.y,vAcc.z, 0);		
    		/* приведение вектору гравитации */	
    		qAcc *= q;		
    		qAcc.normalize();
    		qAcc.w += 1.0f;
    	}
    
    	/* приведение к азимуту */
    //		q.set(0,0,(qIMU.w*qIMU.z+qIMU.x*qIMU.y),(1-2*(qIMU.y*qIMU.y+qIMU.z*qIMU.z)));
    //		qAcc *= q;
    	
    	/* определяем  длину дуги между G и ИНС */
    	qAcc.normalize();
    	float delta = inner_product(qIMU, qAcc);
    	if  (abs(1 - AccMag) < 0.05f)	{		
    		q = (qIMU * (1.0f-omega))+(qAcc*delta*omega);					
    		if ((q.w!=0)||(q.x!=0)||(q.y!=0)||(q.z!=0))	qIMU = q; 		
    	}
    Последний раз редактировалось rual; 06.08.2016 в 14:39.

  43. #6440

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,290
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    У меня так работают все алго, начиная со 2й версии (сентябрь 2013). Начальное смещение дусов высчитывается при арминге перед полётом.
    так я не говорил про начальную калибровку биасов гирр и это самом собой что они высчитываются до арма (или с подачей питания как в вие)... А речь шла про калибровку биаса гиры Z оси по дифф. магнетометра в полете, если значение дифф. мага валидное... так же из источника выше излагается идея о том что не нужно выполнять коррекцию результируещего Z вектора (т.е. результат интегрировния гир) по магу... у тебя так? точности гир хватает что бы не уплывал интеграл гиры по Z? Из моей практики не корректируемый интеграл долго не проживет...

    Цитата Сообщение от rual Посмотреть сообщение
    А есть мысли как это сделать? У мну в моделях работает, а в природе нет(((
    на сколько помню в арду сделано это давно, но я не разбирался... у Константина в iNav это вроде тоже есть...
    https://github.com/iNavFlight/inav

+ Ответить в теме

Похожие темы

  1. Система стабилизации гиро+акселерометр
    от Фантомас в разделе Полеты по камере, телеметрия
    Ответов: 32
    Последнее сообщение: 25.01.2011, 14:47
  2. Продам Продам Клона Trex 450SEV2 + Аппаратура + Запчасти+ система стабилизации RTF
    от omegapraim в разделе Барахолка. Вертолеты
    Ответов: 1
    Последнее сообщение: 12.01.2011, 18:16
  3. Продам Трёхосевую систему стабилизации Turnigy V-Bar 600
    от avi@tor в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 08.11.2010, 13:02
  4. Продам Gaui система стабилизации GU365, дёшево.
    от avi@tor в разделе Барахолка. Вертолеты
    Ответов: 3
    Последнее сообщение: 03.08.2010, 11:13
  5. Системы стабилизации
    от max815 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 16
    Последнее сообщение: 11.03.2010, 03:14

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения