From theory to algorithms
- 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
Rot3andPose3.
- 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.
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.
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.
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.

