Eigen (C++ linear algebra library)
EigenAdvancedThe most widely used open-source C++ linear-algebra library, behind most matrix, vector, and rotation math in robotics code.
Eigen is an open-source, header-only C++ template library for linear algebra — no separate compilation or linking needed, just include it. It provides matrix and vector operations, matrix decompositions, linear-system solving, and geometry modules for quaternions, rotation matrices, and affine transforms. Robotics C++ code is constantly computing coordinate transforms, Jacobians, and dynamics equations, which has made Eigen a de facto standard: ROS, Pinocchio, MoveIt, and OCS2 all depend on it. It's roughly the C++ world's equivalent of NumPy, though details like memory alignment and quaternion component ordering are common early pitfalls.
ExampleIn a controller, represent the end-effector's orientation with Eigen::Quaterniond, and store a Jacobian in an Eigen::MatrixXd, taking its pseudoinverse to compute joint velocities.
- Related
- Pinocchio · Rotation Matrix · Quaternion · Jacobian Matrix · Python and C++
- Sources
- Eigen 官网 (Chinese)
Eigen GitLab