¿Existe una fórmula para el vector de rotación en términos del vector de velocidad angular?

El teorema de rotaciones de Euler establece que para cualquier cuerpo rígido, el movimiento con un punto fijo es equivalente a una rotación alrededor de algún eje que pasa por ese punto fijo. Entonces, consideremos un cuerpo rígido con un punto fijo, y para cualquier momento t dejar α ( t ) denote el "vector de rotación" de la rotación correspondiente al movimiento del cuerpo rígido entre el tiempo t 0 y tiempo t . Para quien no lo sepa, el vector de rotación de una rotación es un vector cuya magnitud es igual al ángulo de rotación y que apunta a lo largo del eje de rotación; ver este artículo de Wikipedia .

Ahora, debido a la naturaleza no conmutativa de las rotaciones, la velocidad angular ω ( t ) en general no es igual a la derivada temporal de α ( t ) como cabría esperar intuitivamente. La relación entre los dos es considerablemente más complicada:

ω = α ˙ 1 porque α α 2 ( α × α ˙ ) + α pecado α α 3 ( α × ( α × α ˙ ) )

Ahora bien, esta es una fórmula para el vector de velocidad angular en términos del vector de rotación y su derivada en el tiempo. Pero mi pregunta es, ¿existe una fórmula para el vector de rotación en términos del vector de velocidad angular? Es decir, si supieras lo que ω ( t ) fue para todos los tiempos t , ¿es posible calcular qué α ( t ) para cualquier valor dado valor de t .

Si las rotaciones fueran conmutativas, por supuesto, podrías simplemente integrar ω ( t ) de t 0 a t . Pero no lo son, por lo que es posible que se requiera algo más complicado. Un pensamiento que tuve fue que en mi pregunta y respuesta aquí di la fórmula para la composición de dos vectores de rotación. Entonces, lo que podrías hacer es para cada intervalo de tiempo infinitesimal [ t , t + d t ] , podría tomar el vector de rotación del movimiento del cuerpo rígido durante ese intervalo de tiempo, que está dado por ω ( t )   d t (como se puede ver aquí ). Y luego, en principio, podrías componer todos esos infinitamente muchos ω ( t )   d t 's juntos. Pero, ¿alguien sabe cómo funcionaría eso?

EDITAR: para ser claros, quiero una expresión explícita para el vector de rotación en términos del vector de velocidad angular que no hace referencia a las matrices. Si quisiera usar matrices, podría convertir el vector de velocidad angular en una matriz simétrica oblicua, usar la exponencial ordenada en el tiempo para obtener la matriz de rotación, usar el mapa logarítmico para obtener una matriz simétrica oblicua correspondiente a α , y luego convertirlo en un vector de rotación. Pero ese no es el tipo de cosa que estoy buscando; Quiero una fórmula completamente en términos de operaciones vectoriales.

Hay una razón por la que la gente usa cuaterniones en lugar de vectores de rotación.
@ ja72 Sí, sé que los cuarterones tienen ventajas sobre los vectores de rotación en este sentido. Pero quiero ver si podemos obtener una fórmula para el vector de rotación.
Tenga en cuenta que la matriz antisimétrica de 3 × 3 mencionada es
[ ( X y z ) × ] = [ 0 z y z 0 X y X 0 ]
si no desea utilizar la notación tensorial para productos cruzados (como en el documento). Lo anterior da
[ a × ] b a × b
@ ja72 Sí, lo sé. ¿Cual es tu punto?
Los tensores me dan dolores de cabeza. Puedo entender mejor las cosas con álgebra lineal y pensé que habría otras también. Tratando de ayudar.
@ ja72 Gracias, simplemente no entiendo qué tiene que ver con mi pregunta. ¿Estás tratando de traducir la ecuación vectorial de mi pregunta en una ecuación matricial?
Sí, estoy traduciendo a una ecuación de matriz vectorial.
Para su información, la fórmula que cita es una variación de la conocida fórmula de Rodrigues para S O ( 3 ) , que puede encontrar al final de mi respuesta aquí , después de haber simplificado la expresión α × ( α × α ˙ ) con fórmulas estándar de triple producto
La fórmula citada también se puede escribir en una forma "simple", usando α = θ norte , con θ la magnitud de α y norte un vector unitario que apunta en la misma dirección que α . En este caso, la velocidad angular también se puede escribir como, ω = θ ˙ norte + pecado θ norte ˙ + ( 1 porque θ ) norte × norte ˙ . Pero esto no ayuda a responder a su pregunta, solo pensé que podría encontrarlo relevante.
@fibonatic Gracias, no sabía eso.

Respuestas (4)

Intentaré dar aquí una respuesta muy parcial a la pregunta. No estoy seguro de si es interesante en sí mismo, pero podría proporcionar una pista para un mayor desarrollo. Posiblemente su lugar estaría dentro de un comentario, pero los comentarios tienen una longitud limitada y no cabría.

definamos α ( t 0 , t ) como el α ( t ) de la pregunta relacionada con lo dado t 0 . Identificamos el vector de rotación con la rotación misma. Para t i = t 0 + i   d t y t = t 0 + norte   d t , tenemos por composición simple de rotaciones sucesivas

α ( t 0 , t ) = i = norte 1 0 α ( t i , t i + 1 ) .
Sabemos por esta pregunta/respuesta que 2 α ( t , t ) = ω ( t ) para todos t . Usando α ( t , t + d t ) = I + 2 α ( t , t )   d t + o ( d t ) = I + ω ( t )   d t + o ( d t ) , tenemos
α ( t 0 , t ) = i = norte 1 0 I + ω ( t i )   d t + o ( d t ) .
Esto proporciona por cierto un método numérico que expresa α en términos de ω .

En el caso muy especial donde todas estas rotaciones conmutan (ejemplo de eje común), el límite es exponencial: tomando el logaritmo y el límite cuando d t 0 , tenemos

registro ( α ( t 0 , t ) ) = i = norte 1 0 ω ( t i )   d t + o ( d t ) t 0 t ω ( s )   d s ,
por eso
α ( t 0 , t ) = Exp ( t 0 t ω ( s )   d s ) .

En el caso general no conmutativo, el logaritmo involucrará paréntesis de mentira que comienzan con d t 2 [ ω ( t i ) ,   ω ( t j ) ] (cf. fórmula de Dynkin), y parece que se requiere algo más de coraje.

EDITAR: según un comentario a continuación de Keshav Srinivasan, la expresión anterior se convierte en el caso general no conmutativo

α ( t 0 , t ) = Equipo original [ ω ] ( t 0 , t ) = T { mi t 0 t ω ( s ) d s } ,
ver Exponencial ordenada para la definición de Equipo original [ ω ] ( t ) . Aunque esta no es una respuesta exacta a la pregunta, ya que involucra matrices de rotación en lugar de los vectores de rotación requeridos.

Hay una cosa que está omitiendo: la composición de los vectores eje-ángulo no es un producto simple. Más bien, está dado por la fórmula descrita en mi pregunta y respuesta aquí: physics.stackexchange.com/a/287819/27396 La estrategia que está siguiendo tendría más sentido si estuviéramos tratando de encontrar la matriz de rotación en términos de la velocidad angular ; en ese caso podríamos usar la exponencial ordenada en el tiempo descrita en este artículo de Wikipedia , así como la serie de Dyson .
No veo lo que estoy dejando de lado: como lo escribí ("Identificamos el vector de rotación con la rotación misma"), no estoy usando composición de vectores eje-ángulo sino composición de rotaciones (elementos del grupo S O ( 3 ) ). Uno es libre de usar cualquier forma que sea más conveniente, vector de rotación o matriz de rotación, lo único que cuenta es el resultado. ¿Ves algo malo en la primera fórmula de composición que da α ( t 0 , t ) ? No entiendo su último comentario, ¿no es equivalente a encontrar la matriz de rotación a encontrar el vector de rotación?
Bueno, quiero una fórmula explícita para el vector de rotación en términos del vector de velocidad angular, no quiero convertir para convertir a una matriz de rotación y volver a convertir.
Todavía no entiendo tu punto, es elemental extraer el vector de rotación de la matriz de rotación y viceversa.
Bueno, mire la fórmula dada en mi pregunta, relaciona el vector de velocidad angular y el vector de rotación sin mencionar matrices en absoluto. Ese es el tipo de fórmula que estoy buscando.
En cualquier caso, el problema que intenta resolver en su respuesta ya se resolvió; vea los dos artículos de Wikipedia vinculados en mi comentario anterior.
Pero en ese caso, ¿no está resuelto tu problema? Quiero decir, módulo el cambio de vector de rotación variable/matriz de rotación, diste la respuesta a tu propio problema. Parece que estamos dividiendo pelos.
Bueno, si eres capaz de traducir la cosa exponencial ordenada por el tiempo en una fórmula que está completamente en términos de vectores en lugar de matrices, esa sería una respuesta satisfactoria a mi pregunta.
De acuerdo, agregué una edición a mi respuesta para aclarar esto (espero que lo sea) - Anexo: no estaría feliz si ω ( t ) arriba fue reemplazado por matriz ( ω ( t ) ) ? Solo una pequeña broma, si me permites...
Si a alguien le importa, eliminé esta respuesta hace unos días pensando que había un error, pero finalmente creo que está bien (aunque no cumple con el último requisito de la parte EDITAR de la pregunta), así que lo recuperé.

Estoy totalmente de acuerdo con el usuario ja72 en abandonar la notación vectorial y trabajar en Lie teóricamente. Estuvieron presentes α y ω como 3 × 3 matrices sesgadas simétricas en el álgebra de Lie s o ( 3 ) ; entonces la rotación total es 3 × 3 matriz de rotación ortogonal Exp ( α ( t ) ) y la velocidad angular instantánea es ω = d τ ( mi α ( t ) Exp ( α ( t + τ ) ) | τ = 0 . Como matrices, α y ω representar las acciones de los productos cruzados en notación vectorial: esto es lo que ja72 significa en su comentario:

Tenga en cuenta que la matriz antisimétrica de 3 × 3 mencionada es [ ( X y z ) × ] = [ 0 z y z 0 X y X 0 ] si no desea utilizar la notación tensorial para productos cruzados (como en el documento). Lo anterior da [ a × ] b a × b

Podemos hacer lo que quieras usando la fórmula general para la derivada de un miembro del grupo de Lie ω = d τ ( mi α ( t ) Exp ( α ( t + τ ) ) | τ = 0 que se establece y demuestra como el Teorema 1.5 en la sección 1.2 de Rossmann, "Grupos de mentira: una introducción a través de grupos lineales":

ω ( t ) = k = 0 ( 1 ) k a d ( α ( t ) ) k ( k + 1 ) ! α ˙ ( t )

la notación a d ( α ( t ) ) k α ˙ ( t ) significa iterar el mapeo de corchetes de Lie α ˙ [ α , α ˙ ] para k iteraciones

Dado que el operador:

k = 0 ( 1 ) k a d ( α ( t ) ) k ( k + 1 ) !

es operador de identidad en t = 0 (cuando no ha habido rotación y Exp ( α ( t ) ) = i d ) y como su determinante es una función continua de t , hay algún intervalo de tiempo distinto de cero [ 0 , ϵ ] donde el operador puede ser invertido. Entonces, si te dan ω ( t ) luego, para un intervalo de tiempo distinto de cero, puede integrar (probablemente numéricamente):

α ˙ ( t ) = ( k = 0 ( 1 ) k a d ( α ( t ) ) k ( k + 1 ) ! ) 1 ω ( t )

y haces un seguimiento de α ( t ) y el determinante del operador invertido en todo momento. Cuando el determinante se vuelve más pequeño que algún umbral de "peligro", toma nota del vector de rotación y del operador, realinea sus coordenadas para que la rotación que ha alcanzado se convierta en la orientación de referencia y comience de nuevo. Al final del proceso, tendrá su vector de rotación total y su operador de rotación como producto de los operadores de rotación, cada uno calculado mediante el procedimiento anterior.

Si quiere hacer las cosas en términos de matrices, esto puede ayudar: puede encontrar la matriz de rotación en términos de la matriz de velocidad angular usando la exponencial ordenada en el tiempo: en.wikipedia.org/wiki/Ordered_exponential Y luego simplemente toma la logaritmo de la matriz de rotación para obtener el α matriz.
@KeshavSrinivasan Ese es un procedimiento equivalente: el uso de la serie Peano-Baker (llamada serie Dyson en física de partículas) es otro. El método anterior es particularmente adecuado para una integración DE simple. De hecho, la matriz invertida es una integral ordenada en el tiempo de la función logarítmica.
En cualquier caso, el exponencial ordenado por tiempo, la serie de Dyson y su enfoque no son realmente lo que estoy buscando en una respuesta. Me gustaría una fórmula explícita para el vector de rotación en términos del vector angular, de forma que no haga referencia a las matrices. (Aunque está bien usar matrices en la derivación, como lo hace Asher Peres en la derivación de la fórmula en mi pregunta).
@KeshavSrinivasan Entonces debe indicar ese requisito explícitamente en su pregunta.
@KeshavSrinivasan Además, para convertir lo anterior en una fórmula vectorial, encontrará la serie de Taylor para la matriz inversa en términos de potencias de a d ( α ) y luego nota que a d ( α ) k ω como expresión matricial es equivalente a 2 k α × ( α × ( α × ω ) ) con k productos cruzados. Por lo tanto, tendrás una serie infinita, que puedes simplificar a una combinación lineal de ω , α y α × ω mediante el uso repetido de la fórmula del producto triple

La respuesta es de bastante importancia para la comunidad de navegación. El "vector de rotación" a veces se denomina "Vector de Bortz" después de este artículo que aportó cierta importancia a este problema exacto, con el resultado de la derivación que se repite a continuación.

Usando la notación α como el vector de rotación, θ = | α | como la magnitud del vector de rotación, × siendo el producto vectorial vectorial y ω siendo la velocidad angular del cuerpo con respecto al espacio de inercia, resuelta en el marco del cuerpo (es decir, lo que mediría un giroscopio):

α ˙ = ω + 1 2 α × ω + 1 θ 2 [ 1 θ pecado θ 2 ( 1 porque θ ) ] α × ( α × ω ) θ ± norte π , norte = 1 , 2 , 3 , . . .

Shuster detalla varias formas en las que se puede derivar esta ecuación.

Para una aplicación práctica de la ecuación, vea el Capítulo 3.4 de Kim , quien la usa para derivar un bucle de navegación inercial.

Referencias:

Bortz, J, "Una nueva formulación matemática para la navegación inercial con correas", IEEE Transactions on Aerospace and Electronic Systems, 1971, vol7, p61-66.

Shuster, M. "La ecuación cinemática para el vector de rotación", IEEE Transactions on Aerospace and Electronic Systems, 1993, vol.29, p263-267.

Kim, J. "Navegación autónoma para aplicaciones aerotransportadas", tesis doctoral, Universidad de Sydney, 2004.

Este vector eje angular θ = θ mi ^ tiene derivada basada en la regla de la cadena

θ ˙ = θ ˙ mi ^ + θ mi ^ ˙ = θ ˙ mi ^ + θ ω × mi ^

Entonces tienes eso

ω × mi ^ = θ ˙ θ ˙ mi ^ θ

Pero que es θ ˙ ? Lo encuentras con

θ ˙ = mi ^ θ ˙

Así que ahora tienes esta expresión

ω × θ = θ ˙ mi ^ ( mi ^ θ ˙ )

...Esto es todo lo lejos que fui...