Saltar al contenido

Derivado de cuaterniones

Después de tanto trabajar pudimos encontrar la solución de esta pregunta que agunos usuarios de esta web tienen. Si deseas compartir algún detalle no dudes en compartir tu información.

Solución:

Los derivados de cuaterniones no son tan sencillos. Por lo general, se requiere una dirección (ver aquí).

Supongo que su proceso de pensamiento detrás de $ H_2 $ fue algo así como

$$ h_2 = q_1 otimes q otimes q_2 = q_1 otimes (q otimes q_2) = [q_1]_L (q otimes q_2) = [q_1]_L [q_2]_R q $$ $$ H_2 = frac parcial h_2 parcial q = [q_1]_L [q_2]_R $$

donde asigné índices L, R como en su referencia. Pero esos son los índices opuestos a lo que escribiste. Esto también tiene otros problemas que abordaré en un momento.

Para $ H_1 $, tiene la matriz de coseno de dirección en función de $ q $ pero no parece haber tomado la derivada de $ C (q) $ en absoluto. Entonces no estoy siguiendo la lógica allí.

Mirando la definición de la matriz de coseno de dirección en términos de los componentes de $ q $, siento que esto es aventurarse en el territorio del abuso de los cuaterniones como un contenedor de 4 variables.

Hay muchas cosas que suceden aquí, así que permítanme tratar de desenredarlas un poco y anotarlas por separado.

Representación de cuaterniones

Si desea utilizar álgebra lineal, ya existe una representación matricial de valor real de los cuaterniones. Sugeriría usar esa representación si desea aclarar el contenido de algunas ecuaciones.

En cambio, aquí los cuaterniones se tratan como un vector de columna (ecuación 7 de su referencia), lo que lo lleva a usar dos representaciones adicionales de cuaterniones para ajustarlos a una configuración de álgebra lineal para representar la multiplicación. Esto confunde el contenido matemático.

Usando las definiciones en su referencia:

$$ [a + x i + y j + z k]_L = begin bmatrix a & -x & -y & -z \ x & a & -z & y \ y & z & a & -x \ z & -y & x & a \ end bmatrix $$

$$ [a + x i + y j + z k]_R = begin bmatrix a & -x & -y & -z \ x & a & z & -y \ y & -z & a & x \ z & y & -x & a \ end bmatrix $$

Eso entonces significa:

$$[zk]_L [yj]_R = begin bmatrix 0 & 0 & 0 & -z \ 0 & 0 & -z & 0 \ 0 & z & 0 & 0 \ z & 0 & 0 & 0 end bmatrix begin bmatrix 0 & 0 & -y & 0 \ 0 & 0 & 0 & -y \ y & 0 & 0 & 0 \ 0 & y & 0 & 0 end bmatrix = begin bmatrix 0 & -yz & 0 & 0 \ -yz & 0 & 0 & 0 \ 0 & 0 & 0 & -yz \ 0 & 0 & -yz & 0 end bmatrix $$

Lo cual no se ajusta a la forma de ninguna de las representaciones anteriores de un cuaternión.

Por lo tanto, diciendo $ H_2 = [q_1]_R [q_2]_L $, está indicando el concepto que se usa aquí para una derivada de una función de cuaternión, puede resultar en algo fuera del conjunto de funciones de cuaterniones. ¿Es esto lo que pretendías? ¿Cómo piensa interpretar este objeto?

Representar varias cosas con el mismo objeto

Podemos usar un valor real para representar la temperatura o la distancia, pero estas son cosas distintas, por lo que de alguna manera estas ‘etiquetas de tipo’ (‘unidades’) deben llevarse para recordarnos esto.

De manera similar, tratar de representar tanto las rotaciones como las posiciones con cuaterniones puede confundir las cosas si uno no tiene cuidado de llevar estas ‘etiquetas de tipo’. Si bien puede hacer una notación más cercana a cómo escribiría el cálculo en código, estos objetos (posiciones y rotaciones) no están en la misma base y sus componentes se transforman de manera diferente si cambiamos la base.

Incluso la opción subyacente de representar una rotación con un cuaternión (de modo que uno pueda escribir $ x ‘= q otimes x otimes q ^ * $ como se hizo en la página 3 de su referencia), en realidad no se relaciona con la matemática subyacente estructuras tan limpiamente como uno pueda imaginar. (Por ejemplo, ¿por qué necesitamos usar la multiplicación de cuaterniones dos veces? ¿Por qué el ángulo está apagado por un factor de 2? Vea este artículo clásico sobre rotaciones y cuaterniones)

funciones de los cuaterniones

No todas las ecuaciones “lineales a la izquierda” en cuartos $$ f (q) = a q + b $$ se pueden reescribir como una ecuación “lineal a la derecha” $$ f (q) = q c + d $$

Si consideramos una ecuación lineal de todas las combinaciones de multiplicación de cada lado: $$ g (q) = a q b + c q + q d + e $$

Entonces, ¿cómo se debe interpretar la derivada de esta función? Incluso para las ecuaciones lineales nos vemos obligados a tener cuidado con nuestras expectativas.

Potencial “abuso” de cuaterniones

Ahora bien, es posible que lo que está tratando de hacer tenga poco que ver con estas complicaciones. En algún momento del camino, las ideas de los cuaterniones se utilizan para escribir código en ingeniería, física, aplicaciones gráficas, pero las ecuaciones eventualmente llevan consigo tanta ‘información de tipo’ especializada que realmente comienza a sentirse más como una notación de álgebra lineal utilizada simplemente para representar sucintamente lo que hace el código. En tales casos, los cuaterniones eventualmente se abusan como una forma de llevar alrededor de 4 parámetros que cualquier otra cosa (que es como describiría muchas de las cosas en quaternions.com). En cuyo caso, estas manos cortas de álgebra lineal pueden verse simplemente como la definición de un cálculo para una función de valor real en cuatro variables reales. En cuyo caso puede discutir las derivadas parciales de esto con respecto a cualquiera de las variables sin los problemas anteriores.

Entonces, al final del día, si solo está usando cuaterniones para calcular alguna transformación (probablemente incluyendo rotaciones sin verse obligado a elegir una base para los ángulos de Euler), y le gustaría saber la derivada parcial de alguna transformación con respecto a algún parámetro, siempre puede expandir la transformación. Puede que no tenga una buena forma de “cuaternión”, pero eso es solo porque en realidad solo estabas manipulando ecuaciones lineales y nada fundamentalmente “cuaternión” en primer lugar.

Hay diferentes formas de responder a su pregunta, pero probablemente desee una de estas dos:

  1. Quieres la derivada con respecto a los 4 componentes del cuaternión q = w + ix + iy + iz, es decir, con respecto a un vector 4 $ v_q = (w, x, y, z) ^ top en R ^ 4 $. Tenemos la derivada de la rotación con este vector q como:
    $$ frac parcial q otimes p otimes q ^ * parcial v_q = 2[wp+v×p , v^top p I + vp^top−pv^top−w[p]_ veces] en R ^ 3 veces4 $$
    dónde:

    • $ I $ es la matriz identidad 3×3.
    • PS[p]_ veces $ es la matriz simétrica sesgada de $ p $.
    • $ veces $ es el producto cruzado
    • $ otimes $ es el producto del cuaternión. Este letrero se puede omitir ya que es un producto y se escribe simplemente $ qpq ^ * $.

    Asumiendo que A es una matriz constante, y sabiendo que $ C (q) p = qpq ^ * $, tu derivada es
    $$ frac parcial (AC (q) p) parcial v_q = 2A[wp+v×p , v^top p I + vp^top−pv^top−w[p]_ veces] en R ^ 3 veces4 $$
    Esta es la derivada que, por ejemplo, Ceres va a calcular si usa la diferenciación automática de su función usando #include Jet.h.

  2. Desea que la derivada con respecto a la rotación misma se vea como un 3-vector del álgebra de Lie del grupo de rotación. La teoría de la mentira define dos jacobianos, izquierda y derecha, para esto, dependiendo de si perturba la rotación de la derecha, $ tilde R = R exp ([theta]_ veces) $, o a la izquierda, $ tilde R = exp ([theta]_ veces) R $.

    El jacobiano derecho de la rotación es:
    $$ frac parcial C (q) p parcial C = -C (q)[p]_ veces en R ^ 3 veces 3 $$
    y entonces tu jacobiano completo es
    $$ frac parcial (AC (q) p) parcial C = -AC (q)[p]_ veces en R ^ 3 veces 3 $$

  3. El jacobiano izquierdo de la rotación es
    $$ frac parcial C (q) p parcial C = -[C(q)p]_ veces en R ^ 3 veces 3 $$
    y entonces tu jacobiano completo es
    $$ frac parcial (AC (q) p) parcial C = -A[C(q)p]_ veces en R ^ 3 veces 3 $$

La ecuación (163) en sus notas tiene la ecuación realmente sorprendente:

$$ frac parcial ( mathbf q otimes mathbf a otimes mathbf q ast) parcial mathbf q = frac parcial ( mathbf R mathbf a) parcial mathbf q = 2 grande[
w mathbfa +
mathbfv times mathbfa +
mathbfv^top mathbfa mathbfI +
mathbfvmathbfa^top – mathbfamathbfv^top – w[mathbfa]_ veces grande]$$

Estos símbolos de ingeniería para cuaterniones son bastante fascinantes. No he digerido todos los símbolos. En matemáticas, simplemente notamos que $ x mapsto qxq ^ – 1 $ (que podría llamarse $ q ast $) es una rotación.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *