참고자료: https://dritchie.github.io/csci2240/assignments/eigen_tutorial.pdf
https://eigen.tuxfamily.org/dox/index.html
Computer vision및 Deep-learning관련 open-source들을 살펴보다보면, Eigen으로 작성된 코드들이 많이 보인다. 하지만 Eigen library가 정확히 어떤 기능을하고 어떻게 쓸 수 있는지 알지 못하기 때문에 코드를 이해하는데 어려움이 있었다. 이 글에서는 이 Eigen Library에 대해 공부한 내용에 대하여 작성한다.
우선 Eigen은 행렬 연산을 최적화 히기위해 개발되었다. 이에 따라서 Matrix, Vector, Scalar를 지원하며, 이를 이용해 선형 대수 관련 알고리즘들을 해결해주는 C++ 기반의 템플릿 라이브러리이다. 인터넷 브라우저 Firefox를 만들고 있는 Mozilla에서 개발, Mozilla Public License 2로 무료로 배포하고 있으며 여러 개발자들의 집단지성을 통해 계속해서 그 코드를 update하고 있다.
이번 글에서는 Eigen3의 설치 및 간단한 사용법에 관해 살펴보도록 하겠다. 코드를 테스트하는 기본적환경은 Ubuntu 18.04, ROS Melodic에서 실행된다.
설치
리눅스에서 Eigen Library의 설치는 다음의 한줄명령으로 간단히 설치가 된다.
sudo apt-get install libeigen3-dev
Test
Eigen설치가 완료되었으면 다음과 같이 설치된 Eigen3의 Version Check를 하는 ROS기반 코드를 작성해서 test 해본다.
#include <iostream>
#include <Eigen/Core>
#include <ros/ros.h>
using namespace std;
int main(int argc, char **argv)
{
ros::init(argc, argv, "eigen_test");
ros::NodeHandle nh;
ros::Rate rate(40.0);
cout << "Eigen version: " << EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION << endl;
return 0;
};
이를 실행하면 다음과 같이 Eigen version: 3.4라고 표시 되는 프로그램이 실행된다.
사실 Eigen version check같은 경우는 굳이 프로그램을 실행하지 않고도 터미널창에서 다음의 리눅스 커맨드로 확인할 수 있다.
pkg-config --modversion eigen3
'Programming > Eigen' 카테고리의 다른 글
Eigen3 Vector (0) | 2020.07.01 |
---|---|
Eigen3 Matrix Operations - 행렬연산 (0) | 2020.07.01 |
Eigen3 Matrices - 행렬변수 선언 (2) | 2020.07.01 |
댓글