Вычисление крена и тангажа на самолете.

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем qwerty12344321, 25 мар 2018.

  1. Возникла проблема вычисления углоов крена и тангажа на самолете. Вначале думал использовать акселрометр и смотреть куда уехал вектор гравитации. Но потом понял что самолет имеет свойство ускорться благодаря моторам. И в итоге проекцию вектора g + тяги мотора. Изменяется она нелинейно(но это неточно). А гироскопы имеют дрейф(показания после клабировки уплывают). Магнитометр вообще непонятно как юзать. Вот и вопрос, как найти эти углы. Из элементной базы - пока аксель, но могу заказать и гироском и магнитометр, и все что есть на алике. Подключаться будет к атмеге.
     
    Последнее редактирование: 26 мар 2018
  2. Добрый день. Я занимался похожим вопросом в системе контроля жеста. Там тоже снимались показания датчиков с перчатки-джойстика. Датчики для данной задачи должны быть типа IMU (датчики инерциальной навигации)
    На сайте амперки есть вот такой модуль http://amperka.ru/product/troyka-imu-10-dof
    На сайте iarduino.ru (или у китайцев) можно заказать Gy-521
    или
    http://iarduino.ru/shop/Expansion-payments/imu-sensor-na-9-stepeney-svobody-trema-modul-v2-0.html
    или
    http://iarduino.ru/shop/Sensory-Datchiki/3-osevoy-giroskop-akselerometr-gy-521.html

    суть одна - одного датчика недостаточно - нужно использовать показания и гироскопа и акселерометра.
    эти показания обрабатываются фильтрами (есть фильтр Калмана или фильтр Маджвика, последний считается более эффективным по вычислительным ресурсам и часто используется в навигации роботов)
    вот урок
    http://wiki.amperka.ru/продукты:troyka-imu-10-dof
    и Амперка создала библиотеку через которую вычисление ваших углов выглядит так
    yaw = filter.getYawDeg();
    pitch = filter.getPitchDeg();
    roll = filter.getRollDeg();
    то есть
    1. настраиваем фильтр
    2. читаем показания гироскопа и акселерометра
    3. запихиваем их в фильтр
    4. получаем от фильтра "оптимальные" крен, тангаж и рысканье
     
    savarez и qwerty12344321 нравится это.
  3. кстати совет - если будете использовать Gy-521 то нужно экспериментально выбрать ту скорость, с которой опрашивать датчик, не перегружая контроллер. Если скорость чтения показаний будет слишком высокой, есть риск что датчик будет показывать неадекватные цифры. Думаю, около 3 раз в секунду не будет перегрузом. Сам столкнулся с мусором в порту данных если читать gy521 с задержкой 50 мс в главном цикле. Плказания были похожи на шум. Увеличение задержки (уменьшение частоты опроса инерциального модуля) частично решало проблему помех. Но большую их часть снимает сам фильтр Маджвика.
    Пример-урок с фильтром Кламана вот тут http://lesson.iarduino.ru/page/urok-11-podklyuchenie-giroskopa-gy-521-mpu-6050-k-arduio/

    Успехов !
     
    qwerty12344321 нравится это.
  4. Спасибо вам огромное. Просто в интернет все по кускам, и я до конца не понял. Так и думал использовать два датчика компенсируя один другими. Был опыт с магнетомтром(от наклона показания уплывают, и для коррекции использовался аксель) Еще раз спасибо вам огромное.
     
  5. На здоровье!
    Да, направление мысли было верным, надо компенсировать один сенсор другим.
    Гироскопы (цифровые) хорошо работают на малых угловых скоростях и ошибались при "дерганиях" или резких "бочках" или "штопорах", а акселерометры хорошо показывают себя на резких ускорениях и "дергаются" даже при относительно стабильном "висении" поэтому при расчете их в фильтрах на резком движении точнее будет акселерометр и на низких скоростях и плавном маневрировании (типа разворота косой петлей на крейсерской скорости) показания от гироскопа (скорее всего) будут точнее показаний акселерометра. И именно фильтр снимает головную боль от усреднения этих показаний. Хотя матричная математика там довольно серьезная. Но ура, библиотека все сделает за нас.
    Успехов.
     
  6. есть такой термин "дрейф компаса" - накапливается погрешность на цифровых магнетометрах. Поиск по вики Амперки вас должен выручить.
     
  7. Чесно, не особо пользовался вики амперки. Она полоха гуглиться. Админы амперки, почините robots.txt! Но я имел ввиду не дрейф, а иммено чуть чуть наклонил датчик, и heading получаемый чисто с магнитометра тут же уплыл градусов на 20. Но не суть. А насчет библиотеки - ура Маджвик все сделает за нас. Респект таким как он... Теперь буду искать и по вики. Спасибо.