Skip to main content
Lie groups and tangent spaces and calculus on Lie groups developed the underlying theory. You will encounter it in software libraries, algorithms that estimate a robot’s pose, and the forward kinematics of robot arms.

From theory to algorithms

Block diagram. Lie theory feeds two kinds of software. Lie-group libraries: Sophus, manif and GTSAM. Rigid-body dynamics and simulation: Pinocchio, and Newton, which is built on NVIDIA Warp. Both kinds feed algorithms: SLAM, calibration and state estimation. Two distinct kinds of software build on Lie theory. Lie-group libraries implement the groups and their operations. With these libraries, you seldom need to write an exponential map or Jacobian yourself.
  • Sophus provides C++ implementations of SO(2), SO(3), SE(2), and SE(3).
  • manif is a header-only C++ library with Python wrappers. Its design follows the presentation by Solà et al. (Solà et al., 2018). For SO(2), SO(3), SE(2), SE(3), and several other groups, it provides composition, inverse, Exp and Log, plus and minus, the adjoint, and analytic Jacobians.
  • GTSAM is a C++ library with Python and MATLAB interfaces for factor-graph estimation. It represents rotations and poses as the Lie groups Rot3 and Pose3.
Rigid-body dynamics and simulation software uses the same geometry to compute robot motion under applied forces.
  • Pinocchio implements rigid-body algorithms and their analytical derivatives. These include the recursive Newton-Euler algorithm for inverse dynamics and the articulated-body algorithm for forward dynamics.
  • Newton is a GPU physics engine built on NVIDIA Warp. Warp supplies the spatial algebra required by rigid-body code. It includes six-dimensional spatial vectors for twists and wrenches, the spatial adjoint, spatial cross products, and functions for moving twists and wrenches between frames. General Lie-group operations such as Exp, Log, and Jacobians remain the domain of the libraries above.
Physics engines such as Newton advance rigid bodies using the equations of rigid-body dynamics. They keep each orientation on its group instead of treating its coordinates as independent values.

Robot descriptions

Most of these tools load a robot from a description file instead of a parameter table. URDF is the most common format. It represents the robot as a tree of links connected by joints, with each joint assigned an axis and a placement relative to its parent. Pinocchio can load URDF, SDF, MJCF, and SRDF files. A revolute joint rotates its child link about a fixed axis, an operation given by the exponential of a twist. You can therefore rewrite a URDF in product-of-exponentials form with one screw axis for each joint. Converting it to Denavit-Hartenberg parameters is less direct because that representation constrains how you place the link frames.

Composite manifolds

A robot state often combines several parts. It might contain an orientation and position, a pose and velocity, or a pose together with observed landmark positions. Each part belongs to its own group. Solà et al. combine them into one composite manifold, then apply plus, minus, and the Jacobians one block at a time (Solà section IV). The operations from the previous section work independently on each part.

Estimation on manifolds

A robot rarely knows its pose without uncertainty. An estimator maintains a best estimate and its uncertainty, updating both when new sensor data arrives. Lie theory places the estimate on the group and the error in the tangent space.
  • An error-state Kalman filter stores the nominal pose on the group and a small error vector with its covariance in the tangent space. After each update, it folds the error into the pose with the plus operator (Solà section V.A).
  • Graph-based smoothing treats the poses along a trajectory as unknowns connected by measurements. It computes each residual with the minus operator and solves for all poses together (Solà section V.B). GTSAM implements this structure.
In both methods, you perform the calculations with ordinary vectors and matrices in the tangent space. The group structure ensures that each result remains a valid rotation or pose.

Forward kinematics: product of exponentials versus Denavit-Hartenberg

Forward kinematics maps a robot arm’s joint angles to the pose of its end effector. Lie theory expresses this map as a product of exponentials. Multiply the exponential of each joint’s screw axis, scaled by its joint angle, and then multiply by the pose at the zero position (Lynch and Park section 4.1, book page 138) (Kevin M. Lynch, 2017). The AR4 arm kinematics and the AR4 lab instead use the older Denavit-Hartenberg (DH) representation. You can derive the product-of-exponentials formula from the DH parameters (Lynch and Park appendix C.5, book page 595). The representations make different trade-offs.
  • DH uses a minimal set of four parameters for each joint. However, you must assign its link frames according to specific constraints. Conventions also differ between sources, and the parameters become ill-conditioned when adjacent joint axes are nearly parallel.
  • The product of exponentials requires only a zero position, a base frame, and an end-effector frame. You may choose both frames freely.
The AR4 pages therefore give you one concrete parametrization of the map that Lie theory expresses without coordinates.

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].

Found an error on this page? Report an issue.