Единый протокол

utya1988

2 Mikele_P
все датчики 3-x осевые. Широко используется фильтр Калмана (ну про него наверно только ленивый не знает) и сейчас стал популярен альфа-бета фильтр (комплиментарный фильтр). Но это так сказать не мой путь, у меня должна быть новизна😁

Для серьезного приложения гироскопов (ДУС) должно быть не менее чем по 2 группы на ось в разных масштабах измерений с перекрытием в рабочей зоне, чтоб охватывать диапазон по-шире. И для уменьшения искожений не менее чем по два в группе в одном масштабе. Даже от двух погрешность по дрейфу падает, если не изменяет память, в 4-8 раз. (синергетический эффект)

ну вот это так сказать и пытаюсь реализовать, если дадите источники, где такое было написано, буду благодарен.

А фильтровать ИМХО лучше уже разработанным алгоритмом.(не помню как звать на вскидку. найду – отпишусь. или тут подскажут.) там идет преобразование не из углов, а из векторов.

это похоже на алгоритмы расчёта углов через кватернионы, но это не алгоритмы фильтрации, а расчёт углов.

данные этого вектора весово смешиваются с данными от 3-х осевого акселерометра – корректируют. Пробовал. Если точно измерить ДУС, то при резких скачках угловой скорости достаточно точно определяет крен и тангаж. А вот курс – “плывет” по шуму ДУСа. Еще по той же схеме туда можно (опционально) замешивать данные от 3-х осевого компаса. Тогда и курс держать будет на ура. Данные вектора легко преобразуются в углы.

а это в простом варианте и есть альфа-бетта фильтр, в сложном “какой-то” фильтр Калмана.

2RedSun
Я почитал Вашу ссылку и смотрю есть много протоколов

  • Supported Auto-Pilot Protocols
  • ArduPilot Legacy (ASCII)
  • ArduPilot Mega Binary
  • MatrixPilot (UavDevBoard)
  • AttoPilot
  • MAVlink
  • FY21AP II
  • Gluonpilot

Какой из них максимально востребованный?

Mikele_P
utya1988:

похоже на алгоритмы расчёта углов через кватернионы

Точно так. Просто слово это умное забыл.

utya1988:

Широко используется фильтр Калмана и сейчас стал популярен альфа-бета фильтр

Альфа-бета – ИМХО туповат. Идея, конечно хорошая, но это попытка сгладить значения за счет статистики. А в нашем случае, когда оно должно жить сейчас, т.е. он-лайн – оно не канает. Сглаживая оно угробляет точность. Да и Кальман не безгрешен. И его пробовал. Коррекция одних данных через другие – более эффективна.
Уж лучше делать массивы датчиков. И по данным большого массива получать более точные данные по угловым скоростям. А значит, интегрируя по времени (время между замерами считать) получать данные по углам. (хотя уж лучше получать вектора)
Или, как вариант “совмещать ужа с ежом”. У вас куча ДЛУ. В одной из книг читал, что если их разнести от ЦТ на некоторое расстояние, то можно с некоторой точностью по разности сил вычислять углы смещения. Конечно это было писано для кораблей. Но если усложнить, то и для систем вращающихся в трехмере покатит. А значит смешав их через кватернионы с данными простого ДЛУ и ГИРов можно добиться усреднения и устранения “плывунов”. Хотя, думаю, идея уже не нова.

utya1988:

если дадите источники, где такое было написано

Извините. Я-то диссер на эту тему не пишу… Источники, увы, не сохранил. Просто принял к сведению и держу в голове.

ADF

Кватернионы - слово то какое хитрое. Сейчас давно не выпендриваются, говорят: матрицы, вектора…

Yahen
ADF:

Сейчас давно не выпендриваются, говорят: матрицы, вектора…

Хм… как бы матрицы это одно, векторы - другое а кватернион - третье. 😃

ADF

Все - частный случай матрицы, такшто нефик. 😃

Yahen
ADF:

Все - частный случай матрицы, такшто нефик

Так можно и натуральные числа к матрицам свести. Тоже типа частный случай 😃

ADF

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

RedSun
Mikele_P:

Или, как вариант “совмещать ужа с ежом”. У вас куча ДЛУ. В одной из книг читал, что если их разнести от ЦТ на некоторое расстояние, то можно с некоторой точностью по разности сил вычислять углы смещения. Конечно это было писано для кораблей. Но если усложнить, то и для систем вращающихся в трехмере покатит.

Подозреваю, что речь шла не про измерение углов, а про измерение угловых ускорений, из которых углы получаются двойным интегрированием. Уж лучше честный ДУС, благо их есть и незадорого 😃

utya1988:

2RedSun
Я почитал Вашу ссылку и смотрю есть много протоколов
Какой из них максимально востребованный?

Вам оно для чего ? Если хочется получать красивые картинки из наземки, то достаточно любого, который эта самая наземка понимает. Творение ХеппиКилмора понимает почти все из Вашего списка. Родной для нее ArduPilot Legacy (ASCII). Я Вам прислал ссылку на код, который этот протокол реализует. Вполне достаточно для экспериментов…
Сырцы, реализующие другие протоколы, придется выковыривать из других проектов. Это вполне реально, я как-то приживил к ардупилоту глюоновскую наземку. Требует аккуратности и понимания того, что делаешь.