Квадрокоптер содержит (помимо прочего) два отдельных и независимых алгоритма: алгоритм оценки ориентации и алгоритм управления.
Алгоритм оценки ориентации вычисляет информацию об ориентации квадрокоптера: углы крена, тангажа и рыскания.
Алгоритм управления отвечает за управление двигателями таким образом, чтобы ориентация квадрокоптера соответствовала тому, что ожидает пилот (или программное обеспечение автопилота). Этот алгоритм предназначен для считывания оцененных углов квадрокоптера (из алгоритма оценки положения) и изменения скорости двигателя, чтобы попытаться соответствовать желаемым углам. PID - это подходящий алгоритм управления для квадрокоптеров.
Блокировка подвеса - это явление, которое может происходить в алгоритме оценки отношения. Это не имеет ничего общего с алгоритмом управления. Таким образом, вам не нужны ESC, двигатели или пропеллеры для проверки блокировки карданного подвеса: вы можете изменить свой код для отображения углов крена, наклона и рыскания, а также проверить, что правильные значения рассчитываются при ручном перемещении квадрокоптера. Вы можете сделать это с помощью квадрокоптера, подключенного к компьютеру, через Bluetooth или другими способами, в зависимости от вашей платформы.
Если углы рассчитаны правильно, вам не нужно беспокоиться о кватернионах. Если они не рассчитаны правильно, кватернионы могутпомочь тебе. Алгоритм оценки ориентации должен выводить 3 угла для использования алгоритмом управления, однако он может использовать другое внутреннее представление, такое как кватернионы или матрицы 3х3. В этом случае он все равно преобразует информацию об ориентации в углы, чтобы предоставить пригодные данные для алгоритма управления. Вообще говоря, кватернионы не интуитивны, но эффективны в вычислительном отношении. Это делает их хорошо подходящими для медленных платформ, таких как Arduino. Матрицы или углы могут быть более легким выбором для более быстрого оборудования. Если вам нужно, чтобы я подробно остановился на одном или другом решении, пожалуйста, дайте мне знать, но было бы преждевременно давать подробности на данном этапе, поскольку я не уверен, что вам нужно внедрять кватернионы.
Наконец, если углы рассчитаны правильно, способ сделать вашу петлю квадрокоптера состоит в контроле угловой скорости, а не угла. Если ваши палки представляют угол квадрокоптера, то сделать полный цикл невозможно: попробуйте визуализировать положение палочек по мере петли квадрокоптера, и вы должны понять, почему. Однако, если палочки контролируют угловую скорость, вы можете контролировать скорость, с которой они вращаются.
Удачи с вашим проектом!
Примечание. Для простоты я не упомянул теоретический вариант манипулирования данными в виде матриц или кватернионов как в алгоритме оценки ориентации, так и в алгоритме управления. Я никогда не видел квадрокоптер, реализующий такие алгоритмы.