[Conocimientos matemáticos] El proceso de derivación de la matriz de rotación se basa en la rotación del vector, al tiempo que resuelve las limitaciones no lineales de la transformación euclidiana.

número de serie contenido
1 [Conocimientos matemáticos] Grado de libertad y método de cálculo de grados de libertad
2 [Conocimientos matemáticos] Cuerpo rígido cuerpo rígido y el movimiento del cuerpo rígido
3 [Conocimientos matemáticos] Movimiento básico de cuerpos rígidos, traslación y rotación.
4 [Conocimientos matemáticos] Multiplicación de vectores, producto interno, producto externo, implementación de código matlab
5 [Conocimiento matemático] Covarianza, la covarianza de variables aleatorias, la covarianza cuando las variables aleatorias son números únicos y vectores respectivamente
6 [Conocimientos matemáticos] El proceso de derivación de la matriz de rotación se basa en la rotación del vector, al tiempo que resuelve las limitaciones no lineales de la transformación euclidiana.

1. Representación de puntos y vectores.

Punto : Es el elemento básico del espacio, sin longitud ni volumen.

Supongamos que hay un punto aa en el espacio tridimensional.a , sus coordenadas se pueden expresar como[ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}[x ,y ,z]T. _

Un vector se forma conectando dos puntos.


Vector : Puede verse como una flecha que apunta de un punto a otro. No confunda los dos conceptos de vector y sus coordenadas. Un vector es algo en el espacio, como el vector a ⃗ \vec{a }a . Aquí un ⃗ \vec{a}a No está asociado a varios números reales. Solo cuando especificamos un determinado sistema de coordenadas en este espacio tridimensional, podemos hablar de las coordenadas del vector en este sistema de coordenadas, es decir, encontrar varios números reales correspondientes a este vector.

Vector a ⃗ \vec{a}a En base de espacio lineal [ e ⃗ 1 , e ⃗ 2 , e ⃗ 3 ] \left[\begin{matrix}\vec{e}_1, \vec{e}_2, \vec{e}_3\end{matrix} \bien][mi 1,mi 2,mi 3Las coordenadas bajo ] son ​​[ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}[x ,y ,z]T , entonces existe la siguiente fórmula

a ⃗ = [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = e ⃗ 1 x + e ⃗ 2 y + e ⃗ 3 z = xe ⃗ 1 + ye ⃗ 2 + ze ⃗ 3 \begin{aligned} \ vec{a} = \left[\begin{matrix} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{matrix}\right] \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right] = \vec{e}_1x + \vec{e}_2 y + \vec{e}_3 z \\ = x \vec{e}_1+ y \vec{e}_2 + z \vec{e}_3 \end{alineado}a =[mi 1mi 2mi 3] Xyz =mi 1X+mi 2y+mi 3z=Xmi 1+ymi 2+zmi 3


2. Derivación de la matriz de rotación RR basada en vectoresR

Para el mismo vector a ⃗ \vec{a}a , establecido en la base ortonormal unitaria [ e ⃗ 1 , e ⃗ 2 , e ⃗ 3 ] \left[\begin{matrix}\vec{e}_1, \vec{e}_2, \vec{e}_3\end {matriz}\derecha][mi 1,mi 2,mi 3Las coordenadas bajo ] son ​​[ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}[x ,y ,z]T ,
después de una rotación, la base ortonormal unitaria se convierte en[ e ⃗ 1 ′ , e ⃗ 2 ′ , e ⃗ 3 ′ ] \left[\begin{matrix}\vec{e}_1^\prime, \vec{ e} _2^\prime, \vec{e}_3^\prime\end{matrix}\right][mi 1,mi 2,mi 3] , y el vectora ⃗ \vec{a}a Las coordenadas bajo la nueva base ortogonal son [ x ′ ​​​​, y ′ , z ′ ] T \left[\begin{matrix}x^\prime, y^\prime, z^\prime\end{matrix}\right ]^\texto{T}[X ,y ,z]T. _

Dado que este vector no se mueve con la rotación del sistema de coordenadas, según la definición de coordenadas, tenemos

a ⃗ = [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 ′ e ⃗ 2 ′ e ⃗ 3 ′ ] [ x ′ ​​y ′ z ′ ] \begin{aligned} \vec{a} &= \left[\begin{matrix} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{matrix}\right] \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right]\ \\ &= \left[\begin{matrix} \vec{e}_1^\prime & \vec{e}_2^\prime & \vec{e }_3^\prime \end{matrix}\right] \left[\begin{matrix} x^\prime \\ y^\prime \\ z^\prime \\ \end{matrix}\right] \end{ alineado}a =[mi 1mi 2mi 3] Xyz  =[mi 1mi 2mi 3] Xyz


Si la matriz se deja multiplicada en ambos lados de la ecuación al mismo tiempo [ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] \left[\begin{matrix}\vec{e}_1^\text{ T} \\ \vec{e} _2^\text{T} \\ \vec{e}_3^\text{T}\end{matrix}\right] mi 1tmi 2tmi 3t ,tener

[ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] [ e ⃗ 1 ′ e ⃗ 2 ′ e ⃗ 3 ′ ] [ x ′ ​​y ′ z ′ ] [ e ⃗ 1 T e ⃗ 1 e ⃗ 1 T e ⃗ 2 e ⃗ 1 T e ⃗ 3 e ⃗ 2 T e ⃗ 1 e ⃗ 2 T e ⃗ 2 e ⃗ 2 T e ⃗ 3 e ⃗ 3 T e ⃗ 1 e ⃗ 3 T e ⃗ 2 e ⃗ 3 T e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ ​​y ′ z ′ ] \begin{aligned} \left[\begin{matrix} \vec{e}_1^\text{T} \\ \vec{e}_2^ \text{T} \\ \vec{e}_3^\text{T} \\ \end{matrix}\right] \left[\begin{matrix} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{matrix}\right] \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right] &= \left[\begin{matrix} \vec{e}_1^\text{T} \\ \vec{e}_2^\text{T} \\ \vec{e}_3^\text{T} \\ \end{matrix}\right] \left[\begin{matriz} \vec{e}_1^\prime& \vec{e}_2^\prime & \vec{e}_3^\prime \end{matrix}\right] \left[\begin{matrix} x^\prime \\ y^\prime \\ z^ \prime \\ \end{matrix}\right] \\ \left[\begin{matrix} \vec{e}_1^\text{T} \vec{e}_1 & \vec{e}_1^\text {T} \vec{e}_2 & \vec{e}_1^\text{T} \vec{e}_3 \\ \vec{e}_2^\text{T} \vec{e}_1 & \ vec{e}_2^\text{T} \vec{e}_2 & \vec{e}_2^\text{T} \vec{e}_3 \\ \vec{e}_3^\text{T} \vec{e}_1 & \vec{e}_3^\text{T} \vec{e}_2 & \vec{e}_3^\text{T} \vec{e}_3 \\ \end{matrix }\right] \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right] &= \left[\begin{matrix} \vec{e}_1^\text{T } \vec{e}_1^\prime & \vec{e}_1^\text{T} \vec{e}_2^\prime & \vec{e}_1^\text{T} \vec{e} _3^\prime \\ \vec{e}_2^\text{T} \vec{e}_1^\prime & \vec{e}_2^\text{T} \vec{e}_2^\prime & \vec{e}_2^\text{T} \vec{e}_3^\prime \\ \vec{e}_3^\text{T} \vec{e}_1^\prime& \vec{e}_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix }\right] \left[\begin{matrix} x^\prime \\ y^\prime \\ z^\prime \\ \end{matrix}\right] \end{aligned} mi 1tmi 2tmi 3t [mi 1mi 2mi 3] Xyz mi 1tmi 1mi 2tmi 1mi 3tmi 1mi 1tmi 2mi 2tmi 2mi 3tmi 2mi 1tmi 3mi 2tmi 3mi 3tmi 3 Xyz = mi 1tmi 2tmi 3t [mi 1mi 2mi 3] Xyz = mi 1tmi 1mi 2tmi 1mi 3tmi 1mi 1tmi 2mi 2tmi 2mi 3tmi 2mi 1tmi 3mi 2tmi 3mi 3tmi 3 Xyz

Obviamente hay

mi ⃗ 1 T mi ⃗ 1 = 1 , mi ⃗ 1 T mi ⃗ 2 = 0 , mi ⃗ 1 T mi ⃗ 3 = 0 , mi ⃗ 2 T mi ⃗ 1 = 0 , mi ⃗ 2 T mi ⃗ 2 = 1 , mi ⃗ 2 T mi ⃗ 3 = 0 , mi ⃗ 3 T mi ⃗ 1 = 0 , mi ⃗ 3 T mi ⃗ 2 = 0 , mi ⃗ 3 T mi ⃗ 3 = 1 , \begin{aligned} \vec{e} _1^\text{T} \vec{e}_1 = 1, \quad & \vec{e}_1^\text{T} \vec{e}_2 = 0, \quad & \vec{e}_1^ \text{T} \vec{e}_3 = 0, \quad \\ \vec{e}_2^\text{T} \vec{e}_1 = 0, \quad & \vec{e}_2^\ texto{T} \vec{e}_2 = 1, \quad & \vec{e}_2^\text{T} \vec{e}_3 = 0, \quad \\ \vec{e}_3^\text {T} \vec{e}_1 = 0, \quad & \vec{e}_3^\text{T} \vec{e}_2 = 0, \quad & \vec{e}_3^\text{T } \vec{e}_3 = 1, \quad \\ \end{aligned}mi 1tmi 1=1 ,mi 2tmi 1=0 ,mi 3tmi 1=0 ,mi 1tmi 2=0 ,mi 2tmi 2=1 ,mi 3tmi 2=0 ,mi 1tmi 3=0 ,mi 2tmi 3=0 ,mi 3tmi 3=1 ,

Por lo tanto, se puede simplificar aún más a

[ e ⃗ 1 T e ⃗ 1 e ⃗ 1 T e ⃗ 2 e ⃗ 1 T e ⃗ 3 e ⃗ 2 T e ⃗ 1 e ⃗ 2 T e ⃗ 2 e ⃗ 2 T e ⃗ 3 e ⃗ 3 T e ⃗ 1 e ⃗ 3 T e ⃗ 2 e ⃗ 3 T e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ ​​y ′ z ′ ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ ​​y ′ z ′ ] = def R [ x ′ ​​y ′ z ′ ] \begin {alineado} \left[\begin{matrix} \vec{e}_1^\text{T} \vec{e}_1 & \vec{e}_1^\text{T} \vec{e}_2 & \ vec{e}_1^\text{T} \vec{e}_3 \\ \vec{e}_2^\text{T} \vec{e}_1 & \vec{e}_2^\text{T} \vec{e}_2 & \vec{e}_2^\text{T} \vec{e}_3 \\ \vec{e}_3^\text{T} \vec{e}_1 & \vec{e }_3^\text{T} \vec{e}_2 & \vec{e}_3^\text{T} \vec{e}_3 \\\end{matrix}\right] \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right] &= \left[\begin{matrix} \vec{e}_1^ \text{T} \vec{e}_1^\prime & \vec{e}_1^\text{T} \vec{e}_2^\prime & \vec{e}_1^\text{T} \ vec{e}_3^\prime \\ \vec{e}_2^\text{T} \vec{e}_1^\prime & \vec{e}_2^\text{T} \vec{e}_2 ^\prime & \vec{e}_2^\text{T} \vec{e}_3^\prime \\ \vec{e}_3^\text{T} \vec{e}_1^\prime & \ vec{e}_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix}\ derecha] \left[\begin{matrix} x^\prime \\ y^\prime \\ z^\prime \\ \end{matrix}\right] \\ \left[\begin{matrix} x \\ y \\ z \\ \end{matrix}\right] &= \left[\begin{matrix} \vec{e}_1^\text{T} \vec{e}_1^\prime & \vec{e} _1^\text{T} \vec{e}_2^\prime & \vec{e}_1^\text{T} \vec{e}_3^\prime \\ \vec{e}_2^\text{ T} \vec{e}_1^\prime & \vec{e}_2^\text{T} \vec{e}_2^\prime& \vec{e}_2^\text{T} \vec{e}_3^\prime \\ \vec{e}_3^\text{T} \vec{e}_1^\prime & \vec{e }_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix}\right] \ left[\begin{matrix} x^\prime \\ y^\prime \\ z^\prime \\ \end{matrix}\right] \\ & \overset{def}{=} R \left[\begin {matriz} x^\prime \\ y^\prime \\ z^\prime \\ \end{matrix}\right] \end{aligned} mi 1tmi 1mi 2tmi 1mi 3tmi 1mi 1tmi 2mi 2tmi 2mi 3tmi 2mi 1tmi 3mi 2tmi 3mi 3tmi 3 Xyz Xyz = mi 1tmi 1mi 2tmi 1mi 3tmi 1mi 1tmi 2mi 2tmi 2mi 3tmi 2mi 1tmi 3mi 2tmi 3mi 3tmi 3 Xyz = mi 1tmi 1mi 2tmi 1mi 3tmi 1mi 1tmi 2mi 2tmi 2mi 3tmi 2mi 1tmi 3mi 2tmi 3mi 3tmi 3 Xyz =def _ _R Xyz

Este RRR describe la rotación de un vector, llamada Matriz de Rotación.


El proceso de derivación anterior se basa en la relación algebraica de vectores, así como el proceso de derivación utilizando el ángulo de rotación del eje de coordenadas tridimensional. Puede consultar el artículo: Capítulo 3 - Conocimientos matemáticos básicos -> Transformación de coordenadas .


Matriz de rotaciónRRR tiene propiedades:

  • Matriz de rotaciónRRR es una matriz ortogonal con determinante 1. Por el contrario, una matriz ortogonal con determinante 1 también es una matriz de rotación. Allnn__La matriz de rotación n- dimensional forma un grupo ortogonal especialSO ( n ) SO(n)SO ( n ) SO ( n ) = { R ∈ R n × n ∣ RRT = I , det ( R ) = I } SO(n) = \{ R \in \R^{n \times n} | RR^\text{T} = Yo, \text{det}(R) = Yo \}entonces ( n )={ RRnorte × norteRRt=yo ,eso ( R )=yo }

  • Matriz de rotaciónRRR es una matriz ortogonal (Matriz ortogonal, una matriz ortogonal es una matriz cuya inversa es su propia transpuesta), y la inversa de la matriz de rotaciónR − 1 R^{-1}R1 describe una rotación opuesta


3. Transformación euclidiana de vectores.

En visión por computadora y robótica, la traducción euclidiana/rígida (o transformación rígida) es una transformación muy común.

La transformación euclidiana consta de dos partes:

  1. Rotación: Puede representarse mediante una matriz de rotación.
  2. Traducción: Puede representarse mediante un vector de traducción.

Si no lo tiene claro, consulte el artículo: [Conocimientos matemáticos] Movimiento básico de cuerpos rígidos, traslación y rotación .

Supongamos que existe el siguiente proceso de rotación y traslación: hay un vector a ⃗ 1 \vec{a}_1 en el sistema de coordenadas mundiala 1, después de una rotación R 1 t 2 R_{1t2}R1 t 2y una traducción t 1 t 2 t_{1t2}t1 t 2Después de eso, se obtiene el vector a ⃗ 2 \vec{a}_2a 2, entonces existe la siguiente relación
a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 \vec{a}_2 = R_{1t2} \vec{a}_1 + t_{1t2}a 2=R1 t 2a 1+t1 t 2


4. La transformación euclidiana tiene limitaciones no lineales.

La transformación euclidiana es una transformación rígida, que incluye rotación y traslación. Mientras que la traslación es lineal, la rotación no es lineal.

Para la rotación, podemos usar matrices de rotación, cuaterniones o ejes de rotación y ángulos de rotación para describirla. Independientemente de cómo se describa, la naturaleza de la rotación no es lineal.

Si realizamos dos transformaciones: R 1 t 2 , t 1 t 2 R_{1t2}, t_{1t2}R1 t 2,t1 t 2R 2 t 3 , t 2 t 3 R_{2t3}, t_{2t3}R2 t 3,t2 t 3

a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 a ⃗ 3 = R 2 t 3 a ⃗ 2 + t 2 t 3 = R 2 t 3 ( R 1 t 2 a ⃗ 1 + t 1 t 2 ) + t 2 t 3 \begin{aligned} \vec{a}_2 &= R_{1t2} \vec{a}_1 + t_{1t2} \\ \vec{a}_3 &= R_{2t3} \vec {a}_2 + t_{2t3} \\ &= R_{2t3} (R_{1t2} \vec{a}_1 + t_{1t2}) + t_{2t3} \end{aligned}a 2a 3=R1 t 2a 1+t1 t 2=R2 t 3a 2+t2 t 3=R2 t 3( r.1 t 2a 1+t1 t 2)+t2 t 3

Hay dos matrices de rotación en la transformación anterior, pero la combinación de las dos rotaciones R 2 t 3 × R 1 t 2 R_{2t3} \times R_{1t2}R2 t 3×R1 t 2No es igual a una combinación lineal simple de dos matrices de rotación, como la suma.

De la misma manera, si usamos cuaterniones para describir la rotación, la multiplicación de cuaterniones también es no lineal.


5. Utilice la matriz de transformación TTT resuelve la no linealidad

Para el problema no lineal de la transformación euclidiana, podemos resolverlo mediante el método de coordenadas homogéneas.

Las coordenadas homogéneas amplían las coordenadas estándar agregando una coordenada adicional. Las rotaciones y traslaciones se pueden representar mediante una única matriz, lo que simplifica las transformaciones.


La solución específica es convertir el vector tridimensional en un vector de cuatro dimensiones, llamado coordenada homogénea, sumando 1 al final. Para esta transformación euclidiana

a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 \vec{a}_2 = R_{1t2} \vec{a}_1 + t_{1t2}a 2=R1 t 2a 1+t1 t 2

Escriba la matriz de rotación y el vector de traslación en la misma matriz de transformación (Matriz de transformación) y expanda las dimensiones al mismo tiempo:

[ a ⃗ 2 1 ] = [ R 1 t 2 t 1 t 2 0 1 × 3 1 ] [ a ⃗ 1 1 ] = T [ a ⃗ 1 1 ] \begin{aligned} \left[\begin{matrix} \ vec{a}_2 \\ 1 \end{matrix}\right] &= \left[\begin{matrix} R_{1t2} & t_{1t2} \\ 0_{1 \times 3} & 1 \\ \end {matrix}\right] \left[\begin{matrix} \vec{a}_1 \\ 1 \\ \end{matrix}\right] \\ &= T \left[\begin{matrix} \vec{a }_1 \\ 1 \\ \end{matrix}\right] \end{aligned}[a 21]=[R1 t 201 × 3t1 t 21][a 11]=t[a 11]

TTT es la matriz de transformación.

Insertar descripción de la imagen aquí


El significado de coordenadas homogéneas es expresar la transformación euclidiana como una relación lineal.

Por lo tanto, después de que la transformación euclidiana se vuelve coordenadas homogéneas, tenemos

a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 [ a ⃗ 2 1 ] = T [ a ⃗ 1 1 ] \begin{alineado} \vec{a}_2 &= R_{1t2} \vec{ a}_1 + t_{1t2} \\ \left[\begin{matrix} \vec{a}_2 \\ 1 \end{matrix}\right] &= T \left[\begin{matrix} \vec{a }_1 \\ 1 \\ \end{matrix}\right]\end{aligned}a 2[a 21]=R1 t 2a 1+t1 t 2=t[a 11]


Matriz de transformación TTPropiedades de T :

  • Matriz de transformación TTT forma el grupo euclidiano especialSE SESE
    SE ( 3 ) = { T = [ R t 0 1 × 3 1 ] ∈ R 4 × 4 ∣ R ∈ SO ( 3 ) , t ∈ R 3 } SE(3) = \{ T = \left[\ comenzar{matriz} R & t \\ 0_{1\times3} & 1 \\ \end{matrix}\right] \in \R^{4\times4} | R \en SO(3), t \en \R^3 \}SE ( 3 )={ T=[R01 × 3t1]R4 × 4 ∣R_Entonces ( 3 ) ,tR3 }

  • La inversa de una matriz de transformación representa una transformación inversa:
    T − 1 = [ RT − RT t 0 1 × 3 1 ] T^{-1} = \left[\begin{matrix} R^\text{T} & - R^\text{T} t \\ 0_{1\times3} & 1 \\ \end{matrix}\right]t1=[Rt01 × 3−R _t t1]


Árbitro

  1. "Visual SLAM catorce conferencias de la teoría a la práctica" Conferencia 3 Movimiento del cuerpo rígido en un espacio tridimensional - Zhihu
  2. Notas de estudio de SLAM (1) Conferencia 3: Movimiento de cuerpo rígido en un espacio tridimensional
  3. [Sorkine-Hornung O, Rabinovich M. Movimiento rígido de mínimos cuadrados utilizando svd[J]. Computación, 2017, 1(1): 1-5.]

Supongo que te gusta

Origin blog.csdn.net/weixin_36815313/article/details/132157447
Recomendado
Clasificación