Install
sudo apt install libeigen3-dev
Eigen은 헤더 온리 C++ 템플릿 라이브러리입니다.
Eigen::Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>: 모든 Dense 행렬/벡터의 뿌리
Matrix<double,3,1> = 3×1 실수 벡터Eigen::Array<...>: 원소별 연산(element-wise)에 특화 (행렬대수 ↔ 배열연산 구분)Eigen::Vector3d = Matrix<double,3,1>Eigen::Matrix3d = Matrix<double,3,3>Eigen::VectorXd = 동적 길이 벡터(double)Eigen::Quaterniond, Eigen::AngleAxisdEigen::Transform<double,3,Mode> 계열 → 별칭으로
Eigen::Isometry3d (회전+이동, 등거리 변환)Eigen::Affine3d (스케일/전단 포함 가능)Eigen::Projective3d (투영 포함)헷갈림 포인트: Isometry3d는 내부 4×4 동차행렬을 갖지만, linear()는 3×3 회전 부분, translation()은 3×1 이동 벡터입니다. 전체 4×4가 필요하면 .matrix().
Eigen::Vector3d
= Eigen::Matrix<double,3,1>
Eigen::RowVector3d
= Eigen::Matrix<double,1,3>
Eigen::Matrix3d
= Eigen::Matrix<double,3,3>
Eigen::VectorXd
= Eigen::Matrix<double,Eigen::Dynamic,1>
즉, 모두 Matrix<> 템플릿의 별칭입니다.
Eigen::Vector3d v1(1.0, 2.0, 3.0);
Eigen::Vector3d v2; v2 << 1, 2, 3; // 쉼표 초기화
Eigen::Matrix3d R = Eigen::Matrix3d::Identity();