Um quadcopter contém (entre outras coisas) dois algoritmos separados e independentes: um algoritmo de estimativa de atitude e um algoritmo de controle.
O algoritmo de estimativa de atitude calcula informações sobre a orientação do quadcopter: os ângulos de rotação, inclinação e guinada.
O algoritmo de controle é responsável por acionar os motores, de modo que a orientação do quadcopter corresponda ao que o piloto (ou o software do piloto automático) espera. Esse algoritmo é o que lê os ângulos estimados do quadcóptero (a partir do algoritmo de estimativa de atitude) e altera a velocidade dos motores para tentar corresponder aos ângulos desejados. Os PIDs são um algoritmo de controle comum e adequado para quadcopters.
O bloqueio do cardan é um fenômeno que pode ocorrer no algoritmo de estimativa de atitude. Não tem nada a ver com o algoritmo de controle. Como tal, você não precisa de ESCs, motores ou hélices para testar a trava do cardan: você pode modificar seu código para exibir seus ângulos de rotação, inclinação e guinada e testar se os valores corretos são calculados à medida que você move manualmente seu quadrotor. Você pode fazer isso com o quadcopter conectado ao computador, via Bluetooth ou usando outros métodos, dependendo da plataforma.
Se os ângulos são calculados corretamente, você não precisa se preocupar com quaterniões. Se não forem calculados corretamente, os quaternions podemajudar você. O algoritmo de estimativa de atitude deve gerar 3 ângulos para o algoritmo de controle usar, no entanto, ele pode usar uma representação interna diferente, como quaterniões ou matrizes 3x3. Nesse caso, ele ainda converteria as informações de atitude em ângulos para fornecer dados úteis ao algoritmo de controle. De um modo geral, os quaternions não são intuitivos, mas computacionalmente eficientes. Isso os torna adequados para plataformas lentas, como o Arduino. Matrizes ou ângulos podem ser uma escolha mais fácil para hardware mais rápido. Se você precisar que eu elabore uma solução ou outra, informe-me, mas seria prematuro fornecer detalhes nesta fase, pois não estou convencido de que você precise implementar quaterniões.
Finalmente, se os ângulos são calculados corretamente, a maneira de fazer o loop do seu quadcopter é controlar a taxa angular e não o ângulo. Se seus paus representam o ângulo do quadcóptero, não há como fazer um loop completo: tente visualizar a posição dos paus à medida que o quadcóptero faz um loop e você deve entender o porquê. No entanto, se os manípulos controlarem a taxa angular, você poderá controlar a velocidade com que ele faz o loop.
Boa sorte com seu projeto!
Nota: Por uma questão de simplicidade, não mencionei a opção teórica de manipular os dados como matrizes ou quaternions, tanto no algoritmo de estimativa de atitude quanto no algoritmo de controle. Eu nunca vi um quadcopter implementando tais algoritmos.