视觉SLAM十四讲学习记录 第四讲

之前第三讲的地址

第四讲 李群与李代数

  在第3讲中,我们介绍了三维世界中刚体运动的描述方式。并且在其中我们重点介绍了旋转的表示。不过在SLAM中,除了表示,我们还要对它们进行估计和优化。因为在SLAM中位姿是未知的,而我们需要解决形如“什么样的相机位姿最符合当前观测数据”这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的 R , t , R,t, R,t,使得误差最小化。
  如前所言,旋转矩阵自身是带有约束的(正交且行列式为1)。它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。

4.1 李群与李代数基础

  第3讲中,我们介绍了旋转矩阵和变换矩阵的定义。当时,我们说三维旋转矩阵构成了特殊正交群SO(3),而变换矩阵构成了特殊欧氏群SE(3)。它们写起来像这样:
          S O ( 3 ) = { R ∈ R 3 × 3 ∣ R R T = I , d e t ( R ) = 1 } SO(3) = \{R∈\mathbb{R}^{3 × 3}|RR^T = I,det(R) = 1\} SO(3)={ RR3×3RRT=I,d e t ( R )=1}
          S E ( 3 ) = { T = [ R t 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } SE(3) = \{T=\begin{bmatrix}R&t\\\\0^T&1\end{bmatrix}∈\mathbb{R}^{4 × 4}|R ∈ SO(3),t ∈ \mathbb{R}^3\} SE ( 3 )={ T= R0Tt1 R4×4RSO(3),tR3 }
  However, we did not explaingroup. Readers should be able to notice that, whether it is a rotation matrix or a transformation matrix, **they are not closed to addition. **In other words, for any two rotation matricesR 1 , R 2 , R_1,R_2,R1,R2, according to the definition of matrix addition, and is no longer a rotation matrix:

         R 1 + R 2 ∉ SO ( 3 ) , T 1 + T 2 ∉ SE ( 3 ) R_1 + R_2 ∉ SO(3), \;T_1 + T_2 ∉ SE(3).R1+R2/SO(3),T1+T2/SE ( 3 ) .

You could also say that there is no well-defined addition of two matrices, or that matrix addition in general is not closed over the two sets. Instead, they have only one nice operation: multiplication. SO ( 3 ) SO(3)SO ( 3 ) sumSE( 3 ) SE(3)SE ( 3 ) is closed with respect to multiplication:

          R 1 R 2 ∈ S O ( 3 ) ,    T 1 T 2 ∈ S E ( 3 ) . R_1R_2 ∈ SO(3), \;T_1T_2 ∈ SE(3). R1R2SO(3),T1T2SE ( 3 ) .

At the same time, we can also invert (in the sense of multiplication) any rotation or transformation matrix. We know that multiplication corresponds to the composition of rotation or transformation, and the multiplication of two rotation matrices means that two rotations have been performed. For such a collection with only one (good) operation, we call it a group .

4.1.1 Group

  Next, we need to introduce some knowledge of abstract algebra.
  Group (Group) is an algebraic structure of a set plus an operation . We denote the set as A , A,A , the operation is denoted as⋅ , \cdot,, then the group can be recorded asG = ( A , ⋅ ) . G = (A,\cdot).G=(A,) . The group requires this operation to satisfy the following conditions:

  1. 封闭性: ∀ a 1 , a 2 ∈ A ,    a 1 ⋅ a 2 ∈ A . \forall a_1,a_2 \in A,\;a_1\cdot a_2\in A. a1,a2A,a1a2A.
  2. 结合律: ∀ a 1 , a 2 , a 3 ∈ A ,    ( a 1 ⋅ a 2 ) ⋅ a 3 = a 1 ⋅ ( a 2 ⋅ a 3 ) \forall a_1,a_2,a_3 \in A,\;(a_1\cdot a_2)\cdot a_3 = a_1\cdot (a_2\cdot a_3) a1,a2,a3A,(a1a2)a3=a1(a2a3)
  3. 幺元: ∃ a 0 ∈ A ,    s . t .    ∀ a ∈ A ,    a 0 ⋅ a = a ⋅ a 0 = a . \exists a_0 \in A,\;s.t.\;\forall a \in A, \;a_0\cdot a = a \cdot a_0 = a. a0A,s.t.aA,a0a=aa0=a.
  4. 逆: ∀ a ∈ A ,    ∃ a − 1 ∈ A ,    s . t .    a ⋅ a − 1 = a 0 . \forall a \in A,\;\exist a^{-1} \in A,\;s.t.\;a\cdot a^{-1} = a_0. aA,a1A,s.t.aa1=a0.

  读者可以将上述四个性质记作“封结幺逆”。容易验证,旋转矩阵集合和矩阵乘法构成群,同样,变换矩阵和矩阵乘法也构成群(因此才能称它们为旋转矩阵群和变换矩阵群)。其他常见的群包括整数的加法 ( Z , + ) , (\mathbb{Z},+), (Z,+),去掉0后的有理数的乘法(幺元为1) ( Q ∖ 0 , ⋅ ) , (\mathbb{Q} \setminus 0 ,\cdot), (Q0,) , and so on. Common groups in matrices are:

  • General Linear Group GL ( n ) GL(n)G L ( n )  指n × nn × nn×Invertible matrices of n that group for matrix multiplication.
  • Special Orthogonal Group SO ( n ) SO(n)SO ( n )  is the so-called rotation matrix group, whereSO ( 2 ) SO(2)SO ( 2 ) sumSO ( 3 ) SO (3)SO ( 3 ) is the most common.
  • Special Euclidean group SE ( n ) SE(n)SE ( n )  is the aforementionednnn- dimensional Euclidean transformation, such asSE ( 2 ) SE(2)SE ( 2 ) SumSE( 3 ) SE(3)SE ( 3 )

  The group structure ensures that the operations on the group have good properties, and the group theory is the theory of studying various structures and properties of the group. Readers interested in group theory can refer to any modern algebra textbook. A Lie group is a group that has the continuous (smooth) property. Like the integer group Z \mathbb{Z}A discrete group like Z has no continuous property, so it is not a Lie group. whileSO ( n ) SO(n)SO ( n ) sumSE( n ) SE(n)SE ( n ) is continuous in the space of real numbers. We can intuitively imagine that a rigid body can move continuously in space, so they are all Lie groups. SinceSO ( 3 ) SO(3)SO ( 3 ) sumSE( 3 ) SE(3)SE ( 3 ) is especially important for camera pose estimation, so we mainly discuss these two Lie groups. Then from the simplerSO ( 3 ) SO(3)SO ( 3 ) starts the discussion leading toSO ( 3 ) SO (3)The Lie algebra above SO ( 3 ) so ( 3 ) \mathfrak{so}(3)so(3)

4.1.2 Derivation of Lie algebra

  Consider any rotation matrix R , R,R , we know it satisfies:

          R R T = I RR^T = I RRT=I

Now, we say, RRR is the rotation of some camera, which changes continuously over time, as a function of time:R ( t ). R(t).R ( t ) . Since it is still a rotation matrix, there is

          R ( t ) R ( t ) T = I R(t)R(t)^T = I R(t)R(t)T=I

Taking the derivative with respect to time on both sides of the equation, we get

          R ˙ ( t ) R ( t ) T + R ( t ) R ˙ ( t ) T = 0 \.{R}(t)R(t)^T + R(t)\.{R}(t)^T = 0 R˙(t)R(t)T+R(t)R˙(t)T=0

Tidy up

          R ˙ ( t ) R ( t ) T = − ( R ˙ ( t ) R ( t ) T ) T \.{R}(t)R(t)^T = -(\.{R}(t)R(t)^T)^T R˙(t)R(t)T=(R˙(t)R(t)T)T

  It can be seen that R ˙ ( t ) R ( t ) T \.{R}(t)R(t)^TR˙(t)R(t)T is anantisymmetric matrix. When introducing the cross product before, the ^ symbol was introduced to turn a vector into an anti-symmetric matrix. Similarly, for any anti-symmetric matrix, we can also find the only corresponding vector, and use this operation symbol    ˇ \;\check{}ˇ said:

          a ∧ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] , A ∨ = a a^{\land} = A = \begin{bmatrix}0&-a_3&a_2\\\\a_3&0&-a_1\\\\-a_2&a_1&0\end{bmatrix},A^{\lor} = a a=A= 0a3a2a30a1a2a10 ,A=a

  于是,由于 R ˙ ( t ) R ( t ) T \.{R}(t)R(t)^T R˙(t)R(t)T是一个反对称矩阵,我们可以找到一个三维向量 ϕ ( t ) ∈ R 3 \phi(t)\in\mathbb{R}^3 ϕ(t)R3与之对应:

          R ˙ ( t ) R ( t ) T = ϕ ( t ) ∧ . \.{R}(t)R(t)^T = \phi(t)^{\land}. R˙(t)R(t)T=ϕ(t).

  等式两边右乘 R ( t ) , R(t), R(t),由于 R R R为正交阵,有

         R ˙ ( t ) = ϕ ( t ) ∧ R ( t ) = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] R ( t ) . \.R(t) = \phi(t)^{\land}R(t) = \begin{bmatrix} 0&-\phi_3&\phi_2\\\\\phi_3&0&-\phi_1\\\\-\phi_2&\ phi_1&0 \end{bmatrix}R(t).R˙(t)=ϕ ( t )R(t)= 0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10 R(t).

  It can be seen that to obtain a derivative for each pair of rotation matrices, just multiply by a ϕ ∧ ( t ) \phi^{\land}(t)ϕ (t)matrix is ​​enough. Considert 0 = 0 t_0 = 0t0=When 0 , set the rotation matrix at this time asR ( 0 ) = I . R(0) = I.R(0)=I. _ According to the definition of derivative, we can putR ( t ) R(t)R ( t ) att = 0 t = 0t=Perform a first-order Taylor expansion around 0 :

          R ( t ) ≈ R ( t 0 ) + R ˙ ( t 0 ) ( t − t 0 ) = I + ϕ ( t 0 ) ∧ ( t ) . \begin{aligned}R(t) &≈ R(t_0) + \.R{}(t_0)(t - t_0)\\&=I + \phi(t_0)^{\land}(t).\end{aligned} R(t)R(t0)+R˙(t0)(tt0)=I+ϕ ( t0)(t).

  We see that ϕ \phiϕ reflectsthe RRThe derivative property of R , so it is called in SO ( 3 ) SO(3)SO ( 3 ) on the Tangent Space near the origin. At the same time att 0 t_0t0Nearby, let ϕ \phiϕ remains constantϕ ( t 0 ) = ϕ 0 . \phi(t_0) = \phi_0.ϕ ( t0)=ϕ0. Therefore:

          R ˙ ( t ) = ϕ ( t 0 ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) . \.{R}(t) = \phi(t_0)^{\land}R(t) = \phi_0^{\land}R(t). R˙(t)=ϕ ( t0)R(t)=ϕ0R(t).

  The above formula is about RRDifferential equation of R with initial valueR ( 0 ) = IR(0) = IR(0)=I , solved

          R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) . R(t) = \exp{(\phi_0^{\land}t)}. R(t)=exp( ϕ0t).

  The reader can verify that the above formula holds for both differential equations and initial values. This means that at t = 0 t = 0t=Near 0 , the rotation matrix can be calculated byexp ⁡ ( ϕ 0 ∧ t ) \exp{(\phi_0^{\land}t)}exp( ϕ0t ) is calculated. We see that the rotation matrixRRR and another antisymmetric matrixϕ 0 ∧ t \phi_0^{\land}tϕ0t is connected through an exponential relationship. But what is the index of the matrix? Here we have two questions to clarify:

  1. Given R at a certain moment, R,R , we can find aϕ , \phi,ϕ , which describesthe RRR in the local derivative relationship. withRRR corresponds toϕ \phiWhat does ϕ mean? We say thatϕ \phiϕ exactly corresponds toSO ( 3 ) SO(3)Lie algebra on SO ( 3 ) so ( 3 ) ; \mathfrak{so}(3);so(3);
  2. Second, given a certain vector ϕ \phiϕ , matrix exponentexp ⁡ ( ϕ ∧ ) \exp{(\phi^{\land})}exp( ϕ )how to calculate? Conversely, givenRRIn R , can there be an inverse operation to calculateϕ ? \phi?ϕ ? In fact, this is exactly the exponential/logarithmic mapping between Lie groups and Lie algebras.

  Below, we address these two issues.

4.1.3 Definition of Lie algebra

  Every Lie group has a corresponding Lie algebra. Lie algebras describe the local properties of Lie groups, to be precise, the tangent space around the identity element. A general Lie algebra is defined as follows:
  Lie algebra consists of a set V , \mathbb{V},V , a number fieldF \mathbb{F}F and a binary operation[ , ] [,][,]组成。如果它们满足以下几条性质,则称 ( V , F , [ , ] ) (\mathbb{V,F,[,]}) (V,F,[,])为一个李代数,记作 g 。 \mathfrak{g}。 g

  1. 封闭性    ∀ X , Y ∈ V , [ X , Y ] ∈ V . \;\forall X,Y \in \mathbb{V},[X,Y]\in\mathbb{V}. X,YV,[X,Y]V.
  2. 双线性    ∀ X , Y , Z ∈ V , a , b ∈ F , \;\forall X,Y,Z \in \mathbb{V},a,b \in \mathbb{F}, X,Y,ZV,a,bF,
              [ a X + b Y , Z ] = a [ X , Z ] + b [ Y , Z ] ,    [ Z , a X + b Y ] = a [ Z , X ] + b [ Z , Y ] . [aX + bY,Z] = a[X,Z] + b[Y,Z],\;[Z,aX + bY] = a[Z,X] + b[Z,Y]. [aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y].
  3. 自反性    ∀ X ∈ V , [ X , X ] = 0. \;\forall X \in \mathbb{V},[X,X] = 0. XV,[X,X]=0.
  4. 雅可比等价    ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Z , [ X , Y ] ] + [ Y , [ Z , X ] ] = 0 \;\forall X,Y,Z \in \mathbb{V},[X,[Y,Z]] + [Z,[X,Y]] + [Y,[Z,X]] = 0 X,Y,ZV,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0

where binary operations are called Lie brackets . On the surface, Lie algebras need quite a lot of properties. In contrast to the simpler binary operations in groups, Lie brackets express the difference between two elements. It does not require the associative law, but requires the property that the element and itself are zero after the braces. As an example, the three-dimensional vector R 3 \mathbb{R}^3RThe cross product × defined on 3 is a Lie bracket, so g = ( R 3 , R , × ) \mathfrak{g} = (\mathbb{R}^3,\mathbb{R},×)g=(R3,R,× ) form a Lie algebra.

4.1.4 Lie algebra so ( 3 ) \mathfrak{so}(3)so(3)

  The previously mentioned ϕ , \phi,ϕ , is in fact a Lie algebra. SO ( 3 ) SO(3)SO ( 3 ) corresponds to the definition inR 3 \mathbb{R}^3RThe vector on 3 , we denote as ϕ \phiϕ . According to the previous derivation, eachϕ \phiϕ can generate an antisymmetric matrix:

         Φ = ϕ ∧ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] ∈ R 3 × 3 . \Phi = \phi^{\land} = \begin{bmatrix} 0&-\phi_3&\phi_2\\\\\\phi_3&0&-\phi_1\\\\-\phi_2&\phi_1&0 \end{bmatrix}\in \mathbb{ R}^{3×3}.Phi=ϕ= 0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10 R3 × 3 .
  Under this definition, two vectorsϕ 1 , ϕ 2 \phi_1,\phi_2ϕ1,ϕ2The braces for

         [ ϕ 1 , ϕ 2 ] = ( Φ 1 Φ 2 − Φ 2 Φ 1 ) ∨ . [\phi_1,\phi_2] = (\Phi_1\Phi_2 - \Phi_2\Phi_1)^{\lor}.[ p1,ϕ2]=( F1Phi2Phi2Phi1).

  Readers can verify whether the braces under this definition satisfy the above four properties. Since the vector ϕ \phiThere is a one-to-one correspondence between ϕ and anti-symmetric matrix,so ( 3 ) \mathfrak{so}(3)The elements of so ( 3 ) are three-dimensional vectors or three-dimensional antisymmetric matrices, without distinction:

         so (3) = {ϕ ∈ R 3, Φ = ϕ ∧ ∈ R 3 × 3}. \mathfrak{so}(3) = \{\phi \in \mathbb{R}^3,\Phi = \phi^{\land} \in \mathbb{R}^{3 × 3}\}.so(3)={ pR3,Phi=ϕR3×3}.

Some books also use ϕ ^ \hat{\phi}ϕ^Such a notation indicates anti-symmetry, but the meaning is the same. So far, we have cleared so ( 3 ) \mathfrak{so}(3)the content of so ( 3 ) . They are athree-dimensional vector, each corresponding to an antisymmetric matrix, which can be used to express the derivative of the rotation matrix. It is related toSO ( 3 ) SO(3)SO ( 3 ) the relation is given by an exponential map:

         R = exp ⁡ ( ϕ ∧ ) . R = \exp{(\phi^{\land})}.R=exp( ϕ).

Exponent mappings are covered later. Since so ( 3 ) has been introduced , \mathfrak{so}(3),so ( 3 ) , let's take a look atSE ( 3 ) SE(3)The Lie algebra corresponding to SE ( 3 ) .

4.1.5 Lie algebra se ( 3 ) \mathfrak{se}(3)with ( 3 )

  For SE ( 3 ) SE(3)SE ( 3 ) also has a corresponding Lie algebrase ( 3 ). \mathfrak{se}(3).se ( 3 ) . In order to save space, how to introducese ( 3 ) \mathfrak{se}(3)se ( 3 ) . withso ( 3 ) \mathfrak{so}(3)so ( 3 ) is similar,se ( 3 ) \mathfrak{se}(3)se ( 3 ) is located atR 6 \mathbb{R}^6R6 spaces:

         se ( 3 ) = { ξ = [ ρ ϕ ] ∈ R 6 , ρ ∈ R 3 , ϕ ∈ so ( 3 ), ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 }. \mathfrak{se}(3) = \left\{ \xi = \begin{bmatrix} \rho\\\\\phi\end{bmatrix}\in\mathbb{R}^6,\rho\in\mathbb {R}^3,\phi\in\mathfrak{so}(3),\xi^{\land} = \begin{bmatrix}\phi^{\land}&\rho\\\\0^T&0\ end{bmatrix}\in\mathbb{R}^{4×4}\right\}.with ( 3 )= X= rϕ R6,rR3,ϕso(3),X= ϕ0Tr0 R4×4 .

We take each se ( 3 ) \mathfrak{se}(3)The elements of se ( 3 ) are denoted asξ , \xi,ξ , which is a six-dimensional vector. The first three dimensions are translation, denoted asρ; \rho;ρ ; the last three dimensions are rotations, denoted asϕ , \phi,ϕ , which is essentiallyso ( 3 ) \mathfrak{so}(3)so ( 3 ) elements. At the same time, we extended    ˆ \;\^{}The meaning of the ˆ symbol. atse ( 3 ) \mathfrak{se}(3)se ( 3 ) , also use    ˆ \;\^{}ˆ symbol, converts a six-dimensional vector into a four-dimensional matrix, but here no longer expresses anti-symmetry:

          ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 . \xi^{\land} = \begin{bmatrix}\phi^{\land}&\rho\\\\0^T&0\end{bmatrix}\in\mathbb{R}^{4×4}. X= ϕ0Tr0 R4×4.

  We still use    ˆ \;\^{}ˆ    ˇ \;\check{} ˇ 符号指代“从向量到矩阵”和“从矩阵到向量”的关系,以保持和 s o ( 3 ) \mathfrak{so}(3) so(3)上的一致性。它们依旧是一一对应的。读者可以简单地把 s e ( 3 ) \mathfrak{se}(3) se(3)理解成“由一个平移加上一个 s o ( 3 ) \mathfrak{so}(3) so(3)元素构成的向量”(尽管这里的 ρ \rho ρ还不直接是平移)。同样,李代数 s e ( 3 ) \mathfrak{se}(3) se(3)也有类似于 s o ( 3 ) \mathfrak{so}(3) so(3)的李括号:

          [ ξ 1 , ξ 2 ] = ( ξ 1 ∧ ξ 2 ∧ − ξ 2 ∧ ξ 1 ∧ ) ∨ . [\xi_1,\xi_2] = (\xi_1^{\land}\xi_2^{\land} - \xi_2^{\land}\xi_1^{\land})^{\lor}. [ξ1,ξ2]=(ξ1ξ2ξ2ξ1).

  读者可以验证它是否满足李代数的定义。至此,我们已经见过两种重要的李代数 s o ( 3 ) \mathfrak{so}(3) so(3) s e ( 3 ) \mathfrak{se}(3) se(3)了。

4.2 指数与对数映射

4.2.1 S O ( 3 ) SO(3) SO(3)上的指数映射

  现在来考虑第二个问题:如何计算 exp ⁡ ( ϕ ∧ ) ? \exp{(\phi^{\land})}? exp(ϕ)?显然它是一个矩阵的指数,在李群和李代数中,称为指数映射(Exponential Map)。同样,我们会先讨论 s o ( 3 ) \mathfrak{so}(3) The exponential map of so ( 3 ) , then discuss se ( 3 ) \mathfrak{se}(3)se ( 3 ) situation.
  The exponential map of any matrix can be written as a Taylor expansion, but only if it converges, the result is still a matrix:

          exp ⁡ ( A ) = ∑ n = 0 ∞ 1 n ! A n . \exp(A) =\sum\limits_{n=0}^\infty \frac{1}{n!}A^n. exp(A)=n=0n!1An.

  Similarly, for so ( 3 ) \mathfrak{so}(3)Any element in so ( 3 ) ϕ , \phi,ϕ , we can also define its exponential map in this way:

         exp ⁡ ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n \exp(\phi^{\country}) =\sum\limits_{n=0}^\infty \frac{1}{n!}(\phi^{\country})^n.exp(ϕ)=n=0n!1(ϕ)n.

但这个定义没法直接计算,因为我们不想计算矩阵的无穷次幂。下面我们推导一种计算指数映射的简便方法。由于 ϕ \phi ϕ是三维向量,我们可以定义它的模长和方向,分别记作 θ \theta θ a , a, a于是有 ϕ = θ a 。 \phi = \theta a。 ϕ=θa这里 a a a是一个长度为1的方向向量,即 ∥ a ∥ = 1 。 \left \Vert a \right \Vert = 1。 a=1首先,对于 a ∧ , a^{\land}, a,有以下两条性质:

          a ∧ a ∧ = [ − a 2 2 − a 3 2 a 1 a 2 a 1 a 3 a 1 a 2 − a 1 2 − a 3 2 a 2 a 3 a 1 a 3 a 2 a 3 − a 1 2 − a 2 2 ] = a a T − I , a^{\land}a^{\land} = \begin{bmatrix}-a^2_2 - a_3^2&a_1a_2&a_1a_3\\\\a_1a_2&-a_1^2-a_3^2&a_2a_3\\\\a_1a_3&a_2a_3&-a_1^2-a_2^2\end{bmatrix} = aa^T - I, aa= a22a32a1a2a1a3a1a2a12a32a2a3a1a3a2a3a12a22 =aaTI,

  as well as

          a ∧ a ∧ a ∧ = a ∧ ( a a T − I ) = − a ∧ . a^{\land}a^{\land}a^{\land} = a^{\land}(aa^T - I) = -a^{\land}. aaa=a(aaTI)=a.

These two formulas provide the processing a ∧ a^{\land}a methods for higher-order terms. We can write the exponential map as

          exp ⁡ ( ϕ ∧ ) = exp ⁡ ( θ a ∧ ) = ∑ n = 0 ∞ 1 n ! ( θ a ∧ ) n = I + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ + 1 3 ! θ 3 a ∧ a ∧ a ∧ + 1 4 ! θ 4 ( a ∧ ) 4 + ⋅ ⋅ ⋅ = a a T − a ∧ a ∧ + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ − 1 3 ! θ 3 a ∧ − 1 4 ! θ 4 ( a ∧ ) 2 + ⋅ ⋅ ⋅ = a a T + ( θ − 1 3 ! θ 3 + 1 5 ! θ 5 − ⋅ ⋅ ⋅ ) ⏟ sin ⁡ θ a ∧ − ( 1 − 1 2 ! θ 2 + 1 4 ! θ 4 − ⋅ ⋅ ⋅ ) ⏟ cos ⁡ θ a ∧ a ∧ = a ∧ a ∧ + I + sin ⁡ θ a ∧ − cos ⁡ θ a ∧ a ∧ = ( 1 − cos ⁡ θ ) a ∧ a ∧ + I + sin ⁡ θ a ∧ = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ \begin{aligned}\exp(\phi^{\land}) = \exp(\theta a^{\land}) &= \sum\limits_{n = 0}^{\infty}\frac{1}{n!}(\theta a^{\land})^n\\ &=I + \theta a^{\land} + \frac{1}{2!}\theta^{2}a^{\land}a^{\land} + \frac{1}{3!}\theta^{3}a^{\land}a^{\land}a^{\land} + \frac{1}{4!}\theta^{4}(a^{\land})^4 + ···\\&= aa^T - a^{\land}a^{\land} + \theta a^{\land} + \frac{1}{2!}\theta^{2}a^{\land}a^{\land} - \frac{1}{3!}\theta^{3}a^{\land} - \frac{1}{4!}\theta^{4}(a^{\land})^2 + ···\\&= aa^T + \begin{matrix}\underbrace{(\theta - \frac{1}{3!}\theta^3 + \frac{1}{5!}\theta^5 - ···)}\\\sin{\theta}\end{matrix}a^{\land} - \begin{matrix}\underbrace{(1 - \frac{1}{2!}\theta^2 + \frac{1}{4!}\theta^4 - ···)}\\\cos{\theta}\end{matrix}a^{\land}a^{\land}\\&= a^{\land}a^{\land} + I + \sin{\theta}a^{\land} - \cos{\theta}a^{\land}a^{\land}\\&= (1-\cos{\theta})a^{\land}a^{\land} + I + \sin{\theta}a^{\land}\\&= \cos{\theta}I + (1-\cos{\theta})aa^{T} + \sin{\theta}a^{\land} \end{aligned} exp ( ϕ)=exp ( θ a)=n=0n!1( i a)n=I+i a+2!1i2a _a+3!1i3 aaa+4!1i4(a)4+⋅⋅⋅=aaTaa+i a+2!1i2a _a3!1i3 a4!1i4(a)2+⋅⋅⋅=aaT+ ( i3!1i3+5!1i5⋅⋅⋅)sinia (12!1i2+4!1i4⋅⋅⋅)cosiaa=aa+I+sini acosi aa=(1cosi ) aa+I+sini a=cosθI+(1cosθ)aaT+sinθa

  最后,得到一个似曾相识的式子:

          exp ⁡ ( θ a ∧ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ . \exp{(\theta a^{\land})} = \cos{\theta}I + (1-\cos{\theta})aa^{T} + \sin{\theta}a^{\land}. exp(θa)=cosθI+(1cosθ)aaT+sinθa.

  回想第3讲的内容,它和罗德里格斯公式如出一辙。这表明, s o ( 3 ) \mathfrak{so}(3) so(3)实际上就是由所谓的旋转向量组成的空间,而指数映射即罗德里格斯公式。通过它们,我们把 s o ( 3 ) \mathfrak{so}(3) so(3)中任意一个向量对应到了一个位于 S O ( 3 ) SO(3) SO(3)中的旋转矩阵。反之,如果定义对数映射,也能把 S O ( 3 ) SO(3) SO(3)中的元素对应到 s o ( 3 ) \mathfrak{so}(3) so(3)中:

          ϕ = ln ⁡ ( R ) ∨ = ( ∑ n = 0 ∞ ( − 1 ) n n + 1 ( R − I ) n + 1 ) ∨ . \phi = \ln{(R)^{\lor}} = \left(\sum\limits_{n = 0}^{\infty}\frac{(-1)^n}{n + 1}(R - I)^{n + 1} \right)^{\lor}. ϕ=ln(R)=(n=0n+1(1)n(RI)n+1).

和指数映射一样,我们没必要直接用泰勒展开计算对数映射。在第3讲中,我们介绍过如何根据旋转矩阵计算对应的李代数,利用迹的性质分别求解转角和转轴,采用这种方式更省事。
  现在,我们介绍了指数映射的计算方法。那么,指数映射有何性质呢?是否对于任意的 R R R都能找到一个唯一的 ϕ ? \phi? ϕ?很遗憾,指数映射只是一个满射,并不是单射(有关满射、单射、双射参考图灵的猫i的文章)。这意味着每个 S O ( 3 ) SO(3) SO(3)中的元素,都可以找到一个 s o ( 3 ) \mathfrak{so}(3) so(3)元素与之对应;但是可能存在多个 s o ( 3 ) \mathfrak{so}(3) so(3)中的元素,对应到同一个 S O ( 3 ) SO(3) SO(3)。至少对于旋转角 θ \theta θ,我们知道多转 360 ° 360° 360° is the same as no rotation - it has periodicity. However, if we fix the rotation angle at± π ±\pi± π , then there is a one-to-one correspondence between Lie groups and Lie algebra elements.
  SO ( 3 ) SO(3)SO ( 3 ) andso ( 3 ) \mathfrak{so}(3)The conclusion of so ( 3 ) seems to be within our expectations. It is very similar to the rotation vector and rotation matrix we talked about earlier, and the exponential map is the Rodriguez formula. The derivative of a rotation matrix can be specified by a rotation vector, which guides how to perform calculus operations on rotation matrices.

4.2.2 SE ( 3 ) SE(3)Exponential mapping on SE ( 3 )

  The following introduces se ( 3 ) \mathfrak{se}(3)Exponential map on se ( 3 ) . As above, the form is as follows:

          exp ⁡ ( ξ ∧ ) = [ ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n ∑ n = 0 ∞ 1 ( n + 1 ) ! ( ϕ ∧ ) n ρ 0 T 1 ] = Δ [ R J p 0 T 1 ] = T \begin{aligned}\exp{(\xi^{\land})} &= \begin{bmatrix} \sum\limits_{n = 0}^{\infty}\frac{1}{n!}(\phi^{\land})^n&\sum\limits_{n = 0}^{\infty}\frac{1}{(n + 1)!}(\phi^{\land})^n\rho\\\\0^T&1\end{bmatrix}\\\\ &\overset{\Delta}{=}\begin{bmatrix}R&Jp\\\\0^T&1\end{bmatrix} = T \end{aligned} exp(ξ)= n=0n!1(ϕ)n0Tn=0(n+1)!1(ϕ)nρ1 =Δ R0TJp1 =T

  只要有一点耐心,可以照着 s o ( 3 ) \mathfrak{so}(3) So ( 3 ) derivation, putexp ⁡ \expexp conducts a Taylor expansion to derive the matter. Letϕ = θ a , \phi = \theta a,ϕ=θ a , whereaaa is a unit vector, then

         ∑ n = 0 ∞ 1 ( n + 1 ) ! ( ϕ ∧ ) n = I + 1 2 ! θ a ∧ + 1 3 ! θ 2 ( a ∧ ) 2 + 1 4 ! θ 3 ( a ∧ ) 3 + 1 5 ! θ 4 ( a ∧ ) 4 ⋅ ⋅ ⋅ = 1 θ ( 1 2 ! θ 2 − 1 4 ! θ 4 + ⋅ ⋅ ⋅ ) ( a ∧ ) + 1 θ ( 1 3 ! θ 3 − 1 5 ! θ 5 + ⋅ ⋅ ⋅ ) ( a ∧ ) 2 + I = 1 θ ( 1 − cos ⁡ θ ) ( a ∧ ) + θ − sin ⁡ θ θ ( aa T − I ) + I = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) aa T + 1 − cos ⁡ θ θ a ∧ = def J \begin{aligned} \sum\limits_{n = 0}^{\infty}\frac{1}{(n + 1)!}(\phi^{\country})^n&=I + \frac{1 }{2!}\theta a^{\land} + \frac{1}{3!}\theta^{2}(a^{\land})^2 + \frac{1}{4!}\ theta^{3}(a^{\land})^3 +\frac{1}{5!}\theta^{4}(a^{\land})^4 ···\\&= \frac {1}{\theta}\begin{matrix}(\frac{1}{2!}\theta^2 - \frac{1}{4!}\theta^4 + ···)\end{matrix} (a^{\land}) + \frac{1}{\theta}\begin{matrix}(\frac{1}{3!}\theta^3 - \frac{1}{5!}\theta^ 5 + ···)\end{matrix}(a^{\land})^2 + I\\& = \frac{1}{\theta}(1-\cos{\theta})(a^{\land}) + \frac{\theta - \sin{\theta}}{\theta}(aa^T - I) + I\\&= \frac{\sin{\theta}}{\theta}I + (1-\frac{\sin\theta}{\theta})aa^{T} + \frac{ 1 - \cos{\theta}}{\theta}a^{\land}\translated{def}{=}J. \end{aligned}n=0(n+1)!1( ϕ)n=I+2!1i a+3!1i2(a)2+4!1i3(a)3+5!1i4(a)4⋅⋅⋅=i1(2!1i24!1i4+⋅⋅⋅)(a)+i1(3!1i35!1i5+⋅⋅⋅)(a)2+I=i1(1cosi ) ( a)+iisini(aaTI)+I=isiniI+(1isini)aaT+i1cosia=defJ.

  从结果上看, ξ \xi ξ的指数映射左上角的 R R R是我们熟知的 S O ( 3 ) SO(3) SO(3)中的元素,与 s e ( 3 ) \mathfrak{se}(3) se(3)中的旋转部分 ϕ \phi ϕ对应。而右上角的 J J J由上面的推导给出:

          J = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) a a T + 1 − cos ⁡ θ θ a ∧ . J = \frac{\sin{\theta}}{\theta}I + (1-\frac{\sin\theta}{\theta})aa^{T} + \frac{1 - \cos{\theta}}{\theta}a^{\land}. J=θsinθI+(1θsinθ)aaT+θ1cosθa.

  This formula is somewhat similar to the Rodriguez formula, but not exactly the same. We can see that after the translation part is index mapped, an occurrence of JJJ is the linear transformation of the coefficient matrix.
  Similarly, although we can also deduce the logarithmic map by analogy, according to the transformation matrixTTT seeksso ( 3 ) \mathfrak{so}(3)The corresponding vector on so ( 3 ) has a more convenient way: from the upper leftRRR calculates the rotation vector whilettt satisfies:

          t = J ρ . t = J\rho. t=Jρ.

  Thanks to JJJ can be given byϕ \phiϕ is obtained, so hereρ \rhoρ can also be solved from this linear equation. Now, we have clarified the definitions of Lie groups and Lie algebras and their mutual transformation relations, as shown in the figure below:
insert image description here

4.3 Lie algebraic derivation and disturbance model

4.2.1 BCH formula and approximate form

  One of the main motivations for using Lie algebras is optimization, where derivatives are very necessary information. Let's consider a problem. Although we have cleared SO ( 3 ) SO(3)SO ( 3 ) sumSE( 3 ) SE(3)The relation between Lie group and Lie algebra on SE ( 3 ) , but when onSO ( 3 ) SO(3)When two matrices are multiplied in SO ( 3 ) , in Lie algebraso ( 3 ) \mathfrak{so}(3)What has changed on so ( 3 ) ? Conversely, whenso ( 3 ) \mathfrak{so}(3)When adding two Lie algebras on so ( 3 ) , SO ( 3 ) SO(3)Does SO ( 3 ) correspond to the product of two matrices? If true, it is equivalent to:

         exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) = exp ⁡ ( ( ϕ 1 + ϕ 2 ) ∧ ) ? \exp(\phi^{\land}_1)\exp(\phi^{\land}_2) = \exp((\phi_1 + \phi_2)^{\land})?exp ( ϕ1)exp ( ϕ2)=exp (( ϕ1+ϕ2))?

  如果 ϕ 1 , ϕ 2 \phi_1,\phi_2 ϕ1,ϕ2为标量,那么显然该式成立;但此时我们计算的是矩阵的指数函数,而非标量的指数。换言之,我们在研究下式是否成立:

          ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B ? \ln(\exp(A)\exp(B)) = A + B? ln(exp(A)exp(B))=A+B

  很遗憾,该式在矩阵时并不成立。两个李代数指数映射乘积的完整形式,由Baker-Campbell-Hausdorff公式(BCH公式)给出。由于其完整形式较复杂,我们只给出其展开式的前几项:

          ln ⁡ ( e x p ( A ) exp ⁡ ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + ⋅ ⋅ ⋅ \ln(exp(A)\exp(B)) = A + B + \frac{1}{2}[A,B] +\frac{1}{12}[A,[A,B]]-\frac{1}{12}[B,[A,B]] + ··· ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]121[B,[A,B]]+⋅⋅⋅

  where [ ] [\;][] are the braces. The BCH formula tells us that when dealing with the product of two matrix exponents, they result in some remainder consisting of Lie brackets. In particular, considerSO ( 3 ) SO(3)Lie algebraln ⁡ ( exp ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ , \ln(exp(\phi_1^{\land})\exp(\phi_2^{ \ land } ))^{\lor},ln ( e x p ( ϕ1)exp ( ϕ2)) ,whenϕ 1 \phi_1ϕ1or ϕ 2 \phi_2ϕ2When it is a small amount, the items above the second degree of the small amount can be ignored. At this time, BCH has a linear approximate expression:

         ln ⁡ ( exp ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2 When ϕ 1 is small, J r ( ϕ 1 ) − 1 ϕ 2 + ϕ 1 When ϕ 2 is small, \ln(exp(\phi_1^{\land})\exp(\phi_2^{\land}))^{\lor} ≈\begin{cases} J_l(\phi_2 )^{-1}\phi_1 + \phi_2& When \phi_1 is a small amount, \\ J_r(\phi_1)^{-1}\phi_2 + \phi_1& When \phi_2 is a small amount, \end{cases}ln ( e x p ( ϕ1)exp ( ϕ2)){ Jl( ϕ2)1 p1+ϕ2Jr( ϕ1)1 p2+ϕ1ϕ1for a small amount ,ϕ2for a small amount ,

  Take the first approximation as an example. This formula tells us that when for a rotation matrix R 2 R_2R2(The Lie algebra is ϕ 2 \phi_2ϕ2) is left multiplied by a small rotation matrix R 1 R_1R1(The Lie algebra is ϕ 1 \phi_1ϕ1), it can be approximately regarded as, in the original Lie algebra ϕ 2 \phi_2ϕ2A term J l ( ϕ 2 ) − 1 ϕ 1 is added to it . J_l(\phi_2)^{-1}\phi_1.Jl( ϕ2)1 p1. Similarly, the second approximation describes the case of right multiplication by a small displacement. Therefore, under the BCH approximation, Lie algebra is divided into two types: left multiplication approximation and right multiplication approximation. When using it, we must pay attention to whether we use the left multiplication model or the right multiplication model.
  This book uses left multiplication as an example. Left multiplication BCH approximation JacobianJ l J_lJlIn fact, it is the content of formula (4.27):

         J l = J = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) aa T + 1 − cos ⁡ θ θ a ∧ J_l = J = \frac{\sin\theta}{\theta}I + (1 - \frac{\sin\theta}{\theta})aa^T + \frac{1 - \;\cos\theta} {\theta}a^{\land}.Jl=J=isinθI+(1θsinθ)aaT+θ1cosθa.

  它的逆为

          J l − 1 = θ 2 cot ⁡ θ 2 I + ( 1 − θ 2 cot ⁡ θ 2 ) a a T − θ 2 a ∧ . J_l^{-1} = \frac{\theta}{2}\cot\frac{\theta}{2}I + (1 - \frac{\theta}{2}\cot\frac{\theta}{2})aa^T - \frac{\theta}{2}a^{\land}. Jl1=2θcot2θI+(12θcot2θ)aaT2θa.

而右乘雅可比仅需要对自变量取负号即可:

          J r ( ϕ ) = J l ( − ϕ ) . J_r(\phi) = J_l(-\phi). Jr(ϕ)=Jl(ϕ).

  这样,我们就可以谈论李群乘法与李代数加法的关系了。
  为了方便读者理解,我们重新叙述BCH近似的意义。假定对某个旋转 R , R, R, 对应的李代数为 ϕ 。 \phi。 ϕ . We multiply it to the left by a small rotation, denoted asΔ R , \Delta R,Δ R , the corresponding Lie algebra isΔ ϕ . \Delta\phi.Δϕ . _ Then, on the Lie group, the result obtained isΔ R ⋅ R , \Delta R·R,ΔRR , and on the Lie algebra, according to the BCH approximation, isJ l − 1 ( ϕ ) Δ ϕ + ϕ . J_l^{-1}(\phi)\Delta\phi + \phi.Jl1( ϕ ) D ϕ+ϕ . Combined, it can be simply written as:

         exp ⁡ ( Δ ϕ ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ( ϕ + J l − 1 ( ϕ ) Δ ϕ ) ∧ ). \exp(\Delta\phi^{\land})\exp(\phi^{\land}) = \exp((\phi + J_l^{-1}(\phi)\Delta\phi)^{\ land}).exp ( Δ ϕ)exp ( ϕ)=exp (( ϕ+Jl1( ϕ ) D ϕ )).

  Conversely, if we perform addition on Lie algebras, let a ϕ \phiϕ plusΔϕ, \Delta\phi,Δ ϕ , let aϕ \phiϕ plusΔϕ, \Delta \phi,Δ ϕ , then it can be approximated as multiplication with left and right Jacobians on Lie groups:

         exp ⁡ ( ( ϕ + Δ ϕ ) ∧ ) ) = exp ⁡ ( ( J l Δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ϕ ∧ ) exp ⁡ ( ( J r Δ ϕ ) ∧ ) . \exp((\phi + \Delta\phi)^{\land})) = \exp((J_l\Delta\phi)^{\land})\exp(\phi^{\land}) = \exp (\phi^{\land})\exp((J_r\Delta\phi)^{\land}).exp (( ϕ+D ϕ )))=exp((JlD ϕ ))exp(ϕ)=exp(ϕ)exp((JrΔϕ)).

  这就为之后李代数上做微积分提供了理论基础。同样地,对于 S E ( 3 ) , SE(3), SE(3),也有类似的BCH近似:

          exp ⁡ ( Δ ξ ∧ ) exp ⁡ ( ξ ∧ ) ≈ exp ⁡ ( ( J l − 1 Δ ξ + ξ ) ∧ ) , \exp(\Delta\xi^{\land})\exp(\xi^{\land}) ≈ \exp((\mathcal{J}_l^{-1}\Delta\xi + \xi)^{\land}), exp(Δξ)exp(ξ)exp((Jl1Δξ+ξ) ),
         exp ⁡ ( ξ ∧ ) exp ⁡ ( Δ ξ ∧ ) ≈ exp ⁡ ( ( J r − 1 Δ ξ + ξ ) ∧ ) . \exp(\xi^{\land})\exp(\Delta\xi^{\land}) ≈ \exp((\mathcal{J}_r^{-1}\Delta\xi + \xi)^{ \land}).exp ( ξ)exp ( D ξ)exp((Jr1D x+x )).

  Here the form of $\mathcal{J_l} is more complex, it is a 6 × 6 6 × 66×6 matrix. Since we did not use the Jacobian in the calculation, its actual form is omitted here.

4.3.2 Derivation of Lie algebras on SO(3)

  Let's discuss a function with a Lie algebra and the problem of derivation of the Lie algebra. The question has a strong practical background. In SLAM, we want to estimate the position and pose of a camera given by SO ( 3 ) SO(3)Rotation matrix on SO ( 3 ) or SE(3) SE(3)Described by the transformation matrix on SE ( 3 ) . It may be advisable to set the pose of the little radish asT at a certain moment. T.T. _ It observes a world coordinate atppThe point of p produces an observation dataz. z.z . Then, from the coordinate transformation relation:

          z = T p + w . z = Tp + w. z=Tp+w.

in that www is random noise. Because of its existence,zzIt is often impossible for z to satisfy z = T pz = Tpexactlyz=Tp relationship. Therefore, we usually calculate the error between the ideal observation and the actual data:

          e = z − T p . e = z - Tp. e=zTp.

  Suppose there are NNN such landmark points and observations, so there areNNN above formulas. Then, estimating the pose of the radish is equivalent to finding an optimalT, T,T , so that the overall error is minimized:

          min ⁡ T J ( T ) = ∑ i = 1 N ∥ z i − T p i ∥ 2 2 . \min\limits_TJ(T) = \sum\limits^N_{i = 1}\Vert z_i - Tp_i\Vert_2^2. TminJ(T)=i=1NziTpi22.

  To solve this problem, it is necessary to calculate the objective function JJJ with respect to the transformation matrixTTDerivative of T. We leave the specific algorithm for later. The point here is that we often construct pose-related functions and then talk about derivatives of that function with respect to pose to adjust the current estimate. **However,SO ( 3 ) , SO(3),SO ( 3 ) , SE ( 3 ) SE(3)There are no well-defined additions on SE ( 3 ) , they are just groups. If we takeTTT is treated as an ordinary matrix to handle optimization, and it must be constrained. From the perspective of Lie algebra, since Lie algebra is composed of vectors and has good addition operations, there are two ways to use Lie algebra to solve the problem of derivation:

  1. 用李代数表示姿态,然后根据李代数加法对李代数求导。
  2. 对李群左乘右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型。

  第一种方式对应到李代数的求导模型,而第二种方式则对应到扰动模型。下面讨论下这两种思路的异同。

4.3.3 李代数求导

  首先,考虑 S O ( 3 ) SO(3) SO(3)上的情况。假设我们对一个空间点 p p p进行了旋转,得到了 R p Rp Rp。现在,要计算旋转之后点的坐标相对于旋转的导数,我们非正式地记为

                   ∂ ( R p ) ∂ ( R ) \frac{\partial(Rp)}{\partial(R)} (R)(Rp)

由于 S O ( 3 ) SO(3) SO(3)没有加法,所以该导数无法按照导数的定义进行计算。设 R R R对应的李代数为 ϕ , \phi, ϕ我们转而计算:

                  ∂ ( exp ⁡ ( ϕ ∧ ) p ) ∂ ϕ . \frac{\partial(\exp(\phi^{\land})p)}{\partial\phi}.ϕ( e x p ( ϕ)p).

  According to the definition of derivative, we have

         ∂ ( exp ⁡ ( ϕ ∧ ) p ) ∂ ϕ = lim ⁡ δ ϕ → 0 exp ⁡ ( ( ϕ + δ ϕ ) ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 exp ⁡ ( ( J l δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 ( I + ( J l δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 ( J l δ ϕ ) ∧ exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 − ( exp ⁡ ( ϕ ∧ ) p ) ∧ J l δ ϕ δ ϕ = − ( R p ) ∧ J l \begin{aligned} \frac{\partial(\exp(\phi^{\land})p)}{\partial\phi}&= \lim\limits_{\delta\phi\rightarrow0}\frac{\exp((\phi + \delta\phi)^{\land})p - \exp(\phi^{\land})p}{\ delta\phi}\\\\&= \lim\limits_{\delta\phi\rightarrow0}\frac{\exp((J_l\delta\phi)^{\land})\exp(\phi^{\land })p - \exp(\phi^{\land})p}{\delta\phi}\\\\&= \lim\limits_{\delta\phi\rightarrow0}\frac{(I +(J_l\ delta\phi)^{\land})\exp(\phi^{\land})p - \exp(\phi^{\land})p}{\delta\phi}\\\\&= \lim\limits_{\delta\phi\rightarrow0}\frac{(J_l\delta\phi)^{\land} \exp(\phi^{\land})p}{\delta\phi}\\\\&= \lim\limits_{\delta\phi\rightarrow0}\frac{-(\exp(\phi^{\land})p)^{\land}J_l\delta\phi }{\delta\phi} = -(Rp)^{\land}J_l \end{aligned}ϕ(exp(ϕ)p)=δϕ0limδϕexp((ϕ+δϕ))pexp(ϕ)p=δϕ0limδϕexp((Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(I+(Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(Jlδϕ)exp(ϕ)p=δϕ0limδϕ(exp(ϕ)p)Jlδϕ=(Rp)Jl

  The approximation in line 2 is the BCH linear approximation, and the approximation in line 3 after Taylor expansion discarding higher-order terms (because the limit is taken, you can write an equal sign), lines 4 to 5 regard the antisymmetric symbol as the cross product, Change the number after the exchange. Thus, we derive the derivative of the rotated point with respect to the Lie algebra:

          ∂ ( R p ) ∂ ϕ = ( − R p ) ∧ J l . \frac{\partial(Rp)}{\partial\phi} = (-Rp)^{\land}J_l. ϕ(Rp)=(Rp)Jl.

  However, since there are still complex forms of J l , J_l,Jl, we do not wish to compute it. The perturbation model described below provides a simpler way to calculate the derivative.

4.3.4 Disturbance model (left multiplication)

  Another way of derivation is to RRR performs a disturbanceΔ R \Delta RΔ R , look at the rate of change of the result relative to the disturbance. This disturbance can be multiplied on the left or on the right, and the final result will be slightly different. Let's take the left disturbance as an example. Let the left disturbanceΔ R \Delta RΔR corresponds to the Lie algebra φ . \varphi.φ . Then, forφ \varphiφ derivative, namely

         ∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ . \frac{\partial(Rp)}{\partial\varphi} = \lim\limits_{\varphi\rightarrow0}\frac{\exp(\varphi^{\land})\exp(\phi^{\land} )p\;-\;\exp(\phi^{\land})p}{\varphi}.φ(Rp)=φ0limPhie x p ( f)e x p ( ϕ)pe x p ( ϕ)p.

  The derivative of this formula is simpler than the above:

         ∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 ( I + φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 φ ∧ R p φ = lim ⁡ φ → 0 − ( R p ) ∧ φ φ = − ( R p ) ∧ . \begin{aligned}\frac{\partial(Rp)}{\partial\varphi} &= \lim\limits_{\varphi\rightarrow0}\frac{\exp(\varphi^{\land})\exp(\ phi^{\land})p\;-\;\exp(\phi^{\land})p}{\varphi}\\\\&= \lim\limits_{\varphi\rightarrow0}\frac{( I + \varphi^{\land})\exp(\phi^{\land})p\;-\;\exp(\phi^{\land})p}{\varphi}\\\\&= \lim\limits_{\varphi\rightarrow0}\frac{\varphi^{\land}Rp}{\varphi} = \lim\limits_{\varphi\rightarrow0}\frac{-(Rp)^{\land}\ varphi}{\varphi} = -(Rp)^{\land}. \end{aligned}φ(Rp)=φ0limPhiexp ( f)exp ( ϕ)pexp ( ϕ)p=φ0limPhi(I+Phi)exp ( ϕ)pexp ( ϕ)p=φ0limPhiPhiRp=φ0limPhi(Rp)φ=(Rp).

  It can be seen that compared with directly deriving Lie algebras, a Jacobian J l J_l is omittedJlcalculation. This makes the perturbation model more practical. Readers must understand the derivative operation here, which is of great significance in pose estimation.

4.3.5 Derivation of Lie algebras on SE(3)

  Finally, we give SE ( 3 ) SE(3)The perturbation model on SE ( 3 ) and the derivation on direct Lie algebra are not introduced anymore. Assume that a certain spatial pointppp undergoes a transformationTTT (corresponding to Lie algebra isξ \xiξ ), getT p TpTp . Now, toTTT is left multiplied by a disturbanceΔ T = exp ⁡ ( δ ξ ∧ ) , \Delta T = \exp(\delta\xi^{\land}),ΔT=exp ( δ ξ ),we set the Lie algebra of the disturbance term asδ ξ = [ δ ρ , δ ϕ ] T , \delta\xi = [\delta\rho,\delta\phi]^{T},d x=[ d r ,d ϕ ]T ,then:

         ∂ ( T p ) ∂ δ ξ = lim ⁡ δ ξ → 0 exp ⁡ ( δ ξ ∧ ) exp ⁡ ( ξ ∧ ) p − exp ⁡ ( ξ ∧ ) p δ ξ = lim ⁡ δ ξ → 0 ( I + δ ξ ∧ ) exp ⁡ ( ξ ∧ ) p − exp ⁡ ( ξ ∧ ) p δ ξ = lim ⁡ δ ξ → 0 δ ξ ∧ exp ⁡ ( ξ ∧ ) p δ ξ = lim ⁡ φ → 0 [ δ ϕ ∧ δ ρ 0 T 0 ] [ R p + t 1 ] δ ξ = lim ⁡ φ → 0 [ δ ϕ ∧ ( R p + t ) + δ ρ 0 T ] [ δ ρ , δ ϕ ] T = [ I − ( R p + t ) ∧ 0 T 0 T ] = def ( T p ) ⨀ . \begin{aligned}\frac{\partial(Tp)}{\partial\delta\xi} &= \lim\limits_{\delta\xi\rightarrow0}\frac{\exp(\delta\xi^{\land })\exp(\xi^{\land})p\;-\;\exp(\xi^{\land})p}{\delta\xi}\\\\&= \lim\limits_{\ delta\xi\rightarrow0}\frac{(I + \delta\xi^{\land})\exp(\xi^{\land})p\;-\;\exp(\xi^{\land}) p}{\delta\xi}\\\\&= \lim\limits_{\delta\xi\rightarrow0}\frac{\delta\xi^{\land}\exp(\xi^{\land})p }{\delta\xi}\\\\ &δξ(Tp)=δξ0limd xexp ( δ ξ)exp ( ξ)pexp ( ξ)p=δξ0limd x(I+d x)exp ( ξ)pexp ( ξ)p=δξ0limd xd xexp ( ξ)p=φ0limd x d ϕ0Td r0 Rp+t1 =φ0lim[ d r ,d ϕ ]T d ϕ(Rp+t)+d r0T = I0T(Rp+t)0T =def(Tp).

  We define the final result as an operator ⨀ ^{\bigodot} , which transforms a space point of homogeneous coordinates into a4 × 6 4×64×6 matrix. What needs to be explained in this formula is the order of matrix derivation, assuminga , b , x , ya,b,x,ya,b,x,Both y are column vectors, so in our writing method, there are the following rules:

          d [ a b ] d [ x y ] = ( d [ a , b ] T d [ x y ] ) = [ d a d x d b d x d a d y d b d y ] T = [ d a d x d a d y d b d x d b d y ] \frac{d\begin{bmatrix}\\\\a\\\\b\\\\\end{bmatrix}}{d\begin{bmatrix}\\\\x\\\\y\\\\\end{bmatrix}} = \left( \frac{d[a,b]^T}{d\begin{bmatrix}\\\\x\\\\y\\\\\end{bmatrix}} \right) = \begin{bmatrix}\frac{da}{dx}&\frac{db}{dx}\\\\\frac{da}{dy}&\frac{db}{dy}\end{bmatrix}^T =\begin{bmatrix}\frac{da}{dx}&\frac{da}{dy}\\\\\frac{db}{dx}&\frac{db}{dy}\end{bmatrix} d xy d ab = d xy d[a,b]T = dxd adyd adxdbdydb T= dxd adxdbdyd adydb

  So far, we have introduced Lie groups and differentiation operations on Lie algebras. In the following chapters, we will apply this knowledge to solve practical problems. Some important mathematical properties of Lie groups and Lie algebras are left as exercises for the reader.

4.4 Practice: Sophus

4.4.1 Basic usage of Sophus

  Now that we've covered the introductory knowledge of Lie algebra, it's time to walk through and solidify what you've learned with practice. Let's discuss how to manipulate Lie algebras in programs. In Lecture 3, we saw that Eigen provides a geometry module, but no support for Lie algebras. A good Lie algebra library is the Sophus library maintained by Strasdat. The Sophus library supports SO ( 3 ) SO(3) which is mainly discussed in this chapterSO ( 3 ) SumSE (3) , SE(3),SE ( 3 ) , in addition, also contains two-dimensional motionSO ( 2 ), SE ( 2 ) SO(2),SE(2)SO(2),SE ( 2 ) and the content of similar transformation Sim ( 3 ). It is directly developed on the basis of Eigen, we don't need to install additional dependencies. Early versions of Sophus only provided double-precision Lie groups/Lie algebra classes. Subsequent versions changed to template classes. Lie groups/Lie algebras of different precision can be used in Sophus of the template class, but at the same time, it increases the difficulty of use. In this book, we usewith templates.
  For details, seeSO(3) SO(3)slambook/ch4/useSophus.cppto demonstrate the Sophus librarySO ( 3 ) sumSE( 3 ) SE(3)SE ( 3 ) operation:
  the operation result is as follows:
insert image description hereinsert image description here
  the above program demonstrates the content of two parts. The first half introducesSO ( 3 ) SO(3)Operations on SO ( 3 ) , second half on SE(3). SE(3).SE ( 3 ) . We demonstrate how to constructSO ( 3 ) , SE ( 3 ) SO(3),SE(3)SO(3),SE ( 3 ) objects, how to perform exponential and logarithmic mapping on them, and how to update the Lie group elements when the updating amount is known. When you understand the content of this lecture, then this program should not be difficult for you. In order to compile, you need to add the following lines of code to CMakeLists.txt:

find_package( Sophus REQUIRED)
include_directories( ${
    
    Sophus_INCLUDE_DIRS})

add_executable( useSophus useSophus.cpp)

  The find_package command is an instruction provided by cmake to find the header files and library files of a certain library. If cmake can find it, it will provide the variable for the directory where the header and library files are located. In the case of Sophus, it is Sophus_INCLUDE_DIRS. Template-based Sophus libraries, like Eigen, contain only header files and no source files. According to them, we can import the Sophus library into our own cmake project.

4.4.2 Example: Evaluating Trajectory Errors

  In practical engineering, we often need to evaluate the difference between the estimated trajectory of an algorithm and the real trajectory to evaluate the accuracy of the algorithm. The true trajectory is often obtained by some higher-precision system, while the estimated trajectory is calculated by the algorithm to be evaluated. In the third lecture, we demonstrated how to display a track stored in a file. In this section, we consider how to calculate the error of two tracks. Consider an estimated trajectory T esti , i T_{esti,i}Tit's t i , iand the real trajectory T gt , i , T_{gt,i},Tgt,i, of whichi = 1 , ⋅ ⋅ ⋅ , N , i = 1, , N,i=1,⋅⋅⋅, N , then we can define some error metrics to describe the difference between them.
  There are many kinds of error indicators, the common one isabsolute trajectory error (Absolute Trajectory Error, ATE),in the form of:

          A T E a l l = 1 N ∑ i = 1 N ∥ log ⁡ ( T g t , i − 1 T e s t i , i ) ∨ ∥ 2 2 , ATE_{all} = \sqrt{\frac{1}{N}\sum\limits_{i = 1}^N\Vert \log(T^{-1}_{gt,i}T_{esti,i})^{\lor}\Vert^2_2}, ATEall=N1i=1Nlog(Tgt,i1Tit's t i , i)22 ,

This is actually the Root-Mean-Squared Error (RMSE) of the Lie algebra for each pose . This error can characterize the rotational and translational errors of the two trajectories. At the same time, some literature only considers the translation error, so that the absolute translation error (Avergae Translational Error) can be defined:

          A T E t r a n s = 1 N ∑ i = 1 N ∥ t r a n s ( T g t , i − 1 T e s t i , i ) ∥ 2 2 , ATE_{trans} = \sqrt{\frac{1}{N}\sum\limits_{i = 1}^N\Vert trans(T^{-1}_{gt,i}T_{esti,i})\Vert^2_2}, ATEtrans=N1i=1Ntrans(Tgt,i1Tit's t i , i)22 ,

Among them, trans means to take the translation part of the variable inside the brackets. Because from the perspective of the entire trajectory, after an error occurs in the rotation, the subsequent trajectory will also have an error in translation, so both indicators are applicable in practice.
  In addition to this, relative errors can also be defined. For example, consider iii时刻到i + Δ ti + \Delta ti+The motion at time Δt , then the relative pose error can be defined as :

          R P E a l l = 1 N − Δ t ∑ i = 1 N − Δ t ∥ log ⁡ ( ( T g t , i − 1 T g t , i + Δ t ) − 1 ( T e s t i , i − 1 T e s t i , i + Δ t ) ) ∨ ∥ 2 2 , RPE_{all} = \sqrt{\frac{1}{N - \Delta t}\sum\limits_{i = 1}^{N - \Delta t}\Vert \log((T^{-1}_{gt,i}T_{gt,i + \Delta t})^{-1}(T_{esti,i}^{-1}T_{esti,i + \Delta t}))^{\lor}\Vert^2_2}, RPEall=NΔt1i=1NΔtlog((Tgt,i1Tgt,i+Δt)1(Tis t i , i1Tes t i , i + Δ t))22 ,

Similarly, only the translation part can be taken:

          R P E t r a n s = 1 N − Δ t ∑ i = 1 N − Δ t ∥ t r a n s ( ( T g t , i − 1 T g t , i + Δ t ) − 1 ( T e s t i , i − 1 T e s t i , i + Δ t ) ) ∥ 2 2 , RPE_{trans} = \sqrt{\frac{1}{N - \Delta t}\sum\limits_{i = 1}^{N - \Delta t}\Vert trans((T^{-1}_{gt,i}T_{gt,i + \Delta t})^{-1}(T_{esti,i}^{-1}T_{esti,i + \Delta t}))\Vert^2_2}, RPEtrans=NΔt1i=1NΔttrans((Tgt,i1Tgt,i+Δt)1(Tis t i , i1Tes t i , i + Δ t))22 ,

  Using the Sophus library, it is easy to implement this part of the calculation. Next, we demonstrate the calculation of the absolute trajectory error. In this example, we have two trajectories, groundtruth.txt and estimated.txt, the following code will read these two trajectories, calculate the error, and then display it in the 3D window. For the sake of brevity, the code for drawing the trajectory is omitted. We have done something similar in Lecture 3.
  Code See slambook/ch4/example/trajectoryError.cpp
  The process of making the code run successfully is also an unusual twists and turns, divided into three steps:

  1. First of all, the fmt library is missing because the new version of Sophus not only needs Pangolin, but also needs to install fmt, so just install it.
  2. After installation and running, he will still report an error. fmt/core.h:1711:3: error: static assertion failed: Cannot format an argument.Baidu said that it is a version problem. It is recommended to use fmt 8.1.1 . Okay, the next version of fmt 8.1.1 does not need to delete the previous version, just repeat the previous steps
  3. After installation, remember to add the following two sentences in CMakeLists.txt, let cmake include this library, so that the program can run
find_package(FMT REQUIRED) 
target_link_libraries(trajectoryError fmt::fmt)
  1. Then you will find that the file address is wrong, and the directory of the two txt files cannot be found. Then you need to modify the directory of the file. It
    insert image description here
    took me almost an hour to run this code~!!
    The result is as follows:
    insert image description here
      the output of the program is 2.20728. Of course, the rotation part can also be removed, and only the error of the translation part can be calculated. As far as this example is concerned, we have actually helped readers do some preprocessing tasks, including time alignment of trajectories and external parameter estimation. These contents have not been mentioned yet, but will be mentioned in future studies.

4.5 * Groups of similar transformations and Lie algebras

Finally, we would like to mention the similarity group S im ( 3 ) Sim(3)   used in monocular visionS im ( 3 ) , and the corresponding Lie algebrasim ( 3 ). \mathfrak{sim}(3).sim ( 3 ) .
  We have already introduced monocular scale uncertainty. If using SE ( 3 ) SE(3)in monocular SLAMSE ( 3 ) represents the pose, then due to scale uncertainty and scale drift, the scale of the entire SLAM process will change, which is inSE ( 3 ) SE (3)It is not reflected in SE ( 3 ) . Therefore, in the monocular case, we generally express the scale factor explicitly. In mathematical language, for a pointppp , in the camera coordinate system, it needs to undergo asimilar transformationinstead of Euclidean transformation:

          p ′ = [ s R t 0 T 1 ] p = s R p + t . p^{'} = \begin{bmatrix}sR&t\\\\0^T&1\end{bmatrix}p = sRp + t. p= sR0Tt1 p=sRp+t.

In the similarity transformation, for us the scale sss is expressed. It also acts onppAbove the 3 coordinates of p , for ppp is scaled once. withSO( 3 ), SE( 3 ) SO(3), SE(3)SO ( 3 ) and SE ( 3 ) are similar, and the similar transformation also forms a group for matrix multiplication, which is called the similar transformation group Sim(3):

          S i m ( 3 ) = { S = [ s R t 0 T 1 ] ∈ R 4 × 4 } Sim(3) = \begin{Bmatrix} S = \begin{bmatrix}sR&t\\\\0^T &1\end{bmatrix}\in \mathbb{R}^{4 × 4}\end{Bmatrix} Sim(3)= S= sR0Tt1 R4×4

  Similarly, Sim(3) also has corresponding Lie algebras, exponential maps, logarithmic maps, etc. Lie algebra sim ( 3 ) \mathfrak{sim}(3)The sim ( 3 ) element is a 7-dimensional vectorζ \zetaz . Its first 6 dimensions are related tose ( 3 ) \mathfrak{se}(3)se ( 3 ) is the same, but there is an extra termσ \sigmas .

         sim ( 3 ) = { ζ ∣ ζ = [ ρ ϕ σ ] ∈ R 7 , ζ ∧ = [ σ I + ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 } \mathfrak{sim}(3) = \begin {Bmatrix} \zeta|\zeta = \begin{bmatrix}\rho\\\\\\phi\\\\\\sigma\end{bmatrix}\in \mathbb{R}^7,\zeta^{\land} = \begin{bmatrix}\sigma I + \phi^{\land}&\rho\\\\0^T &0\end{bmatrix}\in\mathbb{R}^{4 × 4}\end{Bmatrix }sim(3)= ζζ= rϕp R7,g= σI+ϕ0Tr0 R4×4

  It is better than se ( 3 ) \mathfrak{se}(3)se ( 3 ) has one more termσ \sigmaσ . Associate Sim(3) withsim ( 3 ) \mathfrak{sim}(3)sim ( 3 ) is still exponential mapping and logarithmic mapping. Index maps to

         exp ⁡ ( ζ ∧ ) = [ e σ exp ⁡ ( ϕ ∧ ) J s ρ 0 T \exp(\zeta^{\country}) = \begin{bmatrix} e^{\sigma}\exp(\phi^{\country})&J_s\rho\\\\0^T&1\end{bmatrix}.exp ( g)= epexp ( ϕ)0TJsr1 .

  Among them, J s J_sJsin the form of

         J s = e σ − 1 σ I + σ e σ sin ⁡ θ + ( 1 − e σ cos ⁡ θ ) θ σ 2 + θ 2 a ∧ + ( e σ − 1 σ − ( e σ cos ⁡ θ − ) σ + ( and σ sin ⁡ θ ) θ σ 2 + θ 2 ) a ∧ a ∧ \begin{aligned}J_s &=\frac{e^\sigma - 1}{\sigma}I + \frac{\sigma e^\sigma \sin\theta + (1- e^\sigma \cos\theta) \theta}{\sigma^2 + \theta^2}a^{\land}\\&\;\;\;\;+\left( \frac{e^\sigma - 1}{\sigma} - \frac{(e^\sigma \cos\theta - 1 )\sigma + (e^\sigma \sin\theta)\theta}{\sigma^2 + \theta^2} \right)a^{\land }a^{\country}.\end{aligned}Js=pep1I+p2+i2in epsini+(1epcosi ) ia+(pep1p2+i2(epcosi1 ) p+(epsini ) i)aa.

  Through exponential mapping, we can find the relationship between Lie algebras and Lie groups. For Lie algebra ζ , \zeta,ζ , and its correspondence with Lie groups is

         s = e σ , R = exp ⁡ ( ϕ ∧ ) , t = J s ρ s = e^\sigma,R=\exp(\phi^{\land}),t=J_s\rho.s=es ,R=exp ( ϕ),t=Jsr .

  The rotating part is consistent with SO(3). The translation part, in se ( 3 ) \mathfrak{se}(3)In se ( 3 ), it is necessary to multiply a JacobianJ , \mathcal{J},J , and the Jacobian of the similarity transformation is more complex. For the scale factor, one can see ssin the Lie groups is σ \sigmain Lie algebraExponential function of σ .
  The BCH approximation of Sim(3) is similar to SE(3). we can discuss a pointppp undergoes similarity transformationS p SpSp , relative toSSDerivative of S. Similarly, there are two ways, the differential model and the disturbance model, and the disturbance model is relatively simple. We omit the derivation process and directly give the results of the perturbation model. LetS p Sp SpA small disturbance on the left side of Sp ⁡ ( ζ ∧ ) , \exp(\zeta^{\land}),exp ( g ),and findS p SpThe derivative of Sp with respect to the disturbance. BecauseS p SpSp is a 4-dimensional homogeneous coordinate,ζ \zetaζ is a 7-dimensional vector, so the derivative should be4×7 4×74×Jacobian of 7 . For convenience, denoteS p SpThe first 3-dimensional composition vector of Sp is q , q,q , then:

          ∂ S p ∂ ζ = [ I − q ∧ q 0 T 0 T 0 ] \frac{\partial{Sp}}{\partial\zeta} = \begin{bmatrix}I&-q^{\land}&q\\\\0^T&0^T&0\end{bmatrix} ζSp= I0Tq0Tq0

4.6 Summary

  This lecture introduces Lie groups SO(3) and SE(3), and their corresponding Lie algebras so ( 3 ) \mathfrak{so}(3)so ( 3 ) andse ( 3 ). \mathfrak{se}(3).se ( 3 ) . We introduced the expression and transformation of the pose on them, and then through the linear approximation of BCH, the pose can be perturbed and derived. This lays a theoretical foundation for explaining the optimization of the pose later, because we need to frequently adjust the estimated value of a certain pose to reduce its corresponding error. Only after you have figured out how to adjust and update the pose can you move on.
  It is worth mentioning that, in addition to Lie algebra, rotation can also be represented by quaternion, Euler angle, etc., but the subsequent processing is more troublesome. In practical applications, SO(3) plus translation can also be used instead of SE(3), thereby avoiding some Jacobian calculations.

Guess you like

Origin blog.csdn.net/qq_20184333/article/details/126003776