Хорошо. Представьте, что коптер неподвижно лежит ровно по уровню на земле, а его датчик показывает ускорение, направленное на юго-восток, величиной = 3g.
Вопрос: что вы, как разработчик коптера, планируете делать с показаниями датчика?
Боюсь Вы не уловили суть. Пожалуйста, обратите особое внимание на текст статьи, начиная со слов «Например, мы знаем, что если акселерометр поставить в уровень с горизонтом...»
MARG — это не фильтр. Это аббревиатура, означающая реализацию ИНС с магнитометром. Приведённый вами документ — это сокращённая версия отчёта, перевод которой находится перед вами — это данная статья.
Спасибо за замечание. Не хотел загромождать статью теоретическими деталями.
Про то, что одно и то же вращение можно описать двумя кватернионами, вроде бы и так понятно.
Например давайте опишем движение стрелки часов, если ось стрелки совпадает с осью X.
В первом кватернионе вектор оси будет направлен от лицевой стороны циферблата (w = 0,7071; x = 0,7071; y = 0; z = 0), а разворот будет осуществляться по часовой стрелке. Во втором кватернионе вектор оси и направление поворота осуществляются в обратную сторону.
Про наборы углов Эйлера и складывание рамок — это скорее для статьи про углы Эйлера-Крылова. Про наборы углов может быть интересной деталью — приведите пожалуйста пример. Если я правильно понимаю, речь о том. что например, только тангаж 90 равен курс 180, тангаж 90, крен 180.
Обратный кватернион предполагает только обратный разворот без масштабирования, поэтому нормализуется.
То есть если все компоненты кватерниона умножить на число, например на 3, то после поворота вектора таким кватернионом, длина вектора увеличится в 3 раза.
Давайте рассмотрим прикладную сторону вопроса и посмотрим на исходники от NVIDIA. Вот эта функция только отражает кватернион:
Вопрос: что вы, как разработчик коптера, планируете делать с показаниями датчика?
Про то, что одно и то же вращение можно описать двумя кватернионами, вроде бы и так понятно.
Например давайте опишем движение стрелки часов, если ось стрелки совпадает с осью X.
В первом кватернионе вектор оси будет направлен от лицевой стороны циферблата (w = 0,7071; x = 0,7071; y = 0; z = 0), а разворот будет осуществляться по часовой стрелке. Во втором кватернионе вектор оси и направление поворота осуществляются в обратную сторону.
Про наборы углов Эйлера и складывание рамок — это скорее для статьи про углы Эйлера-Крылова. Про наборы углов может быть интересной деталью — приведите пожалуйста пример. Если я правильно понимаю, речь о том. что например, только тангаж 90 равен курс 180, тангаж 90, крен 180.
Должен спросить — что Вы понимаете под Cx и Cy?
То есть если все компоненты кватерниона умножить на число, например на 3, то после поворота вектора таким кватернионом, длина вектора увеличится в 3 раза.
Давайте рассмотрим прикладную сторону вопроса и посмотрим на исходники от NVIDIA. Вот эта функция только отражает кватернион:
А эта функция отражает и нормализует:
Где функция нормализации выглядит так: