> ## Documentation Index
> Fetch the complete documentation index at: https://aegean.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Calculus on Lie groups

> Plus and minus, the adjoint, Jacobians, uncertainty, and integration on Lie groups, with connections to the Modern Robotics formulas.

[Lie groups and tangent spaces](/aiml-common/lectures/motion-algebras/lie-theory/index) introduced the group, its tangent space at the identity, and the Exp and Log maps between them. You can use these ideas to perturb and differentiate group elements, integrate motion, and represent uncertainty. You perform each calculation in the flat tangent space and then return to the group. This treatment follows Solà, Deray and Atchuthan (Solà et al., 2018) and relates their results to the formulas in Lynch and Park (Kevin M. Lynch, 2017).

## Steps in the tangent space

Suppose an optimizer or filter must adjust an orientation $R$ to reduce an error. In a vector space, you might take the step $R - \eta\,\nabla R$. This step leaves SO(3), so the result is no longer a rotation matrix.

Take the step in the Lie algebra, where it is an ordinary vector, and map the result back with the exponential:

$$
R_{k+1} = R_k \exp\big([\delta\omega]\big) .
$$

The quantity $\delta\omega$ is a three-vector, and $[\delta\omega]$ is its skew-symmetric matrix. This construction guarantees that the result is a rotation. The remaining operations follow the same pattern.

## Plus and minus

Solà describes this procedure with two operators. The *right plus* adds a small tangent vector $\tau$ to an element $\mathcal{X}$. The *right minus* recovers the tangent vector between two elements (Solà eqs. 25 and 26):

$$
\mathcal{Y} = \mathcal{X} \oplus \tau = \mathcal{X} \circ \mathrm{Exp}(\tau), \qquad
\tau = \mathcal{Y} \ominus \mathcal{X} = \mathrm{Log}\big(\mathcal{X}^{-1} \circ \mathcal{Y}\big) .
$$

Because $\mathrm{Exp}(\tau)$ multiplies $\mathcal{X}$ on the right, $\tau$ is expressed in the local frame attached to the body. The *left* versions multiply on the left, $\mathrm{Exp}(\tau) \circ \mathcal{X}$, and express $\tau$ in the global frame (Solà eqs. 27 and 28). These operators let you change an element of a curved group or measure the difference between two poses as you would in a vector space.

## The adjoint

You can describe the same motion in the local or global frame. The *adjoint* converts between these descriptions (Solà eqs. 29 to 31):

$$
\mathrm{Ad}_{\mathcal{X}}\,\tau = \big(\mathcal{X}\,\tau^\wedge\,\mathcal{X}^{-1}\big)^\vee ,
$$

The adjoint also relates the left and right plus operations (Solà eq. 32):

$$
\mathcal{X} \oplus \tau = \big(\mathrm{Ad}_{\mathcal{X}}\,\tau\big) \oplus \mathcal{X} .
$$

The adjoint is a linear map, so you can represent it with a matrix. For rigid motions, Lynch and Park use the $6 \times 6$ matrix $[\mathrm{Ad}_T]$ (Definition 3.20, book page 98). It converts a body twist into a space twist, $\mathcal{V}_s = [\mathrm{Ad}_{T_{sb}}]\,\mathcal{V}_b$ (eq. 3.83, book page 99).

## The small adjoint and the Lie bracket

[Rotation representations](/aiml-common/lectures/motion-algebras/rotation-representations/index#rotations-do-not-commute) showed that the order of rotations matters in 3-D. The *Lie bracket* of two generators records this property in the algebra:

$$
[A, B] = AB - BA ,
$$

The bracket is zero exactly when $A$ and $B$ commute. Every bracket is zero in the plane, but this is not true in SO(3) or SE(3). The bracket also measures the difference between exponentiating a sum and multiplying exponentials. For small $A$ and $B$, the Baker-Campbell-Hausdorff formula gives

$$
e^{A} e^{B} = e^{\,A + B + \frac{1}{2}[A, B] + \cdots} ,
$$

Thus, $e^{A}e^{B} = e^{A + B}$ only when the generators commute. The regression analogy from [Lie groups and tangent spaces](/aiml-common/lectures/motion-algebras/lie-theory/index) breaks down because the basis directions in the Lie algebra interact.

Holding one element of the bracket fixed gives a linear map called the *small adjoint* $\mathrm{ad}$. It is the derivative of $\mathrm{Ad}$ at the identity. For twists, Lynch and Park denote the Lie bracket of $\mathcal{V}_1$ and $\mathcal{V}_2$ by $[\mathrm{ad}_{\mathcal{V}_1}]\,\mathcal{V}_2$ (Definition 8.3, eqs. 8.37 and 8.38, book page 287). The equations of motion in [rigid-body dynamics](/aiml-common/lectures/dynamics/rigid-body-dynamics/index) use this map.

## Derivatives and Jacobians

A derivative describes how a small change in a function's input changes its output. On a Lie group, this change is a tangent vector. Solà defines the *right Jacobian* of a function $f$ between groups by replacing $+$ and $-$ with the right plus and minus (Solà eq. 41):

$$
J = \lim_{\tau \to 0} \frac{f(\mathcal{X} \oplus \tau) \ominus f(\mathcal{X})}{\tau} .
$$

This Jacobian describes how much $f(\mathcal{X})$ moves in its local frame when you perturb $\mathcal{X}$ by $\tau$ in its local frame. You can use it to linearize any function on the group (Solà eq. 43):

$$
f(\mathcal{X} \oplus \tau) \approx f(\mathcal{X}) \oplus J\,\tau .
$$

The left Jacobian uses the same definition with the left operators (Solà eq. 44). As with ordinary derivatives, you compose Jacobians through the chain rule (Solà section III.A). Solà section III.B lists the Jacobians for inverse, composition, Exp, and the action on a vector. Section III.C uses those results to derive the Jacobians for Log, plus, and minus. You can build most other Jacobians from these basic ones.

## Uncertainty

A Gaussian over a group's matrix entries cannot represent a probability distribution on the group because most matrices near a rotation are not rotations. Place the uncertainty in the tangent space around a mean $\bar{\mathcal{X}}$. Its covariance is (Solà eq. 52)

$$
\Sigma_{\mathcal{X}} = \mathbb{E}\big[(\mathcal{X} \ominus \bar{\mathcal{X}})(\mathcal{X} \ominus \bar{\mathcal{X}})^\top\big] ,
$$

This ordinary matrix has the same dimensions as the tangent space. If $\mathcal{Y} = f(\mathcal{X})$, the preceding linearization propagates the covariance through the function (Solà eq. 55):

$$
\Sigma_{\mathcal{Y}} \approx J\,\Sigma_{\mathcal{X}}\,J^\top .
$$

A filter can therefore track uncertainty in a robot's orientation or pose.

## Integration

A body with constant velocity $v$ over a time $\delta t$ moves by $\mathrm{Exp}(v\,\delta t)$. When the velocity changes, divide the motion into short intervals. Treat the velocity as constant within each interval, and chain the resulting steps (Solà eq. 56):

$$
\mathcal{X}_k = \mathcal{X}_{k-1} \oplus \tau_k = \mathcal{X}_{k-1} \circ \mathrm{Exp}(v_k\,\delta t) .
$$

[Wheeled-robot odometry](/aiml-common/lectures/kinematics/wheeled-robots/index) applies this procedure on SE(2). Lynch and Park first compute the closed-form displacement caused by a constant body twist. They then add it to the previous configuration (eqs. 13.35 and 13.36, book page 550). This closed form is the exponential of SE(2) written explicitly.

## Notation

Solà and Lynch and Park use different notation for the same objects.

| Object | Solà et al. | Lynch and Park |
| - | - | - |
| Group element | $\mathcal{X}$ | $R$ (rotation), $T$ (pose) |
| Lie algebra element | $\tau^\wedge$ | $[\omega]$ (rotation), $[\mathcal{V}]$ (twist) |
| Coordinates of the Lie algebra element | $\tau$ | $\omega$, $\mathcal{V}$ |
| Exponential | $\mathrm{Exp}(\tau)$ | $e^{[\hat\omega]\theta}$, $e^{[\mathcal{S}]\theta}$ |
| Adjoint | $\mathrm{Ad}_{\mathcal{X}}$ | $[\mathrm{Ad}_T]$ |
| Velocity in the local (body) frame | $\mathcal{X}^{-1}\dot{\mathcal{X}}$ | $R^{-1}\dot R = [\omega_b]$, $T^{-1}\dot T = [\mathcal{V}_b]$ |
| Velocity in the global (space) frame | $\dot{\mathcal{X}}\,\mathcal{X}^{-1}$ | $\dot R R^{-1} = [\omega_s]$, $\dot T T^{-1} = [\mathcal{V}_s]$ |

## Where the Modern Robotics formulas come from

The formulas below appear throughout this chapter. Most occur before this section. The final two occur later. The third column identifies the corresponding Lie operation.

| Formula | Where in this chapter | Lie operation | Source |
| - | - | - | - |
| $[\omega_b] = R^{-1}\dot R$ | rotation representations | local-frame velocity, $\mathcal{X}^{-1}\dot{\mathcal{X}}$ | Lynch and Park eq. 3.38, p. 79; Solà eq. 9 |
| $[\omega_s] = \dot R R^{-1}$ | rotation representations | global-frame velocity | Lynch and Park eq. 3.37, p. 79 |
| $e^{[\hat\omega]\theta} = I + \sin\theta\,[\hat\omega] + (1 - \cos\theta)\,[\hat\omega]^2$ (Rodrigues) | rotation representations | Exp on SO(3) | Lynch and Park eq. 3.51, p. 82; Solà example 4 |
| $[\mathcal{V}_b] = T^{-1}\dot T$ | motion representations | local-frame velocity on SE(3) or SE(2) | Lynch and Park eq. 3.71, p. 96 |
| $[\mathcal{V}_s] = \dot T T^{-1}$ | motion representations | global-frame velocity | Lynch and Park eq. 3.74, p. 97 |
| $e^{[\mathcal{S}]\theta}$ | motion representations | Exp on SE(3) | Lynch and Park eq. 3.88, p. 103; Solà appendix D |
| $\mathcal{V}_s = [\mathrm{Ad}_{T_{sb}}]\,\mathcal{V}_b$ | motion representations | adjoint on SE(3) | Lynch and Park Definition 3.20 and eq. 3.83, pp. 98 and 99; Solà eq. 31 |
| $[\mathrm{ad}_{\mathcal{V}_1}]\,\mathcal{V}_2$ | rigid-body dynamics | small adjoint, Lie bracket | Lynch and Park eqs. 8.37 and 8.38, p. 287 |
| $q_{k+1} = q_k + \Delta q$ with $\Delta q$ from a constant twist | wheeled robots | discrete integration on SE(2), $\mathcal{X}_k = \mathcal{X}_{k-1} \oplus \tau_k$ | Lynch and Park eqs. 13.35 and 13.36, p. 550; Solà eq. 56 |

All page numbers refer to the Lynch and Park book.

## References

* Kevin M. Lynch, F. (2017). *Modern Robotics*.
* Solà, J., Deray, J., Atchuthan, D. (2018). *A micro Lie theory for state estimation in robotics*. arXiv \[cs.RO].

***

<Callout icon="bug" iconType="regular">
  Found an error on this page? [Report an issue](https://github.com/aegean-ai/eaia-feedback/issues/new?template=page-issue.yml\&page=/aiml-common/lectures/motion-algebras/lie-calculus).
</Callout>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.